《边学边用树莓派-7》树莓派上安装Arduino IDE

2014-06-271.8万
AI 快速预览详细 收起
本文介绍了如何在树莓派上安装Arduino IDE,并使用DFRobot的Raspberry Pi Meet Arduino扩展板读取LM35温度传感器的数据。首先,通过命令行更新系统并安装Arduino IDE。接着,将pi用户添加到tty和dialout组以确保串口权限。然后,通过VNC登录树莓派界面,打开Arduino IDE,选择Arduino Leonardo板,下载Blink测试程序。接下来,安装Python-serial模块,并将LM35温度传感器连接到扩展板上的A1端口。编写代码读取LM35的模拟电压输出,并通过USB串口发送到树莓派。最后,在树莓派上运行Python脚本,显示温度数据。
树莓派 如果用作电子项目开发,它的GPIO接口欠缺ADC输入无法读取到模拟量,它也没有PWM接口可以用来控制电机的转速。
我们可以使用 DFRobot 出品的 Raspberry Pi Meet Arduino 扩展板 ,这个扩展板不仅将树莓派的所有GPIO和通信接口都引出来并做了电平转换和端口保护。
在 Raspberry Pi Meet Arduino 扩展板上还集成了Arduino leonardo 。通过Raspberry Pi Meet Arduino 扩展板 的USB口连接树莓派主板,即可实现通过安装在树莓派上的Arduino IDE
来对Raspberry Pi Meet Arduino 扩展板进行编程,同时通过USB口转出的串口进行通信。下面我们一步一步来实现 通过 Raspberry Pi Meet Arduino 扩展板的ADC接口读取一个LM35温度传感器,并将温度显示到树莓派终端的功能。

首先在树莓派上安装 Arduino
  1. root@raspberrypi:/home/pi# ap-get update
  2. root@raspberrypi:/home/pi# ap-get install arduino
复制代码

安装完成,在打开Arduino IDE 之前 你需要确认 pi 用户拥有权限操作串口,我们将pi用户添加到tty和dialout:
  1. root@raspberrypi:/home/pi# usermod -a -G tty pi
  2. root@raspberrypi:/home/pi# usermod -a -G dialout pi
复制代码

通过VNC 登录树莓派界面,打开Arduino IDE (此时启动IDE可能要10多秒,需要等等,不要重复点击IDE图标),选择 Arduino Leonardo 板,此时看到串口为 /dev/ttyACM0
我们下载一个Blink测试一下是否可以下载程序到Arduino
《边学边用树莓派-7》树莓派上安装Arduino IDE图1

接下来我们安装Python-serial模块

  1.     root@raspberrypi:/home/pi# apt-get install python-serial python3-serial
复制代码

将LM35温度传感器连接到Raspberry Pi Meet Arduino 扩展板上的A1端口


《边学边用树莓派-7》树莓派上安装Arduino IDE图2


我们在Raspberry Pi Meet Arduino 扩展板上编写一个读取LM35模拟电压输出的温度值,然后通过USB串口发到树莓派上面
  1. // to the pins used:
  2. const int analogInPin = A1;  // Analog input pin that the potentiometer is attached to
  3. int sensorValue = 0;        // value read from the pot
  4. void setup()
  5. {
  6.   // initialize serial communications at 9600 bps:
  7.   Serial.begin(9600);
  8. }
  9. void loop()
  10. {
  11.   sensorValue = analogRead(analogInPin);
  12.   Serial.println(sensorValue,DEC);   
  13.   delay(200);                     
  14. }
复制代码

在树莓派建立一个 LM35Print.py 的文件
Arduino 采集板10比特的ADC参考电压是5V,LM35温度传感器输出电压每0.01V代表1摄氏度,那么温度计算公式为: (ADC采集数值*5/1024) /0.01
  1. import serial
  2. import time
  3. port = "/dev/ttyACM0"
  4. serialFromArduino = serial.Serial(port,9600)
  5. serialFromArduino.flushInput()
  6. while True:
  7.     if(serialFromArduino.inWaiting() > 0):
  8.             input = serialFromArduino.readline()
  9.             inputAsInterger = int(input)
  10.             print("Temperature: " + str(inputAsInterger*5/10.24))
  11.     time.sleep(0.01)
复制代码

运行 LM35Print.py  得到温度数据
  1. root@raspberrypi:/home/pi# python LM35Print.py
  2. Temperature: 28.3203125
  3. Temperature: 28.3203125
  4. Temperature: 28.3203125
  5. Temperature: 28.80859375
复制代码

创作许可协议

本项目采用 None(不开放任何权利,保留所有权利) 进行许可。

评论(0)
- 没有更多了 -