Difference between revisions of "Tux Droid"
m (→Misc Questions) |
m (→Misc) |
||
Line 98: | Line 98: | ||
===Misc=== |
===Misc=== |
||
* Voice recognition |
* Voice recognition |
||
− | ** Here is a project to help open source developers make their project work better by submitting your speech samples to |
+ | ** Here is a project to help open source developers make their project work better by submitting your speech samples to add them to a speech corpus used to train 4 open source projects that work on that task: http://www.voxforge.org/home |
+ | |||
− | add them to a speech corpus used to train 4 open source projects that work on that task: http://www.voxforge.org/home |
||
+ | ===Python=== |
||
+ | I don't know python so for those who don't know it neither, here's a small snippet to start with (from Fosdem presentation): |
||
+ | <pre> |
||
+ | #!/usr/bin/python |
||
+ | |||
+ | import sys |
||
+ | sys.path.append('/opt/tuxdroid/api/python') |
||
+ | from tux import * |
||
+ | |||
+ | tux.tts.select_voice(3,150) |
||
+ | tux.cmd.leds_blink(200,10) |
||
+ | tux.cmd.mouth_on_free(22) |
||
+ | tux.tts.speak("The box said: 'Requires Windows 95 or better', so I installed LINUX") |
||
+ | tux.cmd.eyes_on_free(4) |
||
+ | tux.cmd.wings_on_free(4) |
||
+ | tux.tts.speak("ha ha ha") |
||
+ | if tux.event.wait_head_bt_pushed(60): |
||
+ | tux.tts.speak("Ouch! That hurts!") |
||
+ | </pre> |
Revision as of 17:35, 20 March 2007
Introduction
_The_ gadget any linux geek should have ;-)
Moreover it is designed in Belgium, tadaam!
Having kids can help justifying such a, hum, impulsive buy ;-)
http://www2.tux-is-alive.com/mediawiki/images/thumb/b/b9/Tux-proto.jpg/200px-Tux-proto.jpg
Sites
- Keep Your Sense Of Humor Commercial site
- Tux is alive! Community site (recent changes)
- Tux Droid development wiki (should disappear after transfer)
- Logs of the IRC channel #tuxdroid on irc.freenode.net
- Blogs aggregated flatted or summarized
- Forum
- Mailing lists
- tux-droid-user
- tux-droid-svn
- tux@kysoh.com was the old one(?)
- Subversion server
- Bugreports
- Atmel
Audio
- Plugging everything for the first time, and I got immediately a new Alsa device:
cat /proc/asound/cards ... 2 [default ]: USB-Audio - TUX RF DONGLE C2ME BELGIUM TUX RF DONGLE at usb-0000:00:1d.2-1, full speed
And I can already place an Ekiga test call :-)
Note that echo between internal speaker and microphone is very important so echo tests are quite terrible!
Using the OSS emulation, I can play whatever I want:
mpg321 -o oss -a /dev/dsp2 /path/to/some/mp3 mplayer -ao oss:/dev/dsp2 http://www.paul.sladen.org/pronunciation/torvalds-says-linux.mp3
Or using the native alsa layer:
mplayer -ao alsa:device=plughw=2.0 http://www.paul.sladen.org/pronunciation/torvalds-says-linux.mp3
Reflashing
Then I learn that to run the new (alpha2) tuxdaemon I'll also need to flash the stuffed pinguin.
Instructions are given on the web site and are not... straightforward.
Additional notes:
- Be sure to have installed properly libusb and to have mounted /proc/bus/usb, cf /usr/share/doc/libusb-0.1-4
- For users to have the right to access usbfs, change /etc/udev/rules.d/020_permissions.rules and add GROUP=usb:
SUBSYSTEM=="usb_device", MODE="0664", GROUP="usb"
- Recompile dfu-programmer from sources! I first tried alien on the rpm but there were glibc problems and when trying tuxup fuxusb.hex I got the following "common problem" but here it's really not because of permission problems.
Programming fuxusb.hex in USB CPU Tux not found on USB
- They explain about tuxup fuxrf.hex and tuxup --main . but I had also to fix the tux rf counterpart: tuxup tuxrf.hex
- At the end, replug the dongle and restart the tux
Compiling a firmware
apt-get install gcc-avr avr-libc gdb-avr
Follow the howto starting from SVNWCRev section.
To get the proper header files to compile SVNCRev:
apt-get install libsvn-dev
And edit svncrev-0.1/config.mk to fix the following path:
APR_INCLUDE=/usr/include/apr-1.0
Personalizing the firmware
For basic stuff, we'll only change the tuxcore.eep file where are stored the basic standalone behaviors.
Edit common/config.h based on commands listed in common/commands.h
Each line is one first byte (what for?) then a frame of 4 bytes to combine between 1 and 4 commands as explained in commands.h
My first personalized firmware has the following behavior:
Eyes closed when no rf link and opened when rf link is established.
Note that it would be easier if there was a CLOSE_EYES_CMD
I solved it by using the seq "OPEN_EYES_CMD, BLINK_EYES_CMD, 1, 0"
Note that for such personalization, only eep file is required but if you plan to use the hex file, I noticed that there was a problem in the versioning structures order, you've to some files and invert some lines:
firmware/tuxaudio/trunk/main.c invert lines 42 and 44 firmware/tuxcore/trunk/global.c invert lines 53 and 55
Remote Control
(from the forum)
Press 'ALT' then 'Tux and phone' and you're in test mode.
The arrows should move tux, if you press a digit key, you change the number of movements. So 4 then up will move the eyes 4 times (2 blinks: close - open -close - open)
Read firmware/tuxcore/trunk/standalone.c l262 to see all possiblities
Raw commands
gtdi allows to send raw commands, see /firmware/tuxdefs/commands.h
Misc Tips
- First time, don't forget to plug Tux to the power adaptor for a while (~5h)
- Want to get Acapela Telecom? It's actually available as the tts-daemon
Misc Problems
- tuxdaemon from svn eats all CPU when running daemonised :-(
- tuxttsdaemon launched by gtdi eated 100% cpu after a while with tux off
- gtdi source to be modified: add a space between gnome-terminal -e and "the_commands"
- wrong comments in commands.h 0x1A & 0x1B control both leds
Misc Questions
- How to control the volume by software?
Misc
- Voice recognition
- Here is a project to help open source developers make their project work better by submitting your speech samples to add them to a speech corpus used to train 4 open source projects that work on that task: http://www.voxforge.org/home
Python
I don't know python so for those who don't know it neither, here's a small snippet to start with (from Fosdem presentation):
#!/usr/bin/python import sys sys.path.append('/opt/tuxdroid/api/python') from tux import * tux.tts.select_voice(3,150) tux.cmd.leds_blink(200,10) tux.cmd.mouth_on_free(22) tux.tts.speak("The box said: 'Requires Windows 95 or better', so I installed LINUX") tux.cmd.eyes_on_free(4) tux.cmd.wings_on_free(4) tux.tts.speak("ha ha ha") if tux.event.wait_head_bt_pushed(60): tux.tts.speak("Ouch! That hurts!")