Emlékezz, milyen volt
a robotporszívó "Kibernetika" az N.N. könyvében Nosova "Dunno a napenergia városban"? Emlékeztetnie kellett-e arra, hogy ideje volt dolgozni? Most, amikor ezek az eszközök valósággá váltak, kiderült, hogy szükséges. Vegye ki a távirányítót, és nyomja meg a rajta levő gombot. Pachkul munkájának hős Pestrenky, ezt látva, biztosan észrevette volna: "Milyen automatizálás ez, ha meg kell nyomni egy gombot, ha csak ő lenne gombok nélkül." A ShaperG becenév alatt az Instructables szerzője is így gondolta. És igen
csináld magad egy robot porszívó menetrend szerinti elindítására szolgáló eszköz.
Házitermékek egy mechanikus időzítőből áll, amely a különféle elektromos készülékek (Ikea vagy bármely más) ütemezett bekapcsolására szolgál, tápegységről,
Arduino, kenyérlemez típusú kenyérlemez és dupont jumper (opcionális, forrasztással mindent összekapcsolhat), két LED - látható fény és infravörös, két 330 ohmos ellenállás, Sparkfun ház vagy bármilyen más.
Az összes szükséges összetevő kiválasztása után a varázsló összeállít egy diagramot. És ismét a Fritzing-szerű programban, ebben az esetben a Mekanizmalar online alkalmazásban. Nem mindenkinek tetszik ez a diagramok készítésének módja, de érthető, hogyan lehet mindent összekapcsolni.
A séma eldöntése után a varázsló megkezdi a programozást:
Könyvtárat vesz
ittés a vázlat az
itt. Egyszerűsíti a vázlatot úgy, hogy ha be van kapcsolva, öt másodpercenként folyamatosan küld egy „tiszta” parancsot. A vázlatot véglegesíteni kell, ha
a modell a porszívó különbözik az iRobot Roomba 530-tól. Nos, a mester ezt kideríti:
#include
/ *
Szuper egyszerű Arduino Powerd Roomba ütemező
2013-08-03 A Instructables kiadása
Kód adaptálva: https://gist.github.com/probonopd/5181021
Küldjön infravörös parancsokat az Arduino-tól az iRobot Roomba-nak
a probono által
2013-03-17 Első kiadás
Copyright (c) 2013 by probono
Minden jog fenntartva.
Újraelosztás és felhasználás forrás és bináris formában, akár nélkül, akár anélkül
módosítása megengedett, feltéve, hogy a következő feltételek teljesülnek:
1. A forráskód újraelosztásakor meg kell őrizni a fenti szerzői jogi figyelmeztetést
a feltételek listája és a következő nyilatkozat.
2. A bináris formátumú újraelosztásnak a fenti szerzői jogi értesítést meg kell reprodukálnia,
ez a feltételek listája és a következő felelősségkizárás a dokumentációban
és / vagy más anyagok, amelyek a disztribúcióval vannak ellátva.
EZT A SZOFTVERT A SZERZŐI JOGOS TULAJDONOSOK ÉS A HOZZÁJÁRULÓK "A Milyen vannak"
MINDEN KIFEJEZETT VAGY VÉGREHAJTOTT GARANCIÁK, BEÁLLÍTVA, DE NEM KORLÁTOZOTT A KAPCSOLATOS
A KERESKEDELEMHATÓSÁGRA ÉS A KÖVETELMÉNYES CÉLKITŰZÉSRE VONATKOZÓ GARANCIA
Zárva. A SZERZŐI JOGOS TULAJDONOSAINKAT ÉS A HOZZÁJÁRULÓKAT SOKKAL NEM FELELŐSE
MINDEN KÖZVETLEN, KÖZVETLEN, VÉLETLEN, KÜLÖNLEGES, PÉLDA-, VAGY KÖVETKEZŐ KÁR
(BETEGSÉGES ÁRUK VAGY SZOLGÁLTATÁSOK BEÁLLÍTÁSA, DE NEM RENDELKEZVE;
HASZNÁLAT, ADATOK VAGY NÖVEKEDÉS elvesztése; VAGY VÁLLALKOZÁS MEGSZAKÍTÁSA)
A FELELŐSSÉG SZERINTI BETEGSÉGEK ELSŐSÉGÉRT, SZERZŐDŐ FELELŐSSÉGET VAGY KOCKÁZAT
(BEFEJLESZTVE A KÖVETELMÉNYET VAGY EGYÉB) A HASZNÁLAT HASZNÁLATA JELEN
SZOFTVER, AMENNYIBEN KAPCSOLATOS KI A KÁR LEHETŐSÉGÉRE.
* /
IRsend irsend; // huzalozva a 3-as pinhez; tranzisztorral vezesse az IR LED-et a maximális tartományba
int LED = 10;
érvénytelen beállítás ()
{
Serial.begin (9600);
pinMode (LED, OUTPUT);
digitalWrite (LED, HIGH); // kapcsolja be a LED-et (HIGH a feszültségszint)
}
üres hurok ()
{
roomba_send (136); // Küldés "Tiszta"
késleltetés (5000); // Várjon 5 másodpercet
}
void roomba_send (int kód)
{
Serial.print ("Roomba kód küldése");
Serial.print (kód);
int hossz = 8;
unsigned int raw [hossz * 2];
alá nem írt int one_pulse = 3000;
aláíratlan int one_break = 1000;
unsigned int zero_pulse = one_break;
unsigned int zero_break = one_pulse;
int elrendezés = 0;
// Serial.println ("");
mert (int számláló = hossz-1; számláló> = 0; - számláló) {
if (kód & (1 << számláló)) {
// Serial.print ("1");
nyers [elrendezés] = egy_impulzus;
nyers [tömb + 1] = one_break;
}
egyéb {
// Serial.print ("0");
nyers [elrendezés] = nulla_impulzus;
nyers [arrayposition + 1] = zero_break;
}
arrayposition = arrayposition + 2;
}
mert (int i = 0; i <3; i ++) {
irsend.sendRaw (nyers, 15, 38);
késleltetés (50);
}
Serial.println ("");
Serial.print ("Nyers időzítések:");
mert (int z = 0; z
A varázsló kezdetben ellenőrzi a vázlat működését, hogy a soros portot a monitorhoz továbbítsa. Ezután mindent betesz az ügybe, és az Arduino-t nem a számítógépről, hanem a mechanikus időzítőn keresztül bekapcsolt tápegységről hajtja.
Most, amikor a készüléket a töltőállomás közelében helyezte el, ahova a robot porszívó mindig visszatér, beállíthatja a mechanikus időzítő összecsukási ütemtervét az indításához. A legjobb az egészben - naponta egyszer. Csak nem éjszaka, mint az N.N. Nosov.