Recordeu com era
el robotaspirador "Cibernètica" al llibre de N.N. Nosova "Dunno a la ciutat solar"? Li havia de recordar que era hora de posar-se a la feina? Ara, quan aquests dispositius s’han convertit en una realitat, ha resultat que és necessari. Agafeu el comandament a distància i premeu el botó que hi ha. L’heroi del treball de Pachkul Pestrenky, després d’haver-ho vist, segurament s’hauria adonat: “Quin tipus d’automatització és això, si necessiteu prémer un botó, si només el tindria sense cap botó”. L’autor de Instructables amb el sobrenom de ShaperG també ho va pensar. I ho va fer
fes-ho tu mateix dispositiu per posar en marxa un aspirador robot en un programa.
Casolans consisteix en un temporitzador mecànic per encendre diversos electrodomèstics en un horari (Ikea o qualsevol altre), una font d'alimentació,
Arduino, panell tipus panell i saltadors dupont (opcional, podeu connectar-ho tot soldant), dos LEDs - incandescència visible i infrarojos, dues resistències de 330 Ohms, carcassa de Sparkfun o qualsevol altra.
Després d’haver recollit tots els components necessaris, l’assistent elabora un diagrama. I de nou al programa Fritzing-like, en aquest cas, a l’aplicació en línia Mekanizmalar. No tothom els agrada aquesta forma de fer esquemes, però és comprensible la manera de connectar-ho tot.
Un cop decidit l'esquema, l'assistent comença a programar:
Porta una biblioteca
aquíi l’esbós és
aquí. Simplifica l’esbós de manera que quan s’encén l’energia, envia contínuament una comanda “neta” cada cinc segons. L'esbós haurà de finalitzar si
el model l'aspiradora difereix de iRobot Roomba 530. Doncs el màster resulta:
#include
/ *
Programador Super Simple Arduino Powerd Roomba
2013-08-03 Publicat instructables
Codi adaptat a: https://gist.github.com/probonopd/5181021
Envieu ordres d’infrarojos des de l’Arduino a iRobot Roomba
per probono
17-03-2013 Llançament inicial
Copyright (c) 2013 de probono
Tots els drets reservats.
Redistribució i ús en formes font i binàries, amb o sense
es permet la modificació sempre que es compleixin les condicions següents:
1. Les redistribucions del codi font han de conservar l'avís de drets d'autor anteriorment indicat
llista de condicions i la següent renúncia.
2. Les redistribucions de forma binària han de reproduir l'avís de drets d'autor anterior,
aquesta llista de condicions i la següent renúncia a la documentació
i / o altres materials subministrats amb la distribució.
AQUEST PROGRAMARI ES FORMA ELS TITULADORS DE COPYRIGHT I ELS CONTACTANTS "COM ÉS" I
QUALSEVOL GARANTIA EXPRESSA O IMPLICADA, INCLUSS, PER NOT NO LIMITADA A, ELS IMPLICATS
SÓN GARANTIES DE COMERCIALITAT I APTITUD PER A UNA OBJECTIU PARTICULAR
DECLARAT. EN cap cas, NO SERÀ RESPONSABLE EL PROPIETARI DE COPYRIGHT O ELS CONTRIBUTORS
QUALSEVOLS DANYS DIRECTS, INDIRECTS, INCIDENTALS, ESPECIALS, EXEMPLARS O CONSEQÜENCIALS
(INCLÚS, PER NOT NO LIMITATS, CONTRACTACIÓ DE BENS O SERVEIS SUBSTITUTS;
PÈRDUES D’ÚS, DADES O PROFESSIONS; O INTERRUPCIÓ D'EMPRESES)
SOBRE ALGUNA TEORIA DE LA RESPONSABILITAT, SEMPRE EL CONTRACTE, LA RESPONSABILITAT ESTRIGADA O EL TORT
(INCLUS NEGLIGÈNCIA O ALTRES) AIXÍ EN QUALSEVOL MODA DE L’ÚS D’AQUEST
PROGRAMARI, A PARTIR DE LA POSSIBILITAT DE TANTOS DANYS.
* /
IRsend irsend; // cablejat al pin 3; utilitzeu un transistor per conduir el LED IR de manera màxima
int LED = 10;
nul configuració ()
{
Serial.begin (9600);
pinMode (LED, SORTIDA);
digitalWrite (LED, HIGH); // encendre el LED (ALT és el nivell de tensió)
}
bucle void ()
{
roomba_send (136); // Enviar "Netejar"
retard (5000); // Espereu 5 segons
}
void roomba_send (codi int)
{
Serial.print ("S'està enviant el codi Roomba");
Serial.print (codi);
longitud int = 8;
unsigned int raw [longitud * 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 = longitud-1; comptador> = 0; --counter) {
if (codi i (1 << comptador)) {
// Serial.print ("1");
raw [arrayposition] = one_pulse;
raw [arrayposition + 1] = one_break;
}
més {
// Serial.print ("0");
raw [arrayposition] = zero_pulse;
raw [arrayposition + 1] = zero_break;
}
arrayposition = arrayposition + 2;
}
per (int i = 0; i <3; i ++) {
irsend.sendRaw (cru, 15, 38);
retard (50);
}
Serial.println ("");
Serial.print ("Temporitzacions en brut:");
per a (int z = 0; z
Inicialment, l'assistent comprova el funcionament de l'esbós per a la sortida del port sèrie al monitor. A continuació, posa tot el cas i subministra l’Arduino no des d’un ordinador, sinó des d’una font d’energia connectada mitjançant un temporitzador mecànic.
Ara, col·locant el dispositiu a prop de l'estació de recàrrega, a la qual sempre torna l'aspirador robot, podeu configurar el programa de plegament perquè el temporitzador mecànic l'inici. El millor de tot, un cop al dia. Només no a la nit, com en l’obra de N.N. Nosova.