Amintiți-vă cum a fost
robotulaspirator „Cibernetica” din cartea lui N.N. Nosova „Dunno în Orașul Solar”? A trebuit să i se reamintească că a venit timpul să treacă la muncă? Acum, când astfel de dispozitive au devenit o realitate, s-a dovedit că este necesar. Luați telecomanda și apăsați butonul de pe ea. Eroul lucrării lui Pachkul, Pestrenky, văzând acest lucru, ar fi observat cu siguranță: „Ce fel de automatizare este aceasta, dacă trebuie să apăsați un buton, dacă numai el l-ar avea fără butoane”. Autorul Instructables sub porecla ShaperG a fost și el gândit. Și a făcut
fă-o singur dispozitiv pentru pornirea unui aspirator robot într-un program.
produs home-made constă dintr-un cronometru mecanic pentru a porni diferite aparate electrice într-un program (Ikea sau orice alt), o sursă de alimentare,
Arduino, panouri de tip panou și jumper-uri dupont (opțional, puteți conecta totul prin lipire), două LED-uri - strălucire vizibilă și infraroșu, două rezistențe de 330 Ohm, carcasă Sparkfun sau oricare altul.
După ce a ridicat toate componentele necesare, vrăjitorul întocmește o diagramă. Și din nou în programul similar Fritzing, în acest caz, în aplicația online Mekanizmalar. Nu tuturor le place acest mod de a întocmi diagrame, dar modul de conectare a tuturor este de înțeles.
După ce a decis schema, expertul începe programarea:
Pune o bibliotecă
aiciiar schița este
aici. Simplifică schița astfel încât atunci când este pornită, trimite continuu o comandă „curată” la fiecare cinci secunde. Schița va trebui finalizată dacă
modelul aspiratorul diferă de iRobot Roomba 530. Ei bine, maestrul se dovedește că:
#include
/ *
Programator Super Simple Arduino Powerd Roomba
2013-08-03 Release instructables
Cod adaptat de la: https://gist.github.com/probonopd/5181021
Trimiteți comenzi în infraroșu de la Arduino la iRobot Roomba
de probono
17-03-2013 Publicare inițială
Copyright (c) 2013 de către probono
Toate drepturile rezervate.
Redistribuire și utilizare în surse și forme binare, cu sau fără
modificările sunt permise cu condiția îndeplinirii următoarelor condiții:
1. Redistribuirile codului sursă trebuie să păstreze notificarea privind drepturile de autor menționate mai sus
lista condițiilor și următoarea exonerare.
(2) Redistribuirile în formă binară trebuie să reproducă notificarea de drepturi de autor menționată mai sus,
această listă de condiții și următoarea exonerare în documentație
și / sau alte materiale furnizate cu distribuția.
ACEST SOFTWARE ESTE FURNIZAT DE DEȚINĂTORII DE COPYRIGHT ȘI DE CONTRIBUITORI „ASTEA” ȘI
ORICE GARANȚII EXPRIME SAU IMPLICITE, INCLUS, DAR FĂRĂ LIMITAT LA, IMPLICITE
GARANȚIILE COMERCIALITĂȚII ȘI ALEGERITĂȚII PENTRU UN SCOP PARTICULAR SUNT
DECLINATE. FĂRĂ ÎN CAZ, NICIODATĂ, DREPTUL DE COPYRIGHT SAU CONTRIBUITORI NU ESTE RESPONSABILE
ORICE DAUNE DIRECTE, INDIRECTE, INCIDENTALE, SPECIALE, EXEMPLARE, SAU BAZĂ
(INCLUS, DAR NU LIMITAT, PROCURAREA MĂRFURILOR SAU A SERVICIILOR SUBSTITUTE;
Pierderile de utilizare, date sau profituri; SAU INTERRUPȚIA AFACERII) CUM SE CAUZĂ ȘI
DESPRE O ORICE TEORIE A RESPONSABILITĂȚII, DUPĂ CONTRACT, RESPONSABILITATE STRICTĂ SAU TORT
(INCLUS NEGLIGENȚĂ SAU ALTĂ) APĂRATE ÎN ORICE MOD DE UTILIZARE A ACESTUI
SOFTWARE, ÎN CAZ DACĂ ESTE AVIZAT DE POSIBILITATEA ACELOR DAUNE.
* /
IRsend irsend; // cu fir dur la pinul 3; folosiți un tranzistor pentru a conduce LED-ul IR pentru o autonomie maximă
LED int = 10;
void setup ()
{
Serial.begin (9600);
pinMode (LED, OUTPUT);
digitalWrite (LED, HIGH); // Porniți LED-ul (HIGH este nivelul de tensiune)
}
nul buclă ()
{
roomba_send (136); // Trimiteți „Curat”
întârziere (5000); // Așteptați 5 secunde
}
void roomba_send (cod int)
{
Serial.print ("Trimiterea codului Roomba");
Serial.print (cod);
lungime int = 8;
unsigned int raw [lungime * 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 ("");
for (int counter = lungime-1; contor> = 0; --counter) {
if (cod & (1 << contor)) {
// Serial.print ("1");
raw [arrayposition] = one_pulse;
raw [arrayposition + 1] = one_break;
}
altfel {
// Serial.print ("0");
raw [arrayposition] = zero_pulse;
raw [arrayposition + 1] = zero_break;
}
arrayposition = arrayposition + 2;
}
for (int i = 0; i <3; i ++) {
irsend.sendRaw (raw, 15, 38);
întârziere (50);
}
Serial.println ("");
Serial.print ("Cronometri brute:");
for (int z = 0; z
Inițial, expertul verifică funcționarea schiței pentru ieșirea portului serial pe monitor. Apoi pune totul în cutie și furnizează Arduino nu de la un computer, ci de la o sursă de alimentare conectată printr-un cronometru mecanic.
Acum, așezând dispozitivul în apropierea stației de încărcare, la care întoarce întotdeauna aspiratorul robot, puteți seta programul de pliere pentru ca cronometrul mecanic să îl pornească. Cel mai bun dintre toate - o dată pe zi. Doar nu noaptea, ca în lucrarea lui N.N. Nosov.