我是靠谱客的博主 活力红酒,最近开发中收集的这篇文章主要介绍bluerov与单片机通信开发过程与bug记录,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

首先烧录系统,镜像文件从以下网站获取:

Downloads · GitBookr

如果进不去,挂个梯子就行,下载

 烧录之后,把SD卡插入树莓派,准备一个U盘。这个版本的树莓派系统自带软件源比较落后,很多软件包都没有,可以更换清华源:

deb http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ stretch main contrib non-free rpi
deb-src http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ stretch main contrib non-free rpi

将以上软件源保存到文本中,更名为sources.list,放到U盘中

将U盘插入树莓派。树莓派不能直接读取U盘,需要先挂载

sudo fdisk -l  #需要注意U盘挂载在哪个设备下,所使用的U盘格式是FAT
sudo mount -t vfat /dev/sda1 /mnt/usb   #这个挂载需要在超级权限下才能使用
#vfat参数也是可变的,如果U盘格式为FAT就是vfat,如果是NFTS格式,我也不知道,但一般不会是这个格式
#/dev/sda1 这个参数会有变化,因为U盘在那个分区时不确定的,通过上面fdisk -l来查看
#/mnt/usb是需要挂载到的目标目录
#接下来就可以直接在/mnt/usb查看U盘文件

将U盘中的sources.list转移到/etc/apt

cd /mnt/usb   #切换到U盘目录下
cp sources.list /etc/apt     #将目标文件复制到目标目录下

更换软件源后还有跟新

sudo apt-get update     
sudo apt-get upgrade

这两个命令需要进行区分,sudo apt-get update是将软件源中的软件下载地址,依赖等记录到本地文件,即更新了自身的软件源。sudo apt-get upgrade将软件源中的目标软件和系统已经安装的软件进行比对,如果版本陈旧就进行更新

检查系统是否安装USB驱动

lsmod | grep usbserial

如果没有,安装USB串口驱动,一般树莓派操作系统是没有USB驱动的,需要自己安装

sudo apt-get install setserial

检查系统安装的python版本

python -V

建议使用python3

安装pyserial第三方库

sudo pip3 install pyserial
#此处更新了sudo,因为如果没有sudo是没有这个权限安装的

关于如何使用python进行串口通信,这个网上资料很多,建议看github上的教程,这里简单介绍一下

import serial  #在linux系统下,定义并打开串口:

Serial方法,可以打开串行口,获取串口状态,设置串口状态
serial_port = serial.Serial(port='port_name',baudrate=115200,bytesize=serial.EIGHTBITS,parity = serial.PARITY_NONE,stopbits = serial.STOPBITS_ONE,)

#其中port为设备名,比如在ubuntu上'/dev/ttyUSB0',在windows上'COM3'
#可以使用print(serial_port.name)来获取设备名称,或者print(serial_port.port)来获取,亲测在#ubuntu和window上可以使用
#baudrate常用的有9600,115200

serial_port.open( )     #打开端口

serial_port.close( )     #关闭串口

serial_port.read(10)    #从端口读取10个字节

serial_port.write('string'.encode( ))     #向端口写入string字符,必须先使用.encoding( )将字符转换成encoding码(万国码)
   
serial_port.readline( )        #读取一行内容,以n结束

serial_port.inWaiting( )       #返回接收缓存中的字节数

.flush( )          #等待所有数据写出

.flushInput( )             #丢弃接收缓存中的所有数据

.flushOutput( )           #终止当前写操作,丢弃所有发送缓存中的数据

 /dev/ttyUSB0需要权限才能进行读取,这里赋予最大权限

sudo chmod -R 777 /dev/ttyUSB0

接下来是在另一台电脑上通过ssh登陆来远程控制,我们把树莓派称作server(服务器),顶层电脑称为client

在sever上安装openssh-server

sudo apt-get install openssh-server   #安装ssh
ps -e|grep ssh                        #检查是否开启ssh服务
sudo /etc/init.d/ssh start            #ssh服务开启

#在树莓派终端输入,这些命令是临时的,重启会失效
sudo service ssh start
sudo service ssh status

#如果想要ssh服务开机自启
vi /etc/rc.local           #用vi编辑器编辑rc.local
#在exit(0)下一行加上    /etc/init.d/ssh start

在client上安装openssh-client

sudo apt-get install openssh-client

将client和server通过以太网连接

sudo ssh 服务器用户名@服务器ipv4

输入本机、从机密码后,观察到用户变为pi,表示连接成功

再运行python文件进行USB串口通信,如果发现打不开串口,检查USB是否连接上,是否添加权限,程序是否有bug

最后

以上就是活力红酒为你收集整理的bluerov与单片机通信开发过程与bug记录的全部内容,希望文章能够帮你解决bluerov与单片机通信开发过程与bug记录所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(46)

评论列表共有 0 条评论

立即
投稿
返回
顶部