2 M: U6 b$ ^ r! p7 y+ S) ]( ]
2 D1 _1 l" h- J/ j自己做的wifi小车已经完工很久了,最近公司搞Arduino大赛,有个问题一直困扰着我,如何实现不用盯着手机屏幕也能操作小车。
! p& I& v6 p6 \. G
( s& P' e: v" S6 Q看到有的同事抱着个笔记本,笔记本再连一个手柄,不禁启发了我,有没有支持wifi的手柄呢?
% m; D+ a) J4 K7 U6 A
# X8 x) K7 g }网上搜了下,国外网站也有成品,无奈需要大笔的银子。想起了家里闲置的PSP 2000,这东西早就支持Wifi了,而且有足够多的按键,用到Wifi小车上足够了,关键是PSP拿在手里相当的顺手,而且拉风。$ }# d6 y% J9 D+ j
8 j0 W' g0 P2 ]5 q5 N
google了一把,还真找到线索了,琢磨了几天,果真在工作室的驱动板+703N上实验成功,经验与大家一起分享:
/ {# f+ x# c9 s$ J" x$ C& Z. e" L F' ]5 V% T4 O2 y' L0 }
1. google搜索WiFiController v0.4.4,这是一个运行在PSP上的UDP Client,能够把PSP的按键转换成一个长度为11的UDP数据包,发到指定的IP:端口上,我做了如下修改,修改后代码附在最后,代码是老外写的,非原创,但鼓励大家修改后开源。
; I" ^" F2 k) J1 i; S. K: @- V& d( T 1)修改默认端口为2001, y8 G0 V4 b9 |6 c9 L3 p6 O7 w1 M* s
2)Socket默认是UDP的,改为TCP,否则Openwrt处理不了
2 e' v- t- Y1 @( q7 ?/ q; M" w 3)修改了代码逻辑,把11字节的数据包改为驱动板可以识别的5字节数据包
8 {& S6 M$ U7 M% _2 c; X! G- D9 _3 i 4)把PSP的上下左右按键映射为小车的上下左右
1 l9 m/ v U( v( G& y9 J9 L' @
# O+ D( Y% t, `: ]2. 下载psp sdk,安装,把上述WiFiController代码拷贝到sample目录下,开启命令行窗口,进入代码根目录运行make% Y; _0 L; G' s+ G
注意,代码根目录下有两个make file,后缀分别是1xx和3xx,如果是PSP 1000,就用1xx这个,如果是PSP 2000,就用3xx这个。
$ y( {. ^2 r( K- t- F$ G- R4 Z6 l+ n; ?7 V$ y9 Y( h# K
3. 在PSP的PSP/GAME 目录下新建WiFiController目录,把编译生成的EBOOT.PBP拷贝进去,再把代码根目录下的wifi.cfg打开,把里面的IP地址修改为数传板的IP地址,保存后拷贝到WiFiController目录下。 |