Difference between revisions of "Premiers Pas avec Raspberry Pi et Arduino"
Jump to navigation
Jump to search
Line 3: | Line 3: | ||
− | Interfacer le [[Raspberry Pi]] et une carte [[Arduino]] peut être utile pour de nombreux projets ([[ |
+ | Interfacer le [[Raspberry Pi]] et une carte [[Arduino]] peut être utile pour de nombreux projets ([[PM2M]], [[RobAIR|Robotique]], ...). |
Latest revision as of 08:14, 10 March 2014
Interfacer le Raspberry Pi et une carte Arduino peut être utile pour de nombreux projets (PM2M, Robotique, ...).
- Via USB : http://blog.oscarliang.net/connect-raspberry-pi-and-arduino-usb-cable/
- Via GPIO : http://blog.oscarliang.net/raspberry-pi-and-arduino-connected-serial-gpio/
Read http://playground.arduino.cc/Interfacing/Python
Install pySerial
sudo apt-get install python-serial
Check the Arduino tty port
ls /dev/tty*
Download the following sketch on the Arduino board (using the Arduino IDE)
void setup() { Serial.begin(9600); } void loop() { int sensorValue = analogRead(A0); Serial.println(sensorValue); delay(1000); }
Run the following python script
import serial ser = serial.Serial('/dev/ttyACM0', 9600) while True : print ser.readline()
More test
Download the following sketch on the Arduino board (using the Arduino IDE)
// from http://blog.oscarliang.net/connect-raspberry-pi-and-arduino-usb-cable/ const int ledPin = 13; void setup(){ pinMode(ledPin, OUTPUT); Serial.begin(9600); } void loop(){ if (Serial.available()) { light(Serial.read() - '0'); } delay(500); } void light(int n){ for (int i = 0; i < n; i++) { digitalWrite(ledPin, HIGH); delay(100); digitalWrite(ledPin, LOW); delay(100); } }
Run the following python script
import serial ser = serial.Serial('/dev/ttyACM0', 9600) ser.write('10')
More with Firmata : https://github.com/lupeke/python-firmata/
Download the firmata sketch on the Arduino board (using the Arduino IDE > Examples > Firmata > StandardFirmata)
Run the following python script
from firmata import * a = Arduino('/dev/ttyACM0') a.pin_mode(13, firmata.OUTPUT) a.delay(2) while True: a.digital_write(13, firmata.HIGH) a.delay(2) a.digital_write(13, firmata.LOW) a.delay(2)