Sjetite se kako je to bilo
robotusisavač "Kibernetika" u knjizi N.N. Nosova "Dunno u sunčevom gradu"? Je li ga trebao podsjetiti da je došlo vrijeme da se zaposli? Sada, kada su takvi uređaji postali stvarnost, ispostavilo se da je potrebno. Uzmite daljinski upravljač i pritisnite gumb na njemu. Heroj Pachkulinog djela Pestrenky, vidjevši to, sigurno bi primijetio: "Kakva je to automatika, ako moraš pritisnuti gumb, kad bi samo on bio bez gumba." Autor Instructables pod nadimkom ShaperG također je tako mislio. I jeste
učinite to sami uređaj za pokretanje robotskog usisavača po rasporedu.
domaći proizvod sastoji se od mehaničkog vremena za uključivanje različitih električnih uređaja prema rasporedu (Ikea ili bilo koji drugi), napajanja,
Težak, skakači za šporet ploče i dupontovi skakači (opcija, sve možete spojiti lemljenjem), dvije LED - vidljivi sjaj i infracrveno, dva otpornika od 330 Ohm, kućište Sparkfun ili bilo koje druge.
Nakon što je pokupio sve potrebne komponente, čarobnjak sastavlja dijagram. I opet u programu sličnom Fritzingu, u ovom slučaju u internetskoj aplikaciji Mekanizmalar. Ne sviđa se svima ovaj način izrade dijagrama, ali kako je sve povezati je razumljivo.
Odlučivši se za shemu, čarobnjak započinje s programiranjem:
Uzima knjižnicu
ovdjea skica je
ovdje, Pojednostavljuje skicu tako da kad je napajanje uključeno, neprekidno šalje naredbu "čisto" svakih pet sekundi. Skica će se morati dovršiti ako postoji
model usisivač se razlikuje od iRobot Roomba 530. Eto, majstor ispada:
#include
/ *
Super jednostavan Arduino moćan sobni planer
2013-08-03 izdanje instruktivnih
Kôd je prilagođen: https://gist.github.com/probonopd/5181021
Pošaljite infracrvene naredbe iz Arduinoa na iRobot Roomba
od probono
17.03.2013. Početno izdanje
Autorska prava (c) 2013 od strane probono-a
Sva prava zadržana.
Preraspodjela i upotreba u izvornom i binarnom obliku, sa ili bez
izmjene su dopuštene pod uvjetom da su ispunjeni sljedeći uvjeti:
1. Redistribucija izvornog koda mora sadržavati gornju obavijest o autorskim pravima, ovo
popis uvjeta i sljedeće odricanje od odgovornosti.
2. Redistribucije u binarnom obliku moraju sadržavati gornju obavijest o autorskim pravima,
ovaj popis uvjeta i sljedeće odricanje od odgovornosti u dokumentaciji
i / ili drugih materijala dobivenih s distribucijom.
OVAJ SOFTVER pružaju vlasnici i autori prava autorskog prava "KAO ŠTO" I
BILO KOJE IZRAŽENE ILI IMPLICIRANE GARANCIJE, UKLJUČUJUĆE, ALI NISU OGRANIČENE NA
JAMSTVA PRODAVLJIVOSTI I PRIKLADNOSTI ZA DIJELOVNI CILJ
ODRIČU. NIKADA NE DOSTAVLJAJU Vlasnik autorskog prava ili dobavljači neće biti odgovorni
BILO KOJE NEPOSREDNO, POSREDNO, NESREĆNO, POSEBNO, PRIMJERENO ILI POSLJEDIČNE ŠTETE
(UKLJUČUJUĆI, ALI BEZ OGRANIČENE NA NABAVKU SUBSTITUTNIH ROBA ILI USLUGA;
GUBITAK KORIŠTENJA, PODATAKA ILI DOBITA; ILI UPOZNAVANJE POSLOVA) KAKO SU UZROKOVALI I
O BILO KOJOJ TEORIJI ODGOVORNOSTI, UZ UGOVORA, STRIKO ODGOVORNOST ILI TORT
(UKLJUČUJUĆI NJEGOVOST ILI DRUGO) DOSTOJI NA BILO KOJI NAČIN UPOTREBE OVOG
SOFTVER, DALJE AKO SE OBAVIJESTI O MOGUĆNOSTI TAKVA ŠTETE.
* /
IRsend irsend; // hardwired na pin 3; Koristite tranzistor za pogon IR LED-a za maksimalan domet
int LED = 10;
postavljanje praznine ()
{
Serijski počet (9600);
pinMode (LED, IZLAZ);
digitalWrite (LED, VISOKO); // uključite LED (HIGH je razina napona)
}
void petlja ()
{
roomba_send (136); // Pošaljite "Čisti"
kašnjenje (5000); // Pričekajte 5 sekundi
}
void roomba_send (int kod)
{
Serial.print ("Slanje koda Roomba");
Serijski.print (kod);
int duljina = 8;
nepotpisani int sirov [dužina * 2];
nepotpisani int one_pulse = 3000;
nepotpisani int one_break = 1000;
unsigned int zero_pulse = one_break;
nepotpisani int zero_break = one_pulse;
int niz podataka = 0;
// Serial.println ("");
za (int brojač = dužina-1; brojač> = 0; - račun) {
if (kod & (1 << brojač)) {
// Serijski.print ("1");
sirovi [niz podataka] = one_pulse;
sirovi [niz + 1] = one_break;
}
drugo {
// Serijski.print ("0");
sirovi [niz podataka] = zero_pulse;
sirovi [niz + 1] = zero_break;
}
niz: = niz + 2;
}
za (int i = 0; i <3; i ++) {
irsend.sendRaw (sirovo, 15, 38);
kašnjenje (50);
}
Serial.println ("");
Serial.print ("Neobrađene vremena:");
za (int z = 0; z
U početku čarobnjak provjerava rad skice za izlaz serijskog porta na monitor. Zatim postavlja sve u slučaj i napaja Arduino ne iz računala, nego iz napajanja uključenog preko mehaničkog časovnika.
Sada, postavljajući uređaj u blizinu stanice za punjenje, na koju se robotski usisavač uvijek vraća, možete postaviti raspored preklapanja da bi ga mehanički timer mogao pokrenuti. Najbolje od svega - jednom dnevno. Samo ne noću, kao u djelu N.N. Nosov.