Onthoud hoe het was
de robotstofzuiger "Cybernetics" in het boek van N.N. Nosova "Dunno in the Solar City"? Moest hij eraan worden herinnerd dat het tijd was om aan het werk te gaan? Nu dergelijke apparaten een realiteit zijn geworden, bleek dat het nodig is. Pak de afstandsbediening en druk op de knop erop. De held van Pachkul's werk Pestrenky zou, als hij dit had gezien, zeker hebben opgemerkt: "Wat voor soort automatisering is dit, als je op een knop moet drukken, als hij maar zonder knoppen zou zijn." De auteur van Instructables onder de bijnaam ShaperG dacht van wel. En deed
doe het zelf apparaat voor het starten van een robotstofzuiger volgens een schema.
Zelfgemaakt bestaat uit een mechanische timer om verschillende elektrische apparaten volgens schema in te schakelen (Ikea of een ander), een voeding,
Arduino, breadboard-type breadboard en dupont-jumpers (optioneel, je kunt alles aansluiten door te solderen), twee LED's - zichtbare gloed en infrarood, twee 330 Ohm-weerstanden, Sparkfun-behuizing of een andere.
Nadat alle benodigde componenten zijn geselecteerd, stelt de wizard een diagram op. En opnieuw in het Fritzing-achtige programma, in dit geval in de online applicatie Mekanizmalar. Niet iedereen vindt deze manier van diagrammen maken leuk, maar hoe je alles met elkaar verbindt is begrijpelijk.
Nadat hij het schema heeft bepaald, begint de wizard met programmeren:
Neemt een bibliotheek
hieren de schets is
hier. Vereenvoudigt de schets zodat wanneer de stroom is ingeschakeld, deze elke vijf seconden continu een "schoon" commando verstuurt. De schets moet worden afgerond als
het model de stofzuiger verschilt van iRobot Roomba 530. Nou, de meester blijkt dit:
#include
/ *
Supereenvoudige Arduino Powerd Roomba-planner
2013-08-03 Instructables-release
Code aangepast van: https://gist.github.com/probonopd/5181021
Stuur infraroodopdrachten van de Arduino naar de iRobot Roomba
door probono
2013-03-17 Eerste release
Copyright (c) 2013 door probono
Alle rechten voorbehouden.
Herdistributie en gebruik in bron- en binaire vormen, met of zonder
wijziging is toegestaan, mits aan de volgende voorwaarden is voldaan:
1. Herdistributies van broncode moeten de bovenstaande copyrightvermelding behouden, dit
lijst met voorwaarden en de volgende disclaimer.
2. Herdistributies in binaire vorm moeten de bovenstaande copyrightvermelding weergeven,
deze lijst met voorwaarden en de volgende disclaimer in de documentatie
en / of ander materiaal dat bij de distributie wordt geleverd.
DEZE SOFTWARE WORDT GELEVERD DOOR DE AUTEURSRECHTHOUDERS EN BIJDRAGERS "AS IS" EN
ELKE UITDRUKKELIJKE OF IMPLICIETE GARANTIE, INCLUSIEF, MAAR NIET BEPERKT TOT, DE IMPLICIETE
GARANTIES VAN VERKOOPBAARHEID EN GESCHIKTHEID VOOR EEN BEPAALD DOEL ZIJN
AFGEWEZEN. IN GEEN GEVAL ZIJN DE COPYRIGHT EIGENAAR OF DE BIJDRAGERS AANSPRAKELIJK
ELKE DIRECTE, INDIRECTE, INCIDENTELE, SPECIALE, VOORBEELD- OF GEVOLGSCHADE
(INCLUSIEF, MAAR NIET BEPERKT TOT, INKOOP VAN VERVANGENDE GOEDEREN OF DIENSTEN;
VERLIES VAN GEBRUIK, GEGEVENS OF WINST; OF ZAKELIJKE ONDERBREKING) ECHTER VEROORZAAKT EN
OP ELKE THEORIE VAN AANSPRAKELIJKHEID, OF IN CONTRACT, STRIKTE AANSPRAKELIJKHEID OF MORTEL
(INCLUSIEF NALATIGHEID OF ANDERSZINS) DIE OP ENIGE MANIER ONTSTAAT UIT HET GEBRUIK VAN DIT
SOFTWARE, ZELFS INDIEN GEADVISEERD OVER DE MOGELIJKHEID VAN DERGELIJKE SCHADE.
* /
IRsend irsend; // bedraad naar pin 3; gebruik een transistor om de IR-LED aan te sturen voor een maximaal bereik
int LED = 10;
ongeldige setup ()
{
Serial.begin (9600);
pinMode (LED, OUTPUT);
digitalWrite (LED, HIGH); // zet de LED aan (HOOG is het spanningsniveau)
}
leegte lus ()
{
roomba_send (136); // Stuur "Clean"
vertraging (5000); // Wacht 5 seconden
}
void roomba_send (int code)
{
Serial.print ("Roomba-code verzenden");
Serial.print (code);
int lengte = 8;
unsigned int raw [lengte * 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 ("");
voor (int counter = lengte-1; teller> = 0; --counter) {
if (code & (1 << counter)) {
// Serial.print ("1");
raw [arrayposition] = one_pulse;
raw [arrayposition + 1] = one_break;
}
anders {
// Serial.print ("0");
raw [arrayposition] = zero_pulse;
raw [arrayposition + 1] = zero_break;
}
arrayposition = arrayposition + 2;
}
voor (int i = 0; i <3; i ++) {
irsend.sendRaw (raw, 15, 38);
vertraging (50);
}
Serial.println ("");
Serial.print ("Raw timings:");
voor (int z = 0; z
Aanvankelijk controleert de wizard de werking van de schets voor het uitvoeren van de seriële poort naar de monitor. Vervolgens stopt hij alles in de koffer en levert de Arduino niet via een computer, maar via een voeding aangesloten via een mechanische timer.
Door nu het apparaat in de buurt van het laadstation te plaatsen, waar de robotstofzuiger altijd naar terugkeert, kunt u het vouwschema instellen voor de mechanische timer om het te starten. Het beste van alles - één keer per dag. Alleen niet 's nachts, zoals in het werk van N.N. Nosova.