Premiers Pas avec Raspberry Pi et Arduino: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
No edit summary |
||
| 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 06: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)