Prisimeni, koks jis buvo
robotasdulkių siurblys „Kibernetika“ knygoje N.N. Nosova „Dunno saulės mieste“? Ar jam reikėjo priminti, kad atėjo laikas grįžti į darbą? Dabar, kai tokie įrenginiai tapo realybe, paaiškėjo, kad to reikia. Paimkite nuotolinio valdymo pultą ir paspauskite jame esantį mygtuką. Pachkulio kūrinio herojus Pestrenky, tai pamatęs, tikrai būtų pastebėjęs: „Kokia tai automatika, jei reikia paspausti mygtuką, jei tik jis būtų be mygtukų“. „Instructable“, pravarde ShaperG, autorius taip pat manė. Ir padarė
daryk pats prietaisas robotui dulkių siurbliui paleisti pagal grafiką.
Naminis susideda iš mechaninio laikmačio, skirto įjungti įvairius elektros prietaisus pagal grafiką („Ikea“ ar bet kurio kito), maitinimo šaltinio,
Arduino, „breadboard“ tipo lentos ir „dupont“ džemperiai (pasirinktinai viską galite sujungti litavimo būdu), du šviesos diodai - matomas švytėjimas ir infraraudonųjų spindulių ryšys, du 330 omų varžai, „Sparkfun“ korpusas ar bet kuris kitas.
Paėmęs visus reikalingus komponentus, vedlys parengia diagramą. Ir vėl „Fritzing“ tipo programoje, šiuo atveju, internetinėje „Mekanizmalar“ programoje. Ne visiems patinka toks diagramų sudarymo būdas, tačiau kaip viską sujungti, suprantama.
Nusprendęs dėl schemos, vedlys pradeda programuoti:
Paima biblioteką
čiao eskizas yra
čia. Supaprastina eskizą taip, kad įjungus maitinimą, jis kas penkias sekundes nuolat siunčia komandą „švarus“. Eskizas turės būti baigtas, jei
modelis dulkių siurblys skiriasi nuo „iRobot Roomba 530“. Meistras paaiškina taip:
# įtraukti
/ *
Super paprastas „Arduino Powerd Roomba“ planuotojas
2013-08-03 Instrumentų išleidimas
Kodas pritaikytas iš: https://gist.github.com/probonopd/5181021
Siųskite infraraudonųjų spindulių komandas iš „Arduino“ į „iRobot Roomba“
probono
2013-03-17 Pradinis leidimas
Autorinės teisės (c) 2013 m. Pateikė „probono“
Visos teisės saugomos.
Perskirstymas ir naudojimas šaltinio ir dvejetainėse formose, su arba be
keisti, leidžiama, jei tenkinamos šios sąlygos:
1. Perskirstant šaltinio kodą, turi būti išlaikytas aukščiau pateiktas pranešimas apie autorių teises, tai
sąlygų sąrašas ir šis atsisakymas.
2. Dvejetainiu formatu platinant turi būti pakartotas aukščiau pateiktas pranešimas apie autorių teises,
šį sąlygų sąrašą ir šį atsisakymą dokumentuose
ir (arba) kitas medžiagas, pateiktas kartu su platinimu.
Šią programinę įrangą teikia autorių teisių turėtojai ir įmokų teikėjai „tokiais, kokie jie yra“
JOKIOS IŠREIKŠTOS AR NETIESIOGINĖS GARANTIJOS, ĮSKAITANČIOS, BET NET RIBOTOS GALIMYBĖMS
PARDUOTUVĖS IR TINKAMUMO YPATINGAM TIKSLUI GARANTIJOS
ATSISAKYTI. JOKIU ATVEJU ATSAKOMYBĖS ATSAKOMYBĖS ARBA AUTORIŲ TEISĖS TURĖTOJAI ARBA RINKAI
JOKIŲ TIESIOGINIŲ, NETIESIOGINIŲ, NETIESIOGINIŲ, SPECIALIŲ, PAVYZDŽIŲ ARBA SEKTINIŲ ŽALŲ
(ĮSKAIČIUOJAMAS, BET APRIBOJAMAS PASTABINIŲ PREKIŲ ARBA PASLAUGŲ PIRKIMAS;
NAUDOJIMO, DUOMENŲ ARBA PELNO PAGALBA; ARBA VERSLO SUTRIKIMAS) KAIP PRIEŽASTIS IR
DĖL BET KOKIOS ATSAKOMYBĖS TEORIJOS, SUTARTIES, griežtos atsakomybės ar prievolės
(ĮSKAITANT TIKSLUMĄ ARBA KITĄ), KURIŲ BŪTINA NAUDOJANT ŠIĄ
PROGRAMINĖ ĮRANGA, JEI BŪTINAI PATIKRINTA APIE ŠIOS ŽALOS GALIMYBITY.
* /
IRsend irsend; // laidus 3 pin; naudokite tranzistorių, kad įjungtumėte IR šviesos diodą maksimaliam diapazonui
int LED = 10;
negaliojanti sąranka ()
{
„Serial.begin“ (9600);
pinMode (LED, OUTPUT);
„digitalWrite“ (LED, HIGH); // įjunkite šviesos diodą (AUKŠTAS yra įtampos lygis)
}
tuščia kilpa ()
{
roomba_send (136); // Siųsti „Švarus“
vėlavimas (5000); // Palauk 5 sekundes
}
voba roomba_send (vidinis kodas)
{
Serial.print („Kambario kodo siuntimas“);
Serijos spausdinimas (kodas);
vidinis ilgis = 8;
unsigned int raw [ilgis * 2];
nepasirašytas int one_pulse = 3000;
nepasirašytas int one_break = 1000;
nepasirašytas int nulio_pulse = vienas_sulaikymas;
neparašytas int zero_break = one_pulse;
int masyvas = 0;
// Serial.println ("");
už (int skaitiklis = ilgis-1; skaitiklis> = 0; - skaitiklis) {
if (kodas & (1 << skaitiklis)) {
// Serijos spausdinimas („1“);
raw [masyvo išdėstymas] = one_pulse;
neapdorotas [masyvo išdėstymas + 1] = one_break;
}
dar {
// Serijos spausdinimas („0“);
neapdorotas [masyvo išdėstymas] = nulis_pulso;
neapdorotas [masyvo išdėstymas + 1] = zero_break;
}
masyvas = masyvas + 2;
}
už (int i = 0; i <3; i ++) {
irsend.sendRaw (neapdorotas, 15, 38);
vėlavimas (50);
}
Serial.println ("");
Serial.print („Neapdoroti laikai:“);
už (int z = 0; z
Iš pradžių vedlys patikrina, ar eskizas išveda serijos prievadą į monitorių. Tada jis pateikia viską, kas yra dėkle, ir tiekia „Arduino“ ne iš kompiuterio, o iš maitinimo šaltinio, sujungto per mechaninį laikmatį.
Padėję prietaisą prie įkrovimo stoties, į kurią visada grįžta robotas dulkių siurblys, galite nustatyti mechaninio laikmačio sulankstymo grafiką, kad jis būtų paleistas. Geriausia - kartą per dieną. Tik ne naktį, kaip N.N. Nosova.