A couple of years ago, I was pondering my 100th Birthday, which will fall -- somewhat inconveniently -- on a Tuesday in 2057 (see May 29, 2057 -- Mark the Date!). As part of my ruminations and cogitations, I mentioned that, as we have three Embedded Systems Conferences (ESCs) a year, and as I typically present two or three papers at each ESC, this means I will have somewhere between 256 and 384 new sessions to prepare before my 100th Birthday arrives.
Since I wrote those words, I have indeed presented two or three papers at each of the ESCs between then and now. In fact, I just realized that we now have only a few weeks to prepare for this year's ESC Boston, which will take place May 3-4, 2017. Give me strength. I'm too young for all this excitement.
One of my presentations is going to be on the current state of play with regard to my Bodacious AI (artificial intelligence) Brain. As you'll see in the below video, I'm still at the early stages of this project.
The idea is that the Bodacious Brain will be presented in a domed glass cylinder. This will be mounted on a Steampunk-esque hand-carved wooden base that's inlaid with brass and loaded with a battery of sensors that can detect sound, light, movement, and so forth.
In the case of the sound sensors, I'm not interested in a simple audio trigger. Instead, I'm thinking of equipping the base with six microphones providing omnidirectional "hearing" so the brain can determine the directions from whence sounds originate and respond accordingly.
Processed signals from all the sensors will be fed into the brain itself, which will be composed from hundreds of "neurons" arranged in a 3D matrix. I was originally considering a regular array, but I'm now tending toward a more higgledy-piggledy (random) arrangement.
Each neuron will have some sort of processing element coupled with a tri-color LED to reflect its current state. The neurons will accept input signals from surrounding neurons (or from the external sensors), look at those signals and decide what to do with them, and then feed response signals back into the matrix.
The processor for each neuron will be mounted on a little breakout board, but these will be the only boards in the system, because they and any other components will be "air-wired" to each other.
I'm currently pondering what to use as the neural processing elements themselves. Originally, I’d been thinking about using the same 8-bit Atmel MCU that's used to power the Arduino Nano. In addition to the fact that I'm familiar with the Arduino and its IDE, I also have about 25 of these little Nano-scamps here in my office that I could use to prototype with.
Another alternative would be to use a PSoC (programmable System-on-Chip) from Cypress Semiconductor. In addition to an 8-bit or 16-bit MCU, these little rascals boast a block of programmable digital fabric and a block of programmable analog fabric. They also have an intuitive drag-and-drop GUI that allows you to configure the programmable fabric from a library of pre-built functions.
In fact, my chum Sree Harsha Angara is an applications engineer (AE) at Cypress Semiconductor, and he threw the PSoC-based system shown below together one weekend as a proof-of-concept.
(Source: Sree Harsha Angara)
What Sree has done is to use a PSoC to monitor the outputs from six microphones. When you make a sound, like clicking your fingers, the PSoC works out which microphone heard that sound first and lights the corresponding segment of a 60-pixel tri-colored LED ring.
A more recent contender is the teeny-tiny (2 mm x 3 mm) GreenPAK5 from Silego. In addition to things like analog comparators, digital function blocks (flip-flops, latches, look-up-tables, delays, and counters), and an 8-byte RAM, these also feature a small asynchronous state machine (ASM) that's equivalent to having a simple MCU running approximately 100 lines of code.
Silego also has an intuitive, easy-to-use graphical design environment called GreenPAK Designer that you can download for free. Furthermore, they offer GreenPAK5 20-pin DIP breakout boards for only $1.25 each. In the fullness of time, I would use my own (probably circular) breakout board, but the 0.1" pitch pins on the Silego boards make them ideal for prototyping purposes.
I tell you, there are so many fun things to do, and so little time to do them all in. But I fear we are in danger of wandering off into the weeds. The point of this column is to let you know that I'll be talking about all these design decisions and discussing the latest state of play at my Bodacious Brain talk at ESC Boston.
This talk will be in the ESC Engineering Theater, so it's open to anyone, including those with a Free Expo Pass (Click here to see passes types and pricing), but you do need to register (Click here to register).
Everything is still up in the air regarding the final Bodacious Brain implementation, so if you have any thoughts or suggestions, please post them in the comments below.
Hopefully I'll be seeing you at ESC Boston. I'll be the one in the Hawaiian shirt.
This blog was first published on Embedded.com.