行空板 usb 串口通讯 pyserial
本帖最后由 Forgotten 于 2023-7-10 17:35 编辑硬件:行空板,转串口模块(购买链接:https://www.dfrobot.com.cn/goods-242.html),杜邦线若干,一个可以串口通讯的设备(此处用uno),i2C加速度传感器
转串口模块rx接uno的tx,tx接rx,gnd接gnd.
基础知识和操作步骤:
行空板教程:https://wiki.unihiker.com/
uno教程:https://wiki.dfrobot.com.cn/_SKU_DFR0216_DFRduino_UNO_R3
pyserial教程:https://blog.csdn.net/xuzhexing/article/details/91043579
代码:
1.uno代码(arduinoC)
在附件,可下载
2.行空板代码(python)
案例2:arduino读取温湿度通过串口发送到行空板
如果arduino上设备供电需求不搞,对接线空间要求不高,也可以直接将arduino的USB线插到行空板的USBA口。
这里演示在arduino上插一个dht11温湿度串口,然后arduino读取dht11的温湿度数据,发送到串口,然后行空板使用pyserial接收。
Arduino板中的代码:
/*!
* MindPlus
* uno
*
*/
#include <DFRobot_DHT.h>
DFRobot_DHT dht11_5;
// 主程序开始
void setup() {
Serial.begin(9600);//串口波特率9600
dht11_5.begin(5, DHT11);
}
void loop() {
//串口打印数据
//为方便另外一边接收,将温度和湿度数据转换成了字符串,然后增加前缀和逗号分隔
Serial.println("temp:"+String(dht11_5.getTemperature())+","+"humi:"+String(dht11_5.getHumidity()));
//隔一段时间自动发送一次
delay(1000);
}
arduino上传完程序之后,打开串口监视器可以看到数据正常输出。
uno连接行空板可以使用如下两种方式,如果需要连接比较多传感器,则uno应该独立供电。两种方式的串口号可能不同,可以使用终端输入ls /dev/tty*查看所有设备,然后插上和拔下串口设备判断串口名
然后行空板运行如下代码:
import serial
import time
from unihiker import GUI
#第一个参数是串口号,行空板上的串口以/dev/ttyxxx开头,可以在终端输入ls /dev/tty*查看所有设备,然后插上和拔下串口设备判断串口名
#第二个参数是波特率,要跟arduino那边相同
ser=serial.Serial("/dev/ttyACM0",9600)
#在行空板屏幕上显示两行字
u_gui=GUI()
temp_txt=u_gui.draw_text(text="温度",x=0,y=0,font_size=20, color="#0000FF")
humi_txt=u_gui.draw_text(text="湿度",x=0,y=30,font_size=20, color="#0000FF")
while True:
if ser.in_waiting > 0:
line = ser.readline().decode('utf-8').rstrip()# 读取一行,解码为UTF-8格式,然后删除行尾的换行符
# 解析接收到的数据
data = line.split(',')
temp_data = data.split(':')
humi_data = data.split(':')
temp = float(temp_data) if temp_data == 'temp' else None
humi = float(humi_data) if humi_data == 'humi' else None
# 打印温度和湿度值
print(f'温度值: {temp}, 湿度值: {humi}')
#将温湿度的值更新到行空板屏幕上显示
temp_txt.config(text="温度值"+str(temp))
humi_txt.config(text="湿度值"+str(humi))
time.sleep(1)# 等待1秒
效果:
请问这个例子是利用arduino采集加速度传感器值,然后通过串口发送到行空板吗?
能不能直接用行空板采集I2C加速度传感器值? 是利用arduino采集加速度传感器值,然后通过串口发送到行空板 可以直接用行空板采集I2C加速度传感器值,C:\Users\Ziyu.Yang\Documents\mindplus-py\environment\Lib\1.7.2-202206161900\site-packages
这个文档下面找pingpong库示例 这个实例就是把arduino uno当成一个扩展版来使用 厉害厉害 赞赞赞赞赞!
页:
[1]