目录
对于nano与STM32进行串口通讯,同时运行mobileNet-V1网络进行识别
对于系统镜像的备份问题
首先在windows系统上是不好读取系统镜像的,而且不同的TF卡本身也对镜像存在一些要求.
首先我是使用了ubuntu的虚拟机.
1.首先TF卡要插上读卡器要连接上虚拟机
2.terminal输入sudo fdisk -l查看对应的u盘文件,注意!这个/dev/sdb1是分区头,而/dev/sdb才是TF卡的全部
3.在terminal输入sudo dd if=/dev/sdb conv=sync,noerror bs=16M | gzip -c > nano_back2022_11_19.img.gz
其中nano_back2022_11_19.img.gz是对应镜像系统压缩包的名字.这些都没啥问题
4.重新打开另外一个terminal并且输入sudo pkill -USR1 -n -x dd命令
会在原terminal显示复制信息
输入完毕后可以等待复制完成
5.然后我们把这个镜像压缩包烧录到一个新的TF卡中就好了,当然对于原来TF卡中存在系统镜像的在windows下我们可以使用树莓派烧录软件的擦除和烧录.
当然在血的教训,我的系统镜像原来放在三星的64GTF卡中,但是复制出来烧到闪迪的64GTF
卡中是不行的,浪费了我2,3天烦死了.
对于Dock镜像内使用串口等问题
首先 pip install pyserial -i https://pypi.tuna.tsinghua.edu.cn/simple
由于串口得pip3在宿主机内pyserial包,但是还是得映射到dock容器之中,我们怎么找到该映射的文件夹呢
我使用pip命令找到了对应的文件夹只要在docker命令-v一下映射过去就行啦
首先要开启 所以对/dev/ttyTHS1的读写权限 ,并且作为设备在使用docker的情况下也要作为设备映射
在teminal中输入 sudo chmod 777 /dev/ttyTHS1然后就可以在使用串口
直接运行文件就行了
依次输入
xhost +
sudo chmod 777 /dev/ttyTHS1
sudo docker run -it --rm --runtime nvidia -v ~/Desktop/AI/jetson-inference/data:/jetson-inference/data -v /dev/video0:/dev/video0 --device /dev/video0 --network host -e DISPLAY=$DISPLAY -v /tmp/.X11-unix/:/tmp/.X11-unix -v /etc/enctune.conf:/etc/enctune.conf -v ~/Desktop/AI/detection/data:/jetson-inference/python/training/detection/ssd/data -v ~/Desktop/AI/detection/models:/jetson-inference/python/training/detection/ssd/models -v ~/Desktop/AI/detection:/jetson-inference/python/training/detection/ssd -v /usr/local/lib/python3.6/dist-packages:/usr/local/lib/python3.6/dist-packages --device /dev/ttyTHS1:/dev/ttyTHS1 7a7d343029a2 /bin/bash
对于最后的 --device /dev/ttyTHS1:/dev/ttyTHS1 这个是设备映射,-v /usr/local/lib/python3.6/dist-packages:/usr/local/lib/python3.6/dist-packages这个是文件映射
然后我们在其中就可在docker中实现串口传输了
对于nano与STM32进行串口通讯,同时运行mobileNet-V1网络进行识别
这里得感谢硕硕哥哥,我想串口发送字符串,他帮我写了对于8位2进制数据的通讯协议.很好的增加了我nano的工作量,虽然在单片机上说8位二进制解码确实比字符串快不少emmm
左侧是识别右侧是发送的数据包用 Ox40作为包头 Ox0D和Ox0A
然后再单片机上也会显示数据
我们可用单片机去执行操作电机啊什么什么等等还是非常nice的