F3N is a companion bot, in this case a shoulder-mounted AI friend who's learning to listen to me and speak with his own voice. He's the spiritual successor of Archimedes, my original AI robot owl familiar.
F3NR1R is based on the fennec – a tiny fox with huge ears and big personality. Version 1 (the original cardboard prototype with OpenVINO) is here. I've changed enough things in this version that I didn't want to rewrite the tutorial from scratch, or throw out the old material, so here we are.
Let's take a look at the updates! Right now, F3N's functions include:
- Speech, via TTSMP3
- Motor control via Teensy
- (Very partial) voice recognition and parsing via Picovoice
Some interesting parts I've maintained from the earlier version include the Pi-Teensy serial control system and the Teensy-servo adapter assembly (with all the same wiring intact). The servos are still attached to I'd also like to bring back the touch sensors using Maker Tape!
VoiceThe biggest thing about new-F3N is that he can talk. Right now, he uses a voice called "Justin" from TTSMP3.com. This is a really handy tool that takes your written text, converts it into speech, and lets you listen, then download it as an MP3. It can even do multiple languages! And, you can add pauses or otherwise adjust the prosody by adding different HTML-esque tags. I chose this voice because the fox's huge ears and playful/speedy nature seems childlike to me.
Right now, I've downloaded a few generated speech files and am triggering them via a Python script (which you can find here). There's no on-device speech synthesis – unless you use something like espeak, which is also installed, but sounds too robotic for this lil guy.
I'm also playing around with Picovoice, an offline voice assistant that's compatible with the ReSpeaker HAT I'm using. Offline assistants have a few bonuses: they'll run even at a Maker Faire where there's no signal to be found, they don't eat data, and they can be more secure than systems that send your voice to the cloud for processing.
Physical designF3N's new look is made with 3mm thick felt, which is lovely and soft and flexible. It is really FAST to laser, which is amazing compared to my previous, 3D-printed versions of Archimedes!! Also, compared to the cardboard prototype, the layers of felt can easily bend and flex (such as to plug in the camera cable on his face) and then return to flat, without a crease in sight. Wonderful material! Plus, it won't injure my eyes like Archimedes' eyebrows did 😅
Most of the pieces were re-lasered from scratch, but I did keep the cardboard core of his torso and simply glued felt on top. That maintains his structural stability while sitting on my shoulder, and also keeps the walls apart for ventilation.
He wears a felt cape to cover his open back, which stays partially Velcro'd in place most of the time, but can also be moved aside to permit access to his brain-guts.
My main complaint is about color choice: his predominantly light grey chassis now blends in really well with the white wall in my office... sigh!
F3N's brain has stayed much the same, from the first version: He uses a Raspberry Pi 3 Model B+ for the big AI and voice stuff, and it talks over serial to a Teensy 3.1, which is controlling the motors. The Pi is running Python scripts, which can trigger mp3s to play via the MPG123 command-line tool. These scripts also send high-level commands like "EarsUp" and "HeadLeft" to the Teensy, which uses those to activate functions controlling the individual servos. I can also plug the Teensy directly into my PC without too much hassle, if I want to add new functions. (In the future, this might allow me to control LEDs; in the past, I've used it for touch controls.)
By contrast, plugging the Pi into a monitor/keyboard/etc. is a giant pain and requires disassembling his torso. So, I've enabled SSH on the Pi, and am using FileZilla to transfer things over. I do all the code updates on my PC, so they're nicely organized and up-to-date in case something happens to the files on F3N. (A good choice considering that, during one day of development, I was swapping between multiple Micro SD cards and managed to mess up F3N's filesystem more than once!)
Thanks to SSH, I can upload and run the different scripts wirelessly with F3N on my shoulder, as I did recently for a Hardware Hack Night with Patchr.
FilesThe code is up on GitHub. As for physical templates, until I get them re-exported and downloaded, you can find and download the pieces for laser cutting here in OnShape.
Shortlink to this tutorial: bit.ly/fenrir2
Comments