I'm in the process of building a robot in the shape of K9 from Doctor Who. I'm keeping everything low cost and Creative Commons so that kids can adapt the code and follow suit should they want, here's what he looks like (inside and out):
Key to keeping costs down is to use a Raspberry Pi as his central processing unit. To keep him responsive, though, means I need to offload as much sensor processing as I can away from the Pi. Currently I'm working on a 'follow me' capability where he follows a handheld ultrasonic transmitter using five ultrasonic sensors placed around his body.
Now I could have programmed something myself, but I thought it would be cooler if I created and trained a neural net that executed on an Espruino. This means that just the x,y co-ordinates are transmitted to the Pi, not the sensor data.
To do this I created an Espruino based ground truth collector that is described in this post.
The collected data was then used to create and train a feed forward neural net using the Synaptic.JS library in a JSFiddle environment. The library then generated a standalone JavaScript function that would run on the Espruino. That allowed me to do both the sensor collection and neural net execution on a single device as described in this post.
Yes it even works!
If you want more, this post describes another experiment with ultrasonics and Fast Fourier Transforms. These experiences have convinced me The Espruino is a brilliant bit of hardware with a wonderful IDE!
Espruino is a JavaScript interpreter for low-power Microcontrollers. This site is both a support community for Espruino and a place to share what you are working on.
I'm in the process of building a robot in the shape of K9 from Doctor Who. I'm keeping everything low cost and Creative Commons so that kids can adapt the code and follow suit should they want, here's what he looks like (inside and out):
Key to keeping costs down is to use a Raspberry Pi as his central processing unit. To keep him responsive, though, means I need to offload as much sensor processing as I can away from the Pi. Currently I'm working on a 'follow me' capability where he follows a handheld ultrasonic transmitter using five ultrasonic sensors placed around his body.
Now I could have programmed something myself, but I thought it would be cooler if I created and trained a neural net that executed on an Espruino. This means that just the x,y co-ordinates are transmitted to the Pi, not the sensor data.
To do this I created an Espruino based ground truth collector that is described in this post.
The collected data was then used to create and train a feed forward neural net using the Synaptic.JS library in a JSFiddle environment. The library then generated a standalone JavaScript function that would run on the Espruino. That allowed me to do both the sensor collection and neural net execution on a single device as described in this post.
Yes it even works!
If you want more, this post describes another experiment with ultrasonics and Fast Fourier Transforms. These experiences have convinced me The Espruino is a brilliant bit of hardware with a wonderful IDE!
Cheers
Richard