Husk, hvordan det var
robotenstøvsuger "Cybernetics" i bogen af N.N. Nosova "Dunno i solbyen"? Skal han mindes om, at det var tid til at komme på arbejde? Når sådanne enheder nu er blevet en realitet, viste det sig, at det er nødvendigt. Tag fjernbetjeningen, og tryk på knappen på den. Helten fra Pachkul's arbejde Pestrenky, efter at have set dette, ville helt sikkert have bemærket: "Hvilken slags automatik er dette, hvis du skal trykke på en knap, hvis han bare ville være uden knapper." Forfatteren af Instructables under kaldenavnet ShaperG mente også det. Og gjorde det
gør det selv enhed til at starte en robotstøvsuger på en tidsplan.
hjemmelavet produkt består af en mekanisk timer til at tænde for forskellige elektriske apparater i henhold til en tidsplan (Ikea eller andet), en strømforsyning,
Arduino, brødbræt type brættebræt og dupont jumpere (valgfrit, du kan tilslutte alt ved lodning), to lysdioder - synlig glød og infrarød, to 330 Ohm-modstande, Sparkfun-hus eller andet.
Efter at have samlet alle de nødvendige komponenter, udarbejder guiden et diagram. Og igen i det Fritzing-lignende program, i dette tilfælde i Mekanizmalar online-applikationen. Ikke alle kan lide denne måde at tegne diagrammer på, men hvordan man forbinder alt er forståeligt.
Efter at have besluttet ordningen starter guiden programmering:
Tager et bibliotek
herog skitsen er
her. Forenkler skitsen, så når den er tændt, sender den kontinuerligt en "ren" kommando hvert femte sekund. Skitsen skal afsluttes, hvis
modellen støvsugeren adskiller sig fra iRobot Roomba 530. Nå, master viser sig dette:
#include
/ *
Super Simple Arduino Powerd Roomba Scheduler
2013-08-03 Udgivelse af instruktører
Kode tilpasset fra: https://gist.github.com/probonopd/5181021
Send infrarøde kommandoer fra Arduino til iRobot Roomba
af probono
2013-03-17 Første udgivelse
Copyright (c) 2013 af probono
Alle rettigheder forbeholdes.
Omfordeling og brug i kilde og binære former, med eller uden
ændring er tilladt, forudsat at følgende betingelser er opfyldt:
1. Omfordelinger af kildekoden skal bevare ovenstående ophavsret, dette
liste over betingelser og følgende ansvarsfraskrivelse.
2. Omfordelinger i binær form skal gengive ovenstående copyright-meddelelse,
denne liste over betingelser og følgende ansvarsfraskrivelse i dokumentationen
og / eller andre materialer, der leveres med distributionen.
DENNE SOFTWARE LEVERES AF COPYRIGHT Indehaverne og bidragyderne "SOM ER" OG
NOGEN UDTRYKKELIGE ELLER IMPLICEREDE GARANTIER, INKLUDERENDE, MEN IKKE BEGRÆNSET TIL, DE IMPLICEREDE
GARANTIER FOR SALGBARHED OG EGNETHED TIL ET SÆRLIGT FORMÅL ER
FRASKRIVES. Under ingen omstændigheder SKAL KOPYRETS EJER ELLER BIDRAGTER BETAFFES ANSVAR FOR
EVENTUELLE DIREKTE, INDIREKTE, HÆNDELIGE, SÆRLIGE, EKSEMPLERENDE ELLER FØLGENDE SKADER
(INKLUDERENDE, MEN IKKE BEGRÆNSET TIL, INDKØBELSE AF SUBSTITUTVARER ELLER TJENESTER;
Tab af brug, data eller fortjeneste; ELLER FORRETNING AF FORRETNINGSLIV) UDVIKLIG FORSIGTIG OG
PÅ NOGEN TEORI OM ANSVAR, UDEN I KONTRAKT, STRENGT ANSVAR ELLER TORT
(INKLUDERENDE NÆGLIGHED ELLER ANDET) OPSTÅENDE PÅ NOGEN MÅDE UD ANVENDELSE AF DETTE
SOFTWARE, SELV OM HVIS RÅDGIVET OM MÅLSKABET FOR SUKKELIGE SKADER.
* /
IRsend irsend; // hardwired til pin 3; Brug en transistor til at drive IR LED for maksimal rækkevidde
int LED = 10;
ugyldig opsætning ()
{
Serial.begin (9600);
pinMode (LED, OUTPUT);
digitalWrite (LED, HØJ); // tænd for LED'en (HØJ er spændingsniveauet)
}
void loop ()
{
roomba_send (136); // Send "Ren"
forsinkelse (5000); // Vent 5 sekunder
}
void roomba_send (int-kode)
{
Serial.print ("Afsendelse af Roomba-kode");
Serial.print (kode);
int længde = 8;
usigneret int rå [længde * 2];
usigneret int one_pulse = 3000;
usigneret int one_break = 1000;
usigneret int zero_pulse = one_break;
usigneret int zero_break = one_pulse;
int arrayposition = 0;
// Serial.println ("");
for (int-tæller = længde-1; tæller> = 0; - tæller) {
if (kode & (1 << tæller)) {
// Serial.print ("1");
raw [arrayposition] = one_puls;
rå [arrayposition + 1] = one_break;
}
ellers {
// Serial.print ("0");
raw [arrayposition] = zero_pulse;
rå [arrayposition + 1] = zero_break;
}
arrayposition = arrayposition + 2;
}
for (int i = 0; i <3; i ++) {
irsend.sendRaw (rå, 15, 38);
forsinkelse (50);
}
Serial.println ("");
Serial.print ("Raw timings:");
for (int z = 0; z
Oprindeligt kontrollerer guiden driften af skitsen for at udlæse den serielle port til skærmen. Derefter sætter det alt i sagen og forsyner Arduino ikke fra en computer, men fra en strømforsyning tilsluttet via en mekanisk timer.
Ved at placere enheden i nærheden af ladestationen, som robotstøvsugeren altid vender tilbage til, kan du indstille foldeplanen for den mekaniske timer for at starte den. Bedst af alt - en gang om dagen. Kun ikke om natten, som i N.N.'s arbejde. Nosov.