找回密码
 立即注册
查看: 23031|回复: 259

[参考教程] 树莓派WIFI小车java版(-)准备工作

  [复制链接]
发表于 2015-6-30 19:09:30 | 显示全部楼层 |阅读模式
现在网上有很多的关于树莓派WIFI小车的介绍,基本上是基于python或C来控制的。本人愚笨,仅对java有感,经过一段时间的折腾,倒腾出java版的控制程序,与大家分享,希望对偏java的同学有所启发

一、准备工作
[size=10.5000pt]1. 硬件列表
所用硬件都是从淘宝淘来的
1. 树莓派主板  (树莓派3也同样适用,2017年6月更新)
pi.png
  我用的是树莓派2B板
2. 摄像头
noir.png
  我使用的是树莓派的RPI NoIR摄像头模块,支持红外,因为买的早,比较贵,¥150
3. 无线网卡
wifi.png
      任何树莓派支持的无线网卡都可以,我用的RTL8188C,淘宝 ¥30
4. PCA9685 12位-16通道 PWM 扩张板
pca.png
  因为树莓派的PWM很挫,并且口子不够,AdaFruit 出品的这款板子很给力,通过I2C连接rpi,独立3.3V电源。淘宝¥23
5. S90 舵机x 2 + 云台
servo.png
      用于调整摄像头的角度,2个舵机可以支持上下左右旋转摄像头。淘宝¥42
6. L298N电机驱动板
l298n.png
      淘宝¥7.6
7. 5V输出电源板
5v.png
  很好用的东东,尺寸只有17x22mm,7-28V输入,5V1.5A输出。淘宝¥3.8
8. USB移动电源
      拿了一个旧的手机移动电源,给树莓派供电
9. 18650 3.7V电池x 2
1860.png
   充满电实际有7.9V,给4个电机和2个舵机供电。淘宝¥18两节
10. 小车底盘
car.png
   淘宝很多,价格不一。我买的¥17
11. 减速电机+轮胎 x 4
wheel.png
   电机减速比很重要,尽量选加速比大的减速电机。我买的TT减速电机+轮胎+固定套件,减速比1:180,很给力。淘宝¥8 x 4
12. android智能手机或平板
通过wifi遥控小车
13. 其他小配件/电子元件
杜邦线,二极管,发光LED,1K电阻若干,拨片式小开关
[size=10.5000pt]2. 软件列表
1. Raspbian
从官网下载最新镜像2015-02-16-raspbian-wheezy.img,写到TF卡上
启动树莓派后,自动进行首次设置,打开摄像头
pi-1.png
回车,选择enable
pi-2.png
回车确定
打开I2C选项
pi-3.png
选择 Advanced Options,回车
pi-4.png
选择 I2C,回车后一路选择是
pi-5.png
pi-6.png
pi-7.png
pi-8.png
回到主页后,选择 Finish,重启树莓派
pi-9.png
设置时区
  1. sudo mv /etc/localtime /etc/localtime.bak
  2. sudo ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
复制代码

2. 配置无线网络
首先,确保系统认识了无线网卡
lsusb.png
有2种工作方式:
1)树莓派作为局域网中的一台普通终端接入以太网
编辑/etc/network/interfaces
  1. sudo vi /etc/network/interfaces
复制代码

编辑后,文件看起来像
  1. auto lo

  2. iface lo inet loopback

  3. allow-hotplug wlan0
  4. iface wlan0 inet static
  5. wpa-ssid <YOUR WIFI SSID>
  6. wpa-psk <YOUR WIFI PSK>
  7. address 10.247.1.48
  8. netmask 255.255.255.0
  9. gateway 10.247.1.1

  10. iface eth0 inet static
  11. address 10.247.1.50
  12. netmask 255.255.255.0
  13. gateway 10.247.1.1
复制代码

2)树莓派作为AP使用
这个过程相对复杂些。若无需将树莓派作为AP,可以采用1)步骤的的。这里给出配置过程不解释,网上有很多教程,请自行google/度娘。
首先更新系统,后重启
  1. sudo apt-get -y update
  2. sudo apt-get -y upgrade
  3. sudo reboot
复制代码
下载并编译RTL8188-hostapd-2.0
  1. cd ~
  2. wget https://github.com/jenssegers/RTL8188-hostapd/archive/v2.0.tar.gz
  3. tar zxf v2.0.tar.gz
  4. cd RTL8188-hostapd-2.0/hostapd
  5. make
  6. sudo make install
复制代码

替换系统的hostapd
  1. sudo mv /usr/sbin/hostapd /usr/sbin/hostapd.bak
  2. sudo mv hostapd /usr/sbin/hostapd
  3. sudo chown root.root /usr/sbin/hostapd
复制代码
编辑/etc/network/interfaces
  1. sudo vi /etc/network/interfaces
复制代码
内容看起来像
  1. auto lo

  2. iface lo inet loopback
  3. allow-hotplug wlan0
  4. iface wlan0 inet static
  5. address 192.168.100.1
  6. netmask 255.255.255.0

  7. iface eth0 inet static
  8. address 10.247.1.50
  9. netmask 255.255.255.0
  10. gateway 10.247.1.1
复制代码
编辑 /etc/hostapd/hostapd.conf
  1. sudo vi /etc/hostapd/hostapd.conf
复制代码
编辑后,文件看起来像
  1. interface=wlan0
  2. driver=rtl871xdrv
  3. ssid=<YOUR WIFI SSID>
  4. channel=1
  5. wmm_enabled=0
  6. wpa=1
  7. wpa_passphrase=<YOUR WIFI PASSWORD>
  8. wpa_key_mgmt=WPA-PSK
  9. wpa_pairwise=TKIP
  10. rsn_pairwise=CCMP
  11. auth_algs=1
  12. macaddr_acl=0
复制代码

安装 dhcp
  1. sudo apt-get install udhcpd
复制代码
配置 /etc/udhcpd.conf
  1. sudo vi /etc/udhcpd.conf
复制代码
编辑后文件看起来像
  1. start                               192.168.100.100
  2. end                                192.168.100.199
  3. interface                        wlan0         
  4. max_leases                    100
  5. remaining                      yes            
  6. opt                                dns                          192.168.100.1
  7. option                           subnet                     255.255.255.0
  8. opt                                router                      192.168.100.1
  9. opt                                wins                         192.168.100.1
  10. option                           dns                          10.247.1.1     
  11. option                           domain                    pi
  12. option                           lease                        864000      
复制代码

重启后,应该就可以通过无线连接到树莓派了
ifconfig.png
3. jdk for ARM
从oracle官网下载 jdk for arm,解压jdk-7u60-linux-arm-vfp-hflt.gz
  1. cd /usr/local
  2. sudo tar zxf /home/pi/jdk-7u60-linux-arm-vfp-hflt.gz
  3. sudo link -l jdk java
复制代码

4. Apache Ant
  1. cd ~
  2. wget http://www.apache.org/dist/ant/binaries/apache-ant-1.9.5-bin.tar.gz
  3. mkdir /usr/local/apache
  4. cd /usr/local/apache
  5. sudo tar zxf /home/pi/apache-ant-1.9.5-bin.tar.gz
复制代码

评分

参与人数 1 +1 收起 理由
565911035 + 1

查看全部评分

回复

使用道具 举报

发表于 2015-7-2 17:09:09 | 显示全部楼层
绝世好文,不得不顶
回复 支持 0 反对 1

使用道具 举报

发表于 2015-6-30 19:21:10 | 显示全部楼层
这得强力支持下,期待后续文档。。。加精
回复 支持 反对

使用道具 举报

发表于 2015-7-1 20:06:29 | 显示全部楼层
看不太懂,挺复杂
回复 支持 反对

使用道具 举报

发表于 2015-7-2 10:00:00 | 显示全部楼层
非常好,喜欢。
回复 支持 反对

使用道具 举报

发表于 2015-7-3 01:15:24 | 显示全部楼层
怎么提供java服务的?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-7-3 14:18:38 | 显示全部楼层
belial0317 发表于 2015-7-3 01:15
怎么提供java服务的?

在第三部分(http://www.shumeipai.net/thread-26817-1-1.html)和第四部分(http://www.shumeipai.net/thread-26834-1-1.html)里分别提供了java的控制程序和基于android的遥控程序。
源代码在https://github.com/seth-yang/remote-car
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则