Chose promise, chose due ...
Je viens de faire mes premiers pas avec un Arduino. Pour les curieux voici la page de lien:
Je l'ai eu à prêter mais ça coûte à partir de 25€ ex:
Ci dessous la méthode pas à pas. Le résultat (pas encore très brillant, mais c'est un POC):
Lorsque je tourne l'oreille gauche du Karotz, la led de l'Arduino s'eteind.
Lorsque je tourne l'oreille droite du Karotz, la led de l'Arduino s'allume.
Ma conclusion: c'est vraiement simple de faire fonctionner les deux ensemble.
En moins de 2 heures, n'y connaissant rien, j'ai fait fonctionner un POC.
Pour cela:
Sur l'Arduino, je connecte une led sur la pin 13, comme sur l'exemple ici: (15s)
Je branche l'Arduino sur mon PC avec le cable USB, et je lui injecte le code suivant:
(avec l'install du soft, des drivers de l'arduino ... 10mn).
String inputString = ""; // a string to hold incoming data
boolean stringComplete = false; // whether the string is complete
void setup() {
// initialize serial
Serial.begin(9600);
// reserve 200 bytes for the inputString:
inputString.reserve(200);
// initialize the digital pin as an output.
// Pin 13 has an LED connected on most Arduino boards:
pinMode(13, OUTPUT);
}
void loop() {
}
void serialEvent() {
while (Serial.available()) {
// get the new byte:
char inChar = (char)Serial.read();
// add it to the inputString:
if (inChar=='A') {
//Allume la diode
digitalWrite(13, HIGH);
Serial.write("Oreille Droite");
}
if (inChar =='B') {
//Eteind la diode
digitalWrite(13,LOW);
Serial.write("Oreille Gauche");
}
}
}
Ensuite je crée une appli pour le Karotz et je la publie sur l'Appz (avec les droits ears, button, serial)
(un bon 5mn encore).
var BLACK ="000000";
var BLUE ="0000FF";
var CYAN ="00FF9F";
var GREEN ="00FF00";
var ORANGE ="FFA500";
var PINK ="FFCFAF";
var PURPLE ="9F00FF";
var RED ="FF0000";
var YELLOW ="75FF00";
var WHITE ="4FFF68";
karotz.connectAndStart = function(host, port, callback, data) {
try {
karotz.connect(host, port);
karotz.start(callback, data);
} catch(err) { //httplog(err); }
}
}
var buttonListener = function(event) {
if ((event=='SIMPLE') || (event=='DOUBLE')) {
exit();
}
}
var earsListener = function(event,step,length) {
if (event.indexOf("START_LEFT") >= 0) {
karotz.serial.write("A");
}
if (event.indexOf("START_RIGHT") >= 0) {
karotz.serial.write("B");
}
return true;
}
var seriallist=function(data) {
karotz.led.light(BLUE);
return(true);
}
var onKarotzConnect = function(data) {
karotz.serial.open("/dev/ttyUSB0",9600);
karotz.serial.addListener(seriallist);
karotz.button.addListener(buttonListener);
karotz.ears.addListener(earsListener);
}
var karotz_ip = 'localhost';
karotz.connectAndStart(karotz_ip, 9123, onKarotzConnect, {});
Enfin je redémarre le Karotz avec l'Arduino branché à la place de la clé USB.
Petit hic pour l'instant, le serial listener n'a pas l'air de fonctionner .. a suivre ! (merci aux dev karotz de donner l'astuce si possible).
Vous l'avez compris, il suffit ensuite de remplacer les oreilles par des commandes vocales, la sortie LED par deux sorties moteurs, et on doit assez facilement arriver à ballader notre brave Karotz (deux batteries à rajouter dans la liste de course, une pour Karotz, l'autre pour l'Arduino).