Spirits of the city - 街霊

Family of one feet tall spirits who react to human presence and are radio connected to each other.

Similar projects worth following
Project Description


You may have seen Princess Mononoke (if not you should stop reading this and start watching it right now) some weird tree spirits, called kodamas, who appeared and moved as Mononoke walked by them.

Well we thought that the concept of spirits appearing and reacting to human presence was a great concept, and so we thought really hard about how we could use this concept in real life.

This gave life to our Spirits of the City !

What do they do ?

Our spirits are currently able to express themselves to humans with LEDs, they have a RGB one in each eye, a big UV one in there head and one in their heart. They are also able to talk between each other with radio modules.

Currently they are split into families (or tribes) of a few children and a father. When the father sees someone passing by in front of him (with a PIR) he wakes his children up (who were asleep) who will then do synchronous light patterns all together.

How do they work ?

Let's start by the children as they are the easiest to describe.

Currently they are put in sleep (all threads are asleep) and check every 2 seconds if they have received a radio message from the father. Indeed, the radio module nRF24L01, keeps the messages it receives, so they can be checked once in a while without loosing them. This way we can save a lot of power consumption by being awake less than 1% of the time when no one passes in front of the tribe.
Once they have received a wake up message from the father, they wake up and wait for a message containing the animation to display. This way the father can wake up all the spirits and then send them the same animation so that they will display it synchronously (otherwise they would have a delay). Once they have received this animation, they display it, then go back to sleep.

The behavior of the father is also rather simple, he sleeps as long as the PIR doesn't see any one, once it does (output to 3.3V) he wakes up and sends wake up messages to all the children, displays an animation, then sends the same animation to all the other spirits.

Checking if there is someone is currently doing by polling the value of the PIR (even though it's bad) in the next version of the code it will be done with interruption (which is better for real time application and energy consumption).

  • 1 × STM32L151C6T6 Microprocessors, Microcontrollers, DSPs / ARM, RISC-Based Microcontrollers
  • 2 × 8mm RGB LEDs, common cathode For the eyes
  • 2 × SMD Infrared LEDs One for the heart, the other one for the head
  • 8 × 2N7002 Discrete Semiconductors / Transistors, MOSFETs, FETs, IGBTs
  • 1 × NRF24L01+ Radio module

View all 9 components

  • Some work on the page

    Felix Raimundo07/31/2014 at 23:24 0 comments

    Well this one isn't a huge log, yet it still took some time.

    I have been updating this page by uploading all the work that was previously done, and trust me, it wasn't that easy, as the schematics were made using Mentor Graphics, finding a way to convert these to an upverter-friendly form has turned harder than I expected and I'm still looking for a way to do so.

    Since I just started an internship I didn't have a lot of spare time to improve the spirits, but hopefully I will manage to find some soon !

  • First log and what has been done before

    Felix Raimundo07/26/2014 at 23:49 0 comments

    This project was first started by four first year student in Telecom ParisTech that I helped to tutor and they did an amazing job !

    I have started to rewrite the code and fix some bug since they finished the project, the main plan from now on is to fix the last bug on this version (the children freeze some time and we have to reboot them, which sucks since we plan on leaving them a few days alone in a the streets).

    The PCBs also has to be rebuilt, as they currently only allow for what they currently do, and I would like a lot to add some behavior on them, whether it is adding BLE connection or other inputs / outputs. Indeed they currently only have one ADC used (light detector or PIR) and I would like the father to have them both (so that he could sleep during daytime and thus doubling the autonomy).

View all 2 project logs

Enjoy this project?



Greg Bushta wrote 02/23/2016 at 21:58 point

Very nice project. My kids grew up watching Princess Mononoke.  I have tree spirits on my book shelf, a gift from them.  Interconnected and reactive ones are a great idea!

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates