Denken Sie daran, wie es war
der RoboterStaubsauger "Kybernetik" im Buch von N.N. Nosova "Keine Ahnung in der Solarstadt"? Musste er daran erinnert werden, dass es Zeit war, sich an die Arbeit zu machen? Nun, als solche Geräte Realität geworden sind, stellte sich heraus, dass es notwendig ist. Nehmen Sie die Fernbedienung und drücken Sie die Taste. Der Held von Pachkuls Werk Pestrenky hätte dies sicherlich bemerkt: "Was für eine Automatisierung ist das, wenn Sie einen Knopf drücken müssen, wenn er es nur ohne Knöpfe hätte." Das dachte auch der Autor von Instructables unter dem Spitznamen ShaperG. Und tat es
mit seinen eigenen Händen Gerät zum planmäßigen Starten eines Roboterstaubsaugers.
Hausgemacht besteht aus einem mechanischen Timer zum Einschalten verschiedener Elektrogeräte nach einem Zeitplan (Ikea oder einem anderen), einer Stromversorgung,
Arduino, Steckbrett-Steckbrett und Dupont-Jumper (optional, Sie können alles durch Löten anschließen), zwei LEDs - sichtbares Leuchten und Infrarot, zwei 330-Ohm-Widerstände, Sparkfun-Gehäuse oder andere.
Nachdem der Assistent alle erforderlichen Komponenten aufgenommen hat, erstellt er ein Diagramm. Und wieder im Fritzing-ähnlichen Programm, in diesem Fall in der Online-Bewerbung von Mekanizmalar. Nicht jeder mag diese Art der Erstellung von Diagrammen, aber es ist verständlich, wie man alles verbindet.
Nachdem der Assistent das Schema festgelegt hat, beginnt er mit der Programmierung:
Nimmt eine Bibliothek
hierund die Skizze ist
hier. Vereinfacht die Skizze so, dass beim Einschalten kontinuierlich alle fünf Sekunden ein Reinigungsbefehl gesendet wird. Die Skizze muss fertiggestellt werden, wenn
das Modell Der Staubsauger unterscheidet sich vom iRobot Roomba 530. Nun, der Meister stellt Folgendes fest:
#include
/ *
Super einfacher Arduino Powerd Roomba Scheduler
2013-08-03 Instructables-Version
Code angepasst von: https://gist.github.com/probonopd/5181021
Senden Sie Infrarotbefehle vom Arduino an den iRobot Roomba
von probono
2013-03-17 Erstveröffentlichung
Copyright (c) 2013 von probono
Alle Rechte vorbehalten.
Weiterverteilung und Verwendung in Quell- und Binärform mit oder ohne
Änderungen sind zulässig, sofern folgende Bedingungen erfüllt sind:
1. Bei der Weiterverteilung des Quellcodes muss der oben genannte Copyright-Hinweis beibehalten werden
Liste der Bedingungen und der folgende Haftungsausschluss.
2. Weiterverteilungen in binärer Form müssen den oben genannten Copyright-Hinweis wiedergeben.
Diese Liste der Bedingungen und der folgende Haftungsausschluss in der Dokumentation
und / oder andere mit der Verteilung gelieferte Materialien.
DIESE SOFTWARE WIRD VON DEN COPYRIGHT-INHABERN UND BEITRÄGERN "WIE BESEHEN" UND ZUR VERFÜGUNG GESTELLT
JEGLICHE AUSDRÜCKLICHE ODER STILLSCHWEIGENDE GEWÄHRLEISTUNGEN, EINSCHLIESSLICH, ABER NICHT BESCHRÄNKT AUF DIE STILLSCHWEIGENDEN
GEWÄHRLEISTUNGEN FÜR MARKTGÄNGIGKEIT UND EIGNUNG FÜR EINEN BESTIMMTEN ZWECK SIND
HAFTUNGSAUSSCHLUSS. IN KEINEM FALL HAFTET DER COPYRIGHT-EIGENTÜMER ODER DIE BEITRÄGE
JEGLICHE DIREKTE, INDIREKTE, NEBEN-, BESONDERE, BEISPIELHAFTE ODER FOLGESCHÄDEN
(EINSCHLIESSLICH, ABER NICHT BESCHRÄNKT AUF DIE BESCHAFFUNG VON ERSATZWAREN ODER -DIENSTLEISTUNGEN;
NUTZUNGSVERLUST, DATEN ODER GEWINNE; ODER UNTERBRECHUNG DES GESCHÄFTS) JEDOCH UND
ÜBER JEGLICHE HAFTUNGSTHEORIE, OB VERTRAG, STRENGE HAFTUNG ODER TORT
(EINSCHLIESSLICH NEGLIGENZ ODER ANDERWEITIG) ENTSTEHEN IN JEDER WEISE AUS DER VERWENDUNG DIESES
SOFTWARE, AUCH WENN AUF DIE MÖGLICHKEIT SOLCHER SCHÄDEN hingewiesen wird.
* /
IRsend irsend; // fest verdrahtet mit Pin 3; Verwenden Sie einen Transistor, um die IR-LED für maximale Reichweite anzusteuern
int LED = 10;
void setup ()
{
Serial.begin (9600);
PinMode (LED, OUTPUT);
digitalWrite (LED, HIGH); // LED einschalten (HIGH ist der Spannungspegel)
}}
void loop ()
{
roomba_send (136); // "Clean" senden
Verzögerung (5000); // 5 Sekunden warten
}}
void roomba_send (int code)
{
Serial.print ("Senden des Roomba-Codes");
Serial.print (Code);
int Länge = 8;
unsigned int raw [Länge * 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 ("");
für (int counter = length-1; counter> = 0; --counter) {
if (Code & (1 << Zähler)) {
// Serial.print ("1");
raw [Arrayposition] = one_pulse;
raw [Arrayposition + 1] = one_break;
}}
sonst {
// Serial.print ("0");
raw [arrayposition] = zero_pulse;
raw [Arrayposition + 1] = zero_break;
}}
Arrayposition = Arrayposition + 2;
}}
für (int i = 0; i <3; i ++) {
irsend.sendRaw (raw, 15, 38);
Verzögerung (50);
}}
Serial.println ("");
Serial.print ("Raw Timings:");
für (int z = 0; z
Zunächst überprüft der Assistent die Funktion der Skizze, um die serielle Schnittstelle an den Monitor auszugeben. Dann legt es alles in den Koffer und versorgt den Arduino nicht über den Computer, sondern über die Stromversorgung, die über einen mechanischen Timer eingeschaltet wird.
Nachdem Sie das Gerät in der Nähe der Ladestation platziert haben, zu der der Roboterstaubsauger immer zurückkehrt, können Sie den Faltplan für den mechanischen Timer festlegen, um es zu starten. Das Beste von allem - einmal am Tag. Nur nicht nachts, wie in der Arbeit von N.N. Nosova.