视频遥控功能

该工能通过webiopi实现远程遥控,通过mjpg-streamer软件实时显示摄像头拍摄图片。部分浏览器可能不能正常显示,建议使用谷歌浏览器或火狐浏览器。在进行以下操作之前需要将raspberry pi连接上wifi.通过putty或直接接到显示器上进行以下操作。 step 1.下载并解压软件包 cd  ~ wget  http://osoyoo.com/driver/osoyoo-robot.tar.gz sudo  tar  -xzvf  osoyoo-robot.tar.gz step2.安装webiopi A.修改CPU型号 cd  osoyoo-robot/osoyoo-cam-robot/WebIOPi-0.7.1/python/native/ 打开cpuinfo.c文件,将40行的BCM2708改为BCM2835,如图所示 sudo  nano  cpuinfo.c 保存退出 B.修改CPU基地址 打开gpio.c 将cpu基地址修改成0x3f000000,如图所示 sudo  nano  gpio.c 保存退出 C.编译安装webiopi cd  osoyoo-robot/osoyoo-cam-robot/WebIOPi-0.7.1/ sudo  ./setup.sh D.验证是否安装成功 webiopi  -h 如果安装成功会有如下图所示输出;如果不成功请重复上面步骤 E.运行webiopi 终端运行 sudo  webiopi  -d  -c  /etc/webiopi/config 然后在电脑端或者手机端打开网页浏览器,在地址栏内输入树莓派ip地址,端口号8000。例如:http://192.168.1.16:8000(根据实际情况填入)。在登录网站时,需要输入账号和密码,默认的账号和密码分别是:webiopi和raspberry。如果进入WebIOPi Main Menu页面,说明环境配置成功了: 终端按下 Ctrl + C 可以结束进程。 step3.安装mjpg-streamer 如果是使用CSI接口的摄像头,需要进行如下步骤 A.打开摄像头接口 sudo  raspi-config 选择Enable Camera。 B.在/etc/modules文件中添加一行bcm2835-v4l2,否则/dev下没有设备节点 sudo   nano  /etc/modules 加上: bcm2835-v4l2(v4l2中的l是小写字母l,不是数字1) 保存退出,并重启Pi 如果使用USB接口摄像头可以跳过上面两步 安装依赖库 cd  ~ sudo  apt-get  update sudo apt-get install libv4l-dev libjpeg8-dev  sudo  apt-get install subversion 编译安装mjpg-streamer cd  osoyoo-robot/osoyoo-cam-robot/mjpg-streamer make USE_LIBV4L2=true clear all 如果提示:make: *** No rule to make target 'clear'. Stop. 请忽略这个警告。 若编译报错,请尝试修改mjpg-streamer/plugins/input_uvc/input_uvc.c文件, 将V4L2_PIX_FMT_MJPEG 改成 V4L2_PIX_FMT_YUYV,再重新编译 开启mjpg-streamer sudo ./start.sh 然后在浏览器地址栏内输入树莓派ip地址,端口号8080,注意这里的端口号是8080,和之前的端口号(8000)是不同的。页面会显示关于M-JPEG streamer的信息。点击Stream会实时显示摄像头拍摄的内容。 按下 Ctrl + C 可以结束进程。 获取raspberry pi IP地址 ifconfig  wlan0 根据树莓派的实际ip,修改这个html标签 cd   ~/osoyoo-robot-osoyoo-cam-robot/robot sudo  nano  index.html 找到 width="320" height="240" src="http://192.168.1.120:8080/?action=stream"> 其中,src后面的地址填入树莓派的ip地址(这里是192.168.1.120),端口号指定为8080(stream的端口)。 修改webiopi默认设置 sudo  nano  /etc/webiopi/config 按照下面的样子修改
[SCRIPTS]
# Load custom scripts syntax :
# name = sourcefile
#   each sourcefile may have setup, loop and destroy functions and macros
myscript = /home/pi/osoyoo-robot/osoyoo-cam-robot/robot/script.py
#myscript = /home/pi/WebIOPi-0.7.1/examples/scripts/macros/script.py
# Use doc-root to change default HTML and resource files location
#doc-root = /home/pi/WebIOPi-0.7.1/examples/servo-control
doc-root = /home/pi/osoyoo-robot/osoyoo-cam-robot/robot
[DEVICES]
# Device configuration syntax:
# name = device [args...]
#   name   : used in the URL mapping
#   device : device name
#   args   : (optional) see device driver doc
# If enabled, devices configured here are mapped on REST API /device/name
# Devices are also accessible in custom scripts using deviceInstance(name)
# See device driver doc for methods and URI scheme available

# Raspberry native UART on GPIO, uncomment to enable
# Don't forget to remove console on ttyAMA0 in /boot/cmdline.txt
# And also disable getty on ttyAMA0 in /etc/inittab
#serial0 = Serial device:ttyAMA0 baudrate:9600

# USB serial adapters
#usb0 = Serial device:ttyUSB0 baudrate:9600
#usb1 = Serial device:ttyACM0 baudrate:9600

#temp0 = TMP102
#temp1 = TMP102 slave:0x49
#temp2 = DS18B20
#temp3 = DS18B20 slave:28-0000049bc218

#bmp = BMP085

#gpio0 = PCF8574
#gpio1 = PCF8574 slave:0x21

#light0 = TSL2561T
#light1 = TSL2561T slave:0b0101001

#gpio0 = MCP23017
#gpio1 = MCP23017 slave:0x21
#gpio2 = MCP23017 slave:0x22

pwm0 = PCA9685 slave:0x40
#pwm1 = PCA9685 slave:0x41

#adc0 = MCP3008
#adc1 = MCP3008 chip:1 vref:5
#dac1 = MCP4922 chip:1
step4.安装VNC sudo apt-get  install tightvncserver 安装VNC服务器 vncserver :1 在安装过程中,需要用户自己设置VNC服务器密码,密码是8个字符,可以设置成raspberr;安装过程中还会提示 You will also be asked if you want to create a separate “read-only” password 输入no就行 安装完成终端运行vncserver :1,就可以开启VNC服务 在Windows或Mac上运行VNC Viewer 输入raspberry pi IP地址通过上面设置的密码远程登录Pi   打开一个终端 cd   osoyoo-robot/osoyoo-cam-robot/mjgp-streamer sudo  ./start.sh 再打开一个终端 sudo   webiopi   -d   -c   /etc/webiopi/config 然后在浏览器地址栏内输入树莓派ip地址,端口号8000(注意这里的端口号不是8080)。 网页上会显示摄像头捕获的画面,点击图标可以控制小车转向。 鼠标点击按钮就可以控制小车了。