Bonjour à tous,
Afin de développer mes compétences en arduino et surtout en robotique, j'ai envie d'interfacé un script python d'une manette de PS2 à l'arduino.
Le problème c'est que je ne vois pas comment interfacé les deux parties
j'ai suivi ce tutoriel, http://www.stealthcopter.com/blog/2010/02/python-interfacing-with-an-arduino/ qui permet d'allumer une led par liaison série, puis de l'allumer avec un script python.
Voilà le code pour la liaison série de l'arduino:
int ledPin = 13; // choose the pin for the LED
int val = 0; // variable for reading the pin status
char msg = ' '; // variable to hold data from serial
void setup() {
pinMode(ledPin, OUTPUT); // declare LED as output
Serial.begin(9600);
Serial.print("Program Initiated\n");
}
void loop(){
// While data is sent over serial assign it to the msg
while (Serial.available()>0){
msg=Serial.read();
}
// Turn LED on/off if we recieve 'Y'/'N' over serial
if (msg=='Y') {
digitalWrite(ledPin, HIGH); // turn LED ON
Serial.print("LED Activated\n");
msg=' ';
} else if (msg=='N') {
digitalWrite(ledPin, LOW); // turn LED OFF
}
}
Ainsi que le code du script python:
import serial
import time
locations=['/dev/ttyUSB0','/dev/ttyUSB1','/dev/ttyUSB2','/dev/ttyUSB3',
'/dev/ttyS0','/dev/ttyS1','/dev/ttyS2','/dev/ttyS3']
for device in locations:
try:
print "Trying...",device
arduino = serial.Serial(device, 9600)
break
except:
print "Failed to connect on",device
try:
arduino.write('Y')
time.sleep(1)
print arduino.readline()
except:
print "Failed to send!"
Donc la led s'allume bien avec la liaison série d'arduino, mais ensuite, je ne vois vraiment pas comment utiliser le script python. J'ai installé pygame, "pyserial", mais ça ne m'avance pas plus.
Il ne faut pas installer un logiciel pour créer la liaison série pour le script?
Je suis sous windows et j'utilise notepad pour le script python.
Question en plus, est-ce qu'il y en a qui ont réussi à installer Eclipse sur windows, car moi je galère un peu après l'avoir paramétré plusieurs fois j'ai toujours une erreur à la fin.
Merci d'avance.