嵌入式开发日记(1)——Arduino入门与串口通信的调试

项目背景是开发一台帕金森病人的辅助康复护臂,算是从零做起,在这儿把经验总结一下,供同学参考

先写一下相关的背景知识:

1  串口通信是指外设和计算机间,通过数据信号线 、地线、控制线等,按位进行传输数据的一种通讯方式。这种通信方式使用的数据线少,在远距离通信中可以节约通信成本,但其传输速度比并行传输低。串口是计算机上一种非常通用的设备通信协议。pyserial模块封装了python对串口的访问,为多平台的使用提供了统一的接口。

2 Python 安装 pyserial库后出现       AttributeError: module 'serial' has no attribute 'Serial'

原因:建的工程文件不能跟库文件重名!!!!

3 Arduino IDE中有很多示例参考

4 注意分清数字接口,模拟接口,接地接口,板子如下

 

5 pySerial 封装了串口通讯模块, 像文件读写一样的API,read、write(readline等也受支持)

常用的方法函数有:导入串口模块import serial;打开串口ser = serial.Serial(端口名称,...其他参数),ser.open()方法可以在close之后再次打开相应端口;关闭串口ser.close();通过串口写入ser.write(b''),参数需要使用字节bytes类型,如果是str类型,则可以使用encode('utf-8')的方式进行转换;读取模块信息的方法如下,x = ser.read()读取一个字节,x=read(n)读取n个字节,readline()可以用来读取一行。

6 加载库文件SCoop出错:到https://github.com/fabriceo/SCoop下载SCoop库,然后添加到Arduino IDE中。

7 在pyserial中,ser.write()方法输入参数为字符串,因此无法直接将16进制数写入串口,需要先转换为字符串,再通过decode编码为unicode字符发送到串口

8 pyserial库常用函数介绍

 

serial = serial.Serial(‘COM1’, 115200) 打开COM1并设置波特率为115200,COM1只适用于Windows

 

serial = serial.Serial(‘/dev/ttyS0’, 115200) 打开/dev/ttyS0并设置波特率为115200, 只适用于Linux

 

print serial .portstr 能看到第一个串口的标识

 

serial .write(“hello”) 往串口里面写数据

 

serial .close() 关闭serial 表示的串口

 

serial .open() 打开串口

 

data = serial .read(num) 读num个字符

 

data = serial .readline() 读一行数据,以/n结束,要是没有/n就一直读,阻塞。

 

serial .baudrate = 9600 设置波特率

 

print serial 可查看当前串口的状态信息

 

serial .isOpen() 当前串口是否已经打开

 

serial.inWaiting() 判断当前接收的数据

 

serial.flushInput() 清除输入缓冲区数据

 

serial.flushOutput() 中止当前输出并清除输出缓冲区数据

9 Arduino读者只需要知道,当输入5V的时候输出为3.3V,输入9V的时候输出才为5V,所以用9V(9V~12V均可,但是过高的电源会烧坏板子)电源供电的原因就在这。

10 

Arduino程序的架构大体可分为3个部分。 (1)声明变量及接口的名称。(2)setup()。在Arduino程序运行时首先要调用setup()函数每次 Arduino 上电或重启后,setup()函数只运行一次,用于初始化变量、设置针脚的输出/输入类型、配置串口、引入类库文件等等。

3)loop()。在setup()函数中初始化和定义变量,然后执行loop()函数。顾名思义,该函数在程序运行过程中不断地循环,根据反馈,相应地改变执行情况。通过该函数动态控制Arduino主控板。

11

 

12

 

13 数字引脚常量:INPUT和OUTPUT 当引脚被配置成INPUT时,此引脚就从引脚读取数据;当引脚被配置成OUTPUT时,此引脚向外部电路输出数据。引脚电压常量:HIGH和LOW 

这两个常量也是必须大写的。HIGH表示的是高电位,LOW表示的是低电位。当一个引脚通过pinMode配置为OUTPUT,并通过digitalWrite设置为LOW时,引脚为0V,当digitalWrite设置为HIGH时,引脚的电压应在5V。

14

 

15

 

16

 

17 

18 

猜你喜欢

转载自blog.csdn.net/wulitaotao96/article/details/89182338
今日推荐