2008年10月30日 星期四

Neo 機器人

月初從朋友那拿了一個控制 servo 的 LSC chip,以及一雙由 servo 組成的腳…
就在想,能不能拿 Neo 來做機器人呢?

Neo 上有兩個 g-sensor ,GPS chip,2.5G GSM chip, bluetooth,還有 wifi…
如果它能動…那會有多可怕… 拿它來開船、開飛機。可用 bluetooth wifi 和 GSM 來遙控…
應該會是一個很好玩的東西…

為了可以在 Neo 上能快快樂樂的玩 servo ,我開了個小案子:LSCD

把 servo 的 driver 寫好,再寫一個 python-binding... 就可以快快樂樂的玩了

liblscd 是控制 chip 的 API 可讀寫每個servo 的角度和速度。
pylsc 是 liblscd 的 python binding
在 tests 中還有一個 robot.py ,可以用來控制由 servo 組合而成的 robot...
未來想把 pylsc 寫成 freesmartphone 的一個 service 如此就可以和 phone event manager 整合在一起… (感覺起來可以做很多壞事 :P )


怎麼玩呢?
1. kernel 要有 HIDDEV drvier (Debian default 有,Ubuntu 沒有), Neo 從今天開始的 stable kernel 就會有 :P

2.1 在 laptop 上玩:
a. 安裝 gcc python cython pyrex python2.5-dev intltool libgettextpo-dev libtool automake autoconf make subversion
b. > svn checkout http://lscd.googlecode.com/svn/trunk/ lscd
c. > cd lscd
> ./autogen.sh
> make
> sudo make install
d. 接上 LSC device, sudo chmod 777 /dev/usb/hiddev0
e. 就可以進 test 來玩 robot.py 了
2.2 在 Neo 上玩
a. wget http://lscd.googlecode.com/files/liblscd0_armv4t.opk
b. opkg install
liblscd0_armv4t.opk
c. 用 wifi or bluetooth 連進Neo
http://wiki.openmoko.org/wiki/Wifi

http://wiki.openmoko.org/wiki/Manually_using_Bluetooth#Bluetooth_networking_with_a_Linux_system
d. 把 usb 切到 host mode http://wiki.openmoko.org/wiki/USB_host#Selecting_USB_host_modes
e. 接上 LSC device (要有一個 mini 公 <----> USB B公的線, 可以用組合的)
example:
(mini公 <--> A 公 | A 母 <--> A 母 | A公<-->B 公)
f. 就可以玩了 ^_^

除了接線外…一切都可寫成 script :P




2008年10月23日 星期四

kernel indent 備忘

indent -kr -i8 -ts8 -sob -l80 -ss -bs -ps1

也可以看 scripts/Lindent