ScratchRobot
Versione del 25 lug 2013 alle 15:43 di Eineki (discussione | contributi) (Script per la comunicazione tra scratch e arduino via python)
Due righe e qualche pezzo di codice da riorganizzare:
La parte arduino sta semplicemente in attesa di un comando sulla seriale e, in caso lo riconosca esegue le istruzioni associate.
/*
Python interface via usb serial
Language: Wiring/Arduino
Il programma si mette in attesa di un input sulla seriale
ed agisce a seconda dell'input ricevuto.
This example code is in the public domain.
*/
int led = 13; // first analog sensor
int inByte = 0; // incoming serial byte
void setup()
{
// initialize the digital pin as an output.
pinMode(led, OUTPUT);
// start serial port at 9600 bps:
Serial.begin(9600);
while (!Serial) {
; // wait for serial port to connect. Needed for Leonardo only
}
// establishContact(); // send a byte to establish contact until receiver responds
}
void loop()
{
// if we get a valid byte, read analog ins:
if (Serial.available() > 0) {
// get incoming byte:
inByte = Serial.read();
if ((char) inByte=='n') { // oN
digitalWrite(led, HIGH); // turn the LED on (HIGH is the voltage level)
} else if ((char) inByte=='f') { // ofF
digitalWrite(led, LOW); // turn the LED off
} else { // default:
Serial.print(inByte); // send back the unrecognized command to the sender
}
}
}
La controparte python invece si attacca ad una istanza scratch e fa da ponte/interprete dei comandi verso arduino. 'Nota: ' Se arduino è collegato via usb alla macchina host quando Scratch va in modalità server scratch sembra inviare direttamente i comandi anche a lui (penso che in realta cerchi un handshake senza successo) e python non riesce più ad interfacciardi ad arduino.