* P0 l+ N, U/ ^% U" L. Q/ Q \
. o9 g( W7 m; d/ n( @: @- P
自己做的wifi小车已经完工很久了,最近公司搞Arduino大赛,有个问题一直困扰着我,如何实现不用盯着手机屏幕也能操作小车。( j2 P, E- y j. V [6 H/ Q
/ l! x- z+ Y2 X' Q' ]0 ]# N; Q看到有的同事抱着个笔记本,笔记本再连一个手柄,不禁启发了我,有没有支持wifi的手柄呢?
3 U& J# j4 m- {+ m3 o, {
V" ~3 m! D9 [$ q5 q5 Y, s网上搜了下,国外网站也有成品,无奈需要大笔的银子。想起了家里闲置的PSP 2000,这东西早就支持Wifi了,而且有足够多的按键,用到Wifi小车上足够了,关键是PSP拿在手里相当的顺手,而且拉风。; _& C( E$ g! z- a. A
! w: M C8 v. l; k4 D O5 j# ogoogle了一把,还真找到线索了,琢磨了几天,果真在工作室的驱动板+703N上实验成功,经验与大家一起分享:$ G% |4 x& B+ T* @- Z9 U! U
7 g8 j/ T5 A6 q, O0 M; T8 [7 I
1. google搜索WiFiController v0.4.4,这是一个运行在PSP上的UDP Client,能够把PSP的按键转换成一个长度为11的UDP数据包,发到指定的IP:端口上,我做了如下修改,修改后代码附在最后,代码是老外写的,非原创,但鼓励大家修改后开源。
# ]+ h: c# t5 q3 M* ` 1)修改默认端口为2001
% ]/ e9 Q( a- q- d9 w* B4 c 2)Socket默认是UDP的,改为TCP,否则Openwrt处理不了: v4 C3 L3 D2 c7 r1 ?8 M6 l
3)修改了代码逻辑,把11字节的数据包改为驱动板可以识别的5字节数据包7 M$ o; h {5 V' p; R1 S0 u+ n
4)把PSP的上下左右按键映射为小车的上下左右
, a# m1 k' ~% O. |" d* k* I* W
2. 下载psp sdk,安装,把上述WiFiController代码拷贝到sample目录下,开启命令行窗口,进入代码根目录运行make
/ f. o" R+ a1 h C+ r; n 注意,代码根目录下有两个make file,后缀分别是1xx和3xx,如果是PSP 1000,就用1xx这个,如果是PSP 2000,就用3xx这个。
, _' c2 s0 o, Z) H, m+ ` g
/ e" ]& B3 U4 V4 i) Y2 U! y3. 在PSP的PSP/GAME 目录下新建WiFiController目录,把编译生成的EBOOT.PBP拷贝进去,再把代码根目录下的wifi.cfg打开,把里面的IP地址修改为数传板的IP地址,保存后拷贝到WiFiController目录下。 |