Raspberry e Arduino via Seriale - Raspberry Pi Forums
salve tutti!
sto cercando di costruire una macchina radiocomandata utilizzando il raspy, arduino uno, arduino motor shield e un controller xbox 360..
per fare ciò ho pensato di collegare il controller (wirless) al raspy, il quale una volta ricevuto il segnale manda un valore all'arduino tramite seriale (l'usb che collega due dispositivi) che aziona motori.. il problema è che non capisco perchè il segnale non arrivi all'arduino.. sapreste dirmi dove sto sbagliando?
python su raspberry: per quanto riguarda arduino: il problema non è la lettura dei comandi provenienti dal controller (libreria ed esempio preso qui https://github.com/zephod/lego-pi) ma proprio la comunicazione tra due dispositivi..
sto cercando di costruire una macchina radiocomandata utilizzando il raspy, arduino uno, arduino motor shield e un controller xbox 360..
per fare ciò ho pensato di collegare il controller (wirless) al raspy, il quale una volta ricevuto il segnale manda un valore all'arduino tramite seriale (l'usb che collega due dispositivi) che aziona motori.. il problema è che non capisco perchè il segnale non arrivi all'arduino.. sapreste dirmi dove sto sbagliando?
python su raspberry:
code: select all
#!/usr/bin/python lib import xbox_read import serial ser = serial.serial('/dev/ttyacm0', 9600) while 1: event in xbox_read.event_stream(deadzone=12000): if event.key=='rt': rt=event.value if rt>0 : ser.write(rt) else : ser.write(0) if event.key=='lt': lt=event.value if lt>0 : ser.write(lt) else : ser.write(0) if event.key=='x1': d=event.value if d>0: ser.write(300) if d<0: ser.write(-300)
code: select all
#include <afmotor.h> #include <servo.h> af_dcmotor motor(2); servo servo1; int val; int b; int inizio = 45; void setup() { motor.setspeed(0); motor.run(forward); servo1.attach(9); servo1.write(inizio); serial.begin(9600); } void loop() { val=serial.read(); if(val>0 && val!=300) { motor.run(forward); motor.setspeed(val); } if(val==0) { motor.setspeed(0); servo1.write(inizio); } if(val<0 && val!=-300) { motor.run(backward); b=abs(val); motor.setspeed(b); } if(val==300) { servo1.write(90); } if(val==-300) { servo1.write(0); } }
raspberrypi
Comments
Post a Comment