Close

The Hackaday Prize Stage 1

A project log for Reactron Overdrive

A small but critical number of minimally complex machines interact with each other, providing machine augmentation of human activity.

kenji-larsenKenji Larsen 07/14/2014 at 05:310 Comments

Video is up, and added to the project details.  You can tell from the video that there has been a lot of development that I have not documented in the logs... yet.  The video documents a lot of the components as they stand now, but I do expect changes.  I plan to stabilize and refine things a bit more before getting into the full detail, because the last thing I want is to waste anyone's time with information that will be superseded shortly.

But if there is interest, I will mention the components for the Integron unit here, they are: BeagleBone Black (to run voice recognition and synthesis), some NeoPixel LEDs and a TFT screen (from Adafruit - actually I got the BBBs from Adafruit also), PIR sensors from ebay, and then a handful of other components that may change, and these relate primarily to the sound support. BBB has only one USB port, so I may need to solder in a two-port USB hub (space constraints) to enable more ports. I need one port for a sound card.  Still working with the audio levels of various microphones and amplifiers, the final selection may change.  

My previous version of the Integron was on R.Pi, so I didn't need to add a sound card. The mic sensitivity and selectiveness is something I wanted to improve, so that development is ongoing.  One goal is for these things to be able to really parse speech from a reasonable distance. They do a negotiation when certain sounds are parsed, to see if other nearby units heard the same sound, and use a volume comparison to figure out approximately where in the room the speaker is, and also which Integron unit should handle a response.  This allows you to walk around the room and have continuous integration.  One open item is to create a handoff procedure - right now this targeting decision is at a single point. Once the decision is made, the entire response comes from one unit.  But it would be great, if the response is long, for the sound to follow you around the room, so you aren't chained to one box while you listen.  I deal with this now by just turning the volume up, but ideally I want these machines to speak in a low voice (or one that matches the volume with which you issued a command), so as not to disturb what is going on in the room.  I do not want a loudspeaker broadcast, I just want a little private conversation in my corner of the room, with my machine ambassador.  And later, when I develop better selective targeting, it may be possible for two (or more) users in different parts of the room to have their own different conversations. 

Back to the components.  The ubiquitous HC-SR04 ultrasonic sensor I had lying around, can be sourced on ebay for very little. Speakers, also from ebay, just tiny 1 inch cheapies, but they are pretty loud and adequate for synthesized speech.

The Arduino clone is based on the open-source Moteino from Low Power Lab.  I had been making these previously, in various forms with either Hope RF radios or WiFly RN-171 for wireless TCP/IP. 

The Moteino doesn't support WiFly directly but you can of course connect one.  However, it is great at supporting RFM12B and RFM69W/HW so if you want an excellent, tiny, 3.3V clone with RF and capacity for flash memory, you should definitely look into these excellent boards.  

Moteino from Low Power Lab

I decided to use this pattern and standardizing has really saved me a lot of time, and enabled clean hardware integration.  I will upload my Eagle files to Github, but you can get usable files from Low Power Lab - the only thing that is somewhat different is the silkscreen, and my requirement for certain radios and a flash chip. If you don't need that stuff, or need other stuff for your project, Moteino is the way to go, there are lots of options.  One of the reasons for my own silkscreen is just for me to identify which ones meet my specific standards - I still have a lot of experimental Moteinos in use and they don't all have memory chips or RFM69, so if I see one I know I cannot assume its hardware complement.

I think that is it for stuff I have bought, except for some speaker grille fabric, used for the outer casing, which I obviously need to be sound-transparent.

The rest I have fabricated.  The round parts in the video are dev parts made in MDF, the finals will probably be white acrylic to diffuse LED light.  Mechanical support parts for the PIR sensors were not shown in the video, as they are still under development.  All those design files will be made available on Github. 

There is a lot of documentation to do!

I should be clear that Integrons as I have them can be made with any Arduino clone and RF setup, if you have some stuff lying around already.  This is just the route I went for a lot of different reasons.   Also, Reactrons are much more about the interface and the integration than the specific choice of Arduino hardware (or SBC hardware, or RF hardware, etc.)  That is one of the points of the design, and it allows old machines to not become obsolete.  As long as an older machine can push a few bytes, it can be a Reactron.  It doesn't need RF or TCPIP, as long as it can communicate in some way, IR, whatever. (And if it can't, then you slap on one of these inexpensive RF enabled Arduinos, as shown in several of my projects, and you are good to go.) If you keep a machine's tasks very simple, it may live a long time.  Even twenty year old computers have more power than the Apollo space program did, so it has been demonstrated that you can do amazing things with relatively small amounts of data and computing power.

Discussions