07/31/2020 at 13:32 •
sudo apt install libttspico-utils sox
Convert text to speech
pico2wave -w lookdave.wav "Look Dave, I can see you're really upset about this."
aplay lookdave.wav Playing WAVE 'lookdave.wav' : Signed 16 bit Little Endian, Rate 16000 Hz, Mono
play -qV0 lookdave.wav treble 24 gain -l 6
Adding speech effects
The following command will convert the female voice to a robot voice.
play lookdave.wav stretch 1.2 133.33 lin 0.2 0.4 echo 0.4 0.8 15 0.8 synth sine fmod 30 echo 0.8 0.8 29 0.8 play WARN alsa: can't encode 0-bit Unknown or not applicable lookdave.wav: File Size: 119k Bit Rate: 256k Encoding: Signed PCM Channels: 1 @ 16-bit Samplerate: 16000Hz Replaygain: off Duration: 00:00:03.72 play WARN echo: echo: warning >>> gain-out can cause saturation of output <<< In:100% 00:00:03.72 [00:00:00.00] Out:72.0k [ | ] Clip:0 Done.
04/10/2018 at 19:51 •
To enable easy interfacing for humans as well as machines, a command line interface has been used. The Arduino-CommandLine library has been used.
Below you can find a capture of a command line session with the RoboSapien:
Welcome to minicom 2.7 OPTIONS: I18n Compiled on Feb 7 2016, 13:37:27. Port /dev/ttyACM0, 18:02:16 Press CTRL-A Z for help on special keys > > action 196 > action 197 > action 198 > audio 0 > action 198 > action 197 > action 197 > action 196 > action 195 > audio 1 >
Two commands are implemented "action" and "audio".
The "action" command executes one of the Robosapien standard actions. On a standard Robosapien, you would have used the remote to start these actions. A list of actions can be found in the source code of the RS wedge.
The "audio" command switches the Robosapien's audio source : "0" selects the audio jack as source, which allows the connected laptop to route speech or music to the Robosapien. "1" selects the Robosapien controller as source.
04/10/2018 at 18:56 •
Location of the wedge
The internals of the Robosapien leave little room to add PCB's inside the housing. There's some room in the back around the speaker, but it's hard to connect the micro-USB connection from there.
The upper leg parts leave enough room for the PCB and make it quite easy to allow connection for micro-USB and audio.
My original idea was to put the PCB (design in EasyEDA). In the upper right leg. Unfortunately the JST-XH connector are too high. It's a pity that I'd made a cutout in the upper right leg before realizing that.
Either I could redesign the PCB, moving the connectors to the top edge, or I could mount the PCB 180° rotated in the upper left leg. I went for the second option. The fit is less ideal. Because the USB-connector is mounted lower, a bigger cutout in the leg is needed. The USB-connector also rubs internally against the lower left leg, sometimes causing unreliable connection. Maybe I'll fix that in the next PCB revision.
RS Wedge mounted in upper leg
As can be seen in the picture below, it would have been more practical to have the USB-connector where the 2-pins JST XH-connector is located now. Component higher than 2mm must be avoided along the lower half of the PCB.
02/23/2018 at 19:59 •
In the final application, a BeagleBone Black (BBB) will be used to control the Robosapien. Having one in my drawer is the only reason for using a BBB. It unfortunately doesn't have an analog audio interface.
Adding an external USB-Audio interface is a cheap (<€1) and easy solution. It's supported by default in Ubuntu Linux. The audio chipset is from Generalplus. There's no more specific data. I think it's either the GPD8102B or GPD8106B under the blob.
Unluckily, in an attempt to cut down costs, the manufacturer has also cut down on specifications. The audio output lacks low frequencies, which makes it very annoying to listen to. Opening up the unit reveals that the audio is capacitively coupled. This coupling capacitor forms a high pass filter with the input impedance of the headphones. This device is cheap. The capacitor is too small. The cutoff frequency is too high, cutting off lower frequencies from the headphones. Luckily, there's an easy fix:
- Open up the USB-audio interface. Easiest way: drop it from 1m on a concrete floor. For whatever reason (probably cost again) the housing is not glued.
- On the bottom you'l find C8 & C9. These two 0805 caps are 10µF.
- Replace these caps with 22µF or higher value. Higher cap values in small values are relatively expensive. It's clear why they tried to save cost here.
- Normally, you should be able to assemble it without problems.
02/21/2018 at 21:07 •
To be able to use the internal sound of the Rabosapien as well as audio from the PC on the Robosapien's speaker, an analog switch is needed.
The 74HC4053 will be used. It's cheap and easily available. Its three internal channels are connected in parallel. In this application it doesn't matter much, but it decreases the series resistance of the multiplexer.
The audio from the laptop is too weak to connect directly to the Robosapien's speaker, so we'll use an audio amplifier. The PAM8403 is available on a PCB with the necessary peripheral circuitry. These modules only cost a few cents. The audio amplifier is connected at the output of the multiplexer.
The audio output of the Robosapien can be taken from C13A. This output is connected to a 10/2K2 voltage divider, which is connected to the analog multiplexer. Decreasing the Robosapien to 1/6th of the original level is needed to avoid oversteering the amplifier.
Finally the Digistump controls the state of the analog multiplexer, choosing between PC audio and Robosapien audio for the Robosapien speaker.
02/16/2018 at 21:11 •
Where to buy?
- Digispark website
- This clone has two mounting holes, which is an advantage to the original Digistump.
- The LED is on P1, not on P0.
Follow the instructions on:
- Connecting and Programming Your Digispark (to install the Digispark Board Manager URL)
- Linux troubleshooting (to fix the udev rules)
The Digistump clone is shipped with a functioning bootloader.
To program the application: first click verify, after that power on the Digistump.
Marcus Jenkins wrote an interesting tips & tricks to get you started with the Digistump clone.
Use a USB hub with a power switch for every outgoing USB port. This avoid having you to plug in and out the USB connector every time the Digistump needs to be programmed.
The schematic can be found here.