项目分享| 梦幻联动,用树莓派远程开发单片机
-
树莓派、51单片机,看上去不相关的两个平台,经过一番折腾,居然可以利用树莓派远程开发单片机了,只有想不到,没有做不到。感谢达粉金翰的投稿,视频下方有详细的实现过程,也可以在“达尔闻说”微信获得相应代码,回复:树莓派开发单片机。
项目背景
2020年疫情突至,我们的生活都显得不那么快乐!但作为一个即将变成毕业失业人员的我,为了增加自己的敲代码的能力,有了一个想法:找到一个方法能让我远程敲代码做实验!!
好了,一本正经的胡说结束了,主要是文笔不好的我实在是编不下去了!饶了我吧!!!其实真正的理由是因为贫穷的我真的买不起开发板学习了。
项目元件清单
内网穿透工具这个当然是推荐花生壳我们需要一个可以用来远程连接的设备家里有一块吃灰很久的树莓派3B,于是就把这块吃灰的板子拿出来使用了一套用来执行程序的开发板这里是我以前用过的一块51的开发板一个用来显示图像的摄像头本着勤俭持家的原则翻出了10年前的老usb摄像头一些继电器是不是猜不到这个是干嘛的,先保密
项目实现流程
第一步:树莓派可以通过vnc进行远程桌面,但作为一个喜欢折腾的我,怎么可能甘心必须安装客户端呢。这绝对不行!!!不可以!!!所以我选择了带有html5解析vnc协议的novnc。这样,远程的部分ok了。第二步:我选择sdcc进行51单片机编译,编译后会出现hex文件,但对于很多朋友来说这还不够,hex格式的文件还是很大,我们要用bin!!!大家可以使用 Hex2bin来进行转换。okok,现在就剩下串口下载了。我们来解决远程下载,这里我选择的是开源的stcgal进行烧写。第三步:我们再来看看远程摄像头,远程摄像头的方案就有很多了,这里我选择的是motion。好了,分析完就让我们撸起袖子加油干吧!
项目实现过程详解
1)树莓派烧录完成系统后,让我们老规矩来给树莓派更换国内
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
sudo cp /etc/apt/sources.list.d/raspi.list
/etc/apt/sources.list.d/raspi.list.bak
源修改软件更新源,执行如下命令:
sudo vi /etc/apt/sources.list
按i进入编辑模式,改成清华的软件源地址,按ESC退出,然后 :x 回车保存退出。
deb http://mirror.tuna.tsinghua.edu.cn/raspbian/raspbian/ buster main
contrib non-free rpi
deb-src http://mirror.tuna.tsinghua.edu.cn/raspbian/raspbian/ buster
main contrib non-free rp
修改系统更新源,执行如下命令:
sudo vi /etc/apt/sources.list.d/raspi.list
将原镜像用#号注释掉,然后插入清华的系统源地址,保存退出:
deb http://mirror.tuna.tsinghua.edu.cn/raspberrypi/ buster main ui
同步更新源及更新软件包,执行如下命令:
sudo apt-get updatesudo apt-get upgrade
2)更换完成源以后,我们来开启树莓派自带的开启VNC
在终端输入以下命令进入配置界面:
sudo raspi-config
依次操作:Interfacing Options -> VNC -> Yes。之后系统会提示你是否要安装 VNC 服务,输入 y 之后回车,等待系统自动下载安装完成。如果祖师爷还是爱我们的话应该已经开启成功了。
稳妥起见我们还是来查看本地是否安装了vncserver(其实就是看看上面祖师爷有没有显灵)
whereis vncserver
如果没有请手动安装:
yum install -y tigervnc-server
如果按照成功了就看这里哦,使用下面的命令来运行
vncvncserver
此时会要求输入密码。这里需要注意:The VNC server will run in the background. The port that it runs on is the displaynumber + 5900 (i.e. 5901 in the case above)。
意思就是当你执行vncserver :1设置为1时,下面要运行VNC是的端口号应该是5900+1,那 就是5901,VNC的默认端口是5900。
3)安装novnc
#安装git
sudo apt-get install git
#获取novnc的源码
git clone https://github.com/kanaka/noVNC
进入novnc的目
录cd noVNC
运行novnc(第一次运行的时候会下载一个端口转发的程序可能需要一些时间)
./utils/launch.sh --vnc localhost:5901
4)安装51开发环境
这里的开发环境依赖python3,需要确保已安装python3、pip3。如果没有下载pip3请下载。
5)树莓派安装CH340驱动
注意驱动需要下载官方网址(linux版本)。
6)安装usb摄像头监控界面
7)“简单”修改novnc界面
以上四个步骤的详细过程可以查看分享的附件,在“达尔闻说”微信回复:树莓派开发单片机。
8)编写继电器控制脚本控制单片机上电我们选用树莓派上的一个引脚来控制继电器,而继电器来控制单片机的通电与断电。脚本代码如下,大家可以选择不同的引脚进行控制,不在做过多的赘述。
# -*- coding: utf-8 -*
-import RPi.GPIO as GPIOimport time
# BOARD编号方式,基于插座引脚编号
GPIO.setmode(GPIO.BOARD)
# 输出模式
GPIO.setup(0, GPIO.OUT)
GPIO.output(0, GPIO.HIGH)
time.sleep(1)
GPIO.output(0, GPIO.LOW)
time.sleep(1)
这里运行这个代码以后我们会看到一个警告如下:
RuntimeWarning: This channel is already in use, continuing anyway.
Use GPIO.setwarnings(False) to disable warnings.
这个警告我们直接忽略就好。待以上步骤都完成了,就可以实现树莓派远程开发51单片机了。
本次分享到这里就结束了!最后,感谢大家的耐心阅读,如果可以请赐我一个offer或者小姐姐。 谢谢!
-