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

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第三方库

pip3 install pyserial

关于如何使用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,115200serial_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记录相关推荐

  1. DayDayUp:昨天用微信发朋友圈—发现微信出现一点点Bug记录

    DayDayUp:昨天用微信发朋友圈-发现微信出现一点点Bug记录-屏蔽了该屏蔽的人,但没被屏蔽的人也看不到 目录 遇到微信小bug的前因后果 关于微信 遇到微信小bug的前因后果 博主于昨天23:5 ...

  2. EC11编码器和单片机通信

    EC11编码器 EC11编码器通常又被称作为旋转编码器,一般主要是用于亮度.温度.频率,音量调节等参数控制. 三只脚中的C脚接地,AB脚接上拉电阻后,当左转或右转时,AB脚就有脉冲信号输出.S1和S2 ...

  3. 51单片机实例学习四 128X64 液晶显示器、PS/2与单片机通信、密码锁

    十四.128X64 液晶显示器的基本应用 [实验任务] 利用128X64点阵液晶显示屏显示图片,字符,汉字,画点,实现其基本显示 功能. [硬件电路图] [实验原理] 关于液晶显示的原理请用户自行其查 ...

  4. 【BUG记录】解决Failure to find (pom/jar) in http://xxx.com was cached in the local repository

    [BUG记录]解决Failure to find (pom/jar) in http://xxx.com was cached in the local repository ☠注意:此解决方法仅针对 ...

  5. STM32F103+NRF2401+游戏摇杆ADC双单片机通信遥控小车

    STM32F103+NRF2401+游戏摇杆ADC双单片机通信遥控小车 文章目录 STM32F103+NRF2401+游戏摇杆ADC双单片机通信遥控小车 前言 一.实现的功能? 二.主要代码及模块讲解 ...

  6. python实现STM32单片机通信

    python实现STM32单片机通信 注意事项 注意事项 Python3中的encode('unicode-escape')和encode('raw_unicode_escape')区别与联系 htt ...

  7. 【BUG记录】记一次游戏越来越卡的BUG

    [BUG记录]记一次游戏越来越卡的BUG U3D的MOBA项目,测试过程中,10分钟以后,游戏帧率开始缓慢下降,约3-5分钟后,由60帧下降到小于10帧,编辑器模式. 打开profiler,看到CPU ...

  8. 485通信原理_上位机开发之单片机通信实践

    经常会有一些学员会问到上位机与单片机之间通信的问题,而我们经常会讲上位机与PLC之间通信,那么其实对上位机开发来说,不管是和PLC通信,还是和单片机通信,通信原理都是一样的.PLC的本质就是单片机,在 ...

  9. pythonqt4上位机开发_上位机开发之单片机通信实践(一)

    经常会有一些学员会问到上位机与单片机之间通信的问题,而我们经常会讲上位机与PLC之间通信,那么其实对上位机开发来说,不管是和PLC通信,还是和单片机通信,通信原理都是一样的.PLC的本质就是单片机,在 ...

最新文章

  1. 使用 Amazon Cloud WAN 构建您的全球网络
  2. 记下来 Spring 装配 Bean 的三种方式
  3. lucene使用3.0.3_使用Apache Lucene 4.3轻松进行搜索
  4. 牛刀:开发商不差钱不等于房价不暴跌 (转载)
  5. ❤️14万字的《微服务开发SpringBoot—从基础高级》(建议收藏)❤️
  6. e83服务器电源键位置,正文-新华三集团-H3C
  7. 暗黑战神项目详细总结
  8. JPA JAVA代码生成器(entity ,controller ,service ,repository)
  9. java中关闭数据库连接_在Java中关闭数据库连接
  10. 关于三角形外心性质的探究
  11. 33. secure world对smc请求的处理------invoke command操作在OP-TEE中的实现
  12. android 开发 安卓系统主题设置
  13. android 与后台实时视频,android选择视频文件上传到后台服务器
  14. 什么时候可以找回民族的自尊,不再崇洋媚外?--从华晨老总骏捷发布会的一番话说起...
  15. turtle实例8 玫瑰曲线
  16. 07、人人都会设计模式:建造者模式--Builder
  17. 可以听歌玩游戏看股票背单词的ROS开发工具?小鱼:就差能点外卖了~
  18. 数论出题组比赛用题:签到题(待完善)
  19. 什么是缓冲区溢出?有什么危害?其原因是什么?
  20. 免费分享SPSS 17.0 软件

热门文章

  1. pb打印:PB中打印预览的实现
  2. android手机无分区无法刷机,手机刷死了别说没提醒!安卓设备刷机前必看
  3. Win10注册表使用SYSTEM后也无法删除注册表的解决方案
  4. Servlet之 http://localhost:8080/ 详解
  5. java虚拟机有哪几部分组成,Java虚拟机基本结构
  6. Ubuntu下的PROXY设置
  7. 关于ADS调参比较好的方式
  8. 构建学习tensorflow
  9. 图书管理系统python pycharm 数据库
  10. MyBatis-Plus Cause: java.lang.IllegalArgumentException: argument type mismatch解决