; B9 z" x; \/ J9 O' u/ Y/ ^) B& z) q0 b3 i$ v' I$ e
自己做的wifi小车已经完工很久了,最近公司搞Arduino大赛,有个问题一直困扰着我,如何实现不用盯着手机屏幕也能操作小车。
" I2 j0 t; o8 C% E& s7 O* w# [! ]4 @2 O4 |7 D
看到有的同事抱着个笔记本,笔记本再连一个手柄,不禁启发了我,有没有支持wifi的手柄呢?
# r; |! M! ^) z3 u& M$ l; i% e3 P1 N8 U
网上搜了下,国外网站也有成品,无奈需要大笔的银子。想起了家里闲置的PSP 2000,这东西早就支持Wifi了,而且有足够多的按键,用到Wifi小车上足够了,关键是PSP拿在手里相当的顺手,而且拉风。
6 h O2 H( h# I7 m. f% I
$ L& |8 S3 p# A2 ?7 Pgoogle了一把,还真找到线索了,琢磨了几天,果真在工作室的驱动板+703N上实验成功,经验与大家一起分享:7 j3 A9 q$ d) K2 m' f0 k# N0 I
. K8 b6 J+ K, E1. google搜索WiFiController v0.4.4,这是一个运行在PSP上的UDP Client,能够把PSP的按键转换成一个长度为11的UDP数据包,发到指定的IP:端口上,我做了如下修改,修改后代码附在最后,代码是老外写的,非原创,但鼓励大家修改后开源。
' d. N8 A4 [8 m5 O1 b$ c0 q9 H0 P7 u 1)修改默认端口为2001
+ |) H2 \/ }! H* b. n7 j/ }; T 2)Socket默认是UDP的,改为TCP,否则Openwrt处理不了
* K% ]' \0 }7 p1 M 3)修改了代码逻辑,把11字节的数据包改为驱动板可以识别的5字节数据包
+ K' S4 N" T1 y1 c7 q# l 4)把PSP的上下左右按键映射为小车的上下左右
$ R$ j4 e6 d! _3 |4 S7 h
* {# i8 @2 X X* W' L: r0 |; |1 [2. 下载psp sdk,安装,把上述WiFiController代码拷贝到sample目录下,开启命令行窗口,进入代码根目录运行make
! y" P1 v3 f/ k: G, B- } 注意,代码根目录下有两个make file,后缀分别是1xx和3xx,如果是PSP 1000,就用1xx这个,如果是PSP 2000,就用3xx这个。
. W" L1 n) w* D- y8 A$ {* }& F
( B. r- m6 l6 H& |( F5 ~5 i3. 在PSP的PSP/GAME 目录下新建WiFiController目录,把编译生成的EBOOT.PBP拷贝进去,再把代码根目录下的wifi.cfg打开,把里面的IP地址修改为数传板的IP地址,保存后拷贝到WiFiController目录下。 |