项目概况
使用的是上一个项目Ball Tracer的底盘,硬件方面基本没变。这次主要是想尝试一下用python实现socket通信。
Socket简介
Socket又称”套接字”,应用程序通常通过”套接字”向网络发出请求或者应答网络请求,使主机间或者一台计算机上的进程间可以通讯。Socket是应用层与传输层间的一个抽象层,是个编程接口。
拓展阅读:计算机网络层级
在协议组学到的一些东西。
架构
网络
电脑和树莓派连接同一个路由器,处于一个局域网内。使用ifconfig/ipconfig查看ip地址,便于后续连接的建立。
socket
使用了两个socket,socket0负责传输图像,socket1负责传输操控指令。socket0从树莓派发往PC,socket1从PC发往树莓派。都是PC做服务器,树莓派做客户端。使用的是udp传输协议,延迟更低,丢包对视频传输的影响也不大。
操控
使用键盘操控,w前进,s后退,a左转,d右转。
代码
PC端
camera.py
1 | import cv2 |
control.py
1 | import cv2 |
树莓派
camera.py
1 | buffSize=65535 |
control.py
1 | import socket |
gpiotest.py
1 | import cv2 |