Stap 3: Arduino Script
Moet u een computer met de Arduino IDE geïnstalleerd (ik heb gebruikte Arduino 1.05)
Installeer vervolgens de IR-bibliotheek uit (instructies op de site) Dit is nodig voor het uitvoeren van het script.
https://github.com/Shirriff/Arduino-IRremote
Ik heb gewijzigd (dat wil zeggen ontdaan het terug) het script ontwikkeld door probono beschikbaar vanaf https://gist.github.com/probonopd/5181021. Het veel meer gedetailleerd dan het script die ik heb gebruikt. Met het, kunt u elke opdracht Roomba via de arduino. Absoluut waard het vertrekken!
Kortom, alle het script die ik hieronder doet geplakt heb is:
-Wanneer de stroom wordt ingeschakeld.
-Arduino is geïnitialiseerd, rode LED voor verhuren u weet is ingeschakeld.
-Begint het verzenden van de opdracht van de "Schone" (136) herhaaldelijk met een vertraging van 5 seconden tussen elke verzending.
-Niet stoppen tot de stroomstoring is!
Hieronder is het script... Uploaden naar de Raad van bestuur als normaal.
Als u geïnteresseerd bent, kunt u het openen van de seriële monitor (9600) en de output van de Arduino zien, alleen het verzenden van de opdracht "Clean" op herhaalt.
#include < IRremote.h >
/*
Super eenvoudig Arduino Powerd Roomba Scheduler
door gowell2010
2013-08-03 Instructables vrijgeven
Code aangepast van: https://gist.github.com/probonopd/5181021
Infrarood opdrachten verzenden van de Arduino aan de iRobot Roomba
door probono
2013-03-17 initial release
Copyright (c) 2013 door probono
Alle rechten voorbehouden.
Herdistributie en gebruik in bron- en binaire vorm, met of zonder
wijziging, zijn toegestaan mits de volgende voorwaarden wordt voldaan:
1. de verspreiding van broncode moeten de bovenstaande auteursrechtkennisgeving, behouden dit
lijst met voorwaarden en de volgende disclaimer worden gereproduceerd.
2. verspreiding in binaire vorm moeten de bovenstaande auteursrechtkennisgeving, reproduceren
deze lijst met voorwaarden en de volgende disclaimer worden gereproduceerd in de documentatie
en/of andere materialen die bij de verspreiding worden geleverd.
DEZE SOFTWARE WORDT GELEVERD DOOR DE AUTEURSRECHTHOUDERS EN BIJDRAGERS 'AS IS' EN
ELKE UITDRUKKELIJKE OF CONCLUDENTE GARANTIE, MET INBEGRIP VAN, MAAR NIET BEPERKT TOT, DE IMPLICIETE
GARANTIES VAN VERKOOPBAARHEID EN GESCHIKTHEID VOOR EEN BEPAALD DOEL ZIJN
VAN DE HAND GEWEZEN. IN GEEN GEVAL IS DE COPYRIGHT EIGENAAR OF BIJDRAGERS AANSPRAKELIJK VOOR
EVENTUELE DIRECTE, INDIRECTE, INCIDENTELE, SPECIALE, EXEMPLARISCHE OF GEVOLGSCHADE SCHADE
(INCLUSIEF, MAAR NIET BEPERKT TOT AANSCHAF VAN VERVANGENDE GOEDEREN OF SERVICES;
VERLIES VAN GEBRUIK, GEGEVENS OF WINSTDERVING; OF ONDERBREKING VAN DE BEDRIJFSVOERING) NOCHTANS VEROORZAAKT EN
OP WELKE AANSPRAKELIJKHEIDSTHEORIE, HETZIJ IN CONTRACT, STRIKTE AANSPRAKELIJKHEID OF ONRECHTMATIGE DAAD
(MET INBEGRIP VAN NALATIGHEID OF ANDERSZINS) DIE VOORTVLOEIEN UIT HET GEBRUIK VAN DIT GEENSZINS
SOFTWARE, ZELFS ALS GEADVISEERD VAN DE MOGELIJKHEID VAN DERGELIJKE SCHADE.
*/
IRsend irsend; Hardwired aan op pin 3; Gebruik een transistor te rijden van de IR-LED voor maximale bereik
int LED = 10;
VOID Setup
{
Serial.begin(9600);
pinMode (LED, uitvoer);
digitalWrite (LED, hoge); de LED inschakelen (HIGH is het spanningsniveau)
}
void loop
{
roomba_send(136); Verzenden "Schoon"
delay(5000); Wacht 5 seconden
}
VOID roomba_send(int code)
{
Serial.Print ("verzenden Roomba code");
Serial.Print(code);
int lengte = 8;
unsigned int raw [lengte * 2];
unsigned int one_pulse = 3000;
unsigned int one_break = 1000;
unsigned int zero_pulse = one_break;
unsigned int zero_break = one_pulse;
int arrayposition = 0;
Serial.println("");
voor (int teller = lengte-1; teller > = 0;--teller) {}
Als (code & (1 << teller)) {}
Serial.Print("1");
RAW [arrayposition] = one_pulse;
RAW [arrayposition + 1] = one_break;
}
else {}
Serial.Print("0");
RAW [arrayposition] = zero_pulse;
RAW [arrayposition + 1] = zero_break;
}
arrayposition = arrayposition + 2;
}
for (int i = 0; ik < 3; i ++) {}
irsend.sendRaw (rauw, 15, 38);
delay(50);
}
Serial.println("");
Serial.Print ("Raw tijdsinstellingen:");
voor (int z = 0; z < lengte * 2; z ++) {}
Serial.Print("");
Serial.Print(RAW[z]);
}
Serial.Print("\n\n");
}