Lembre-se de como era
o robôaspirador de pó "Cybernetics" no livro de N.N. Nosova "Não sei na cidade solar"? Ele precisava ser lembrado de que era hora de começar a trabalhar? Agora, quando esses dispositivos se tornaram realidade, descobriu-se que é necessário. Pegue o controle remoto e pressione o botão nele. O herói do trabalho de Pachkul, Pestrenky, tendo visto isso, certamente teria notado: "Que tipo de automação é essa, se você precisar pressionar um botão, se ele o tivesse sem botões". O autor de Instructables sob o apelido ShaperG também pensava assim. E fez
faça você mesmo dispositivo para iniciar um aspirador de pó robô em uma programação.
Caseiro consiste em um temporizador mecânico para ligar vários aparelhos elétricos em um horário (Ikea ou qualquer outro), uma fonte de alimentação,
Arduino, breadboard do tipo breadboard e jumpers duplos (opcional, você pode conectar tudo por solda), dois LEDs - brilho visível e infravermelho, dois resistores de 330 Ohm, caixa Sparkfun ou qualquer outro.
Depois de coletar todos os componentes necessários, o assistente elabora um diagrama. E, novamente, no programa do tipo Fritzing, nesse caso, no aplicativo online Mekanizmalar. Nem todo mundo gosta dessa maneira de elaborar diagramas, mas como conectar tudo é compreensível.
Tendo decidido o esquema, o assistente inicia a programação:
Toma uma biblioteca
aquie o desenho é
aqui. Simplifica o esboço para que, quando a energia estiver ligada, ele envie continuamente um comando "limpo" a cada cinco segundos. O esboço terá que ser finalizado se
o modelo o aspirador é diferente do iRobot Roomba 530. Bem, o mestre verifica isso:
#include
/ *
Super Simples Arduino Powerd Roomba Scheduler
2013-08-03 Lançamento de instructables
Código adaptado de: https://gist.github.com/probonopd/5181021
Enviar comandos de infravermelho do Arduino para o iRobot Roomba
por probono
17-03-2013 versão inicial
Direitos autorais (c) 2013 de probono
Todos os direitos reservados.
Redistribuição e uso em formas de origem e binárias, com ou sem
modificação, são permitidas desde que as seguintes condições sejam atendidas:
1. As redistribuições do código-fonte devem manter o aviso de direitos autorais acima, este
lista de condições e o aviso de isenção de responsabilidade a seguir.
2. As redistribuições em formato binário devem reproduzir o aviso de direitos autorais acima,
esta lista de condições e o aviso de isenção de responsabilidade a seguir na documentação
e / ou outros materiais fornecidos com a distribuição.
ESTE SOFTWARE É FORNECIDO PELOS TITULARES DE DIREITOS AUTORAIS E CONTRIBUIDORES "TAL COMO ESTÁ" E
QUALQUER GARANTIA EXPRESSA OU IMPLÍCITA, INCLUINDO, MAS NÃO SE LIMITANDO A
GARANTIAS DE COMERCIALIZAÇÃO E ADEQUAÇÃO A UM OBJETIVO PARTICULAR SÃO
ISENÇÃO DE RESPONSABILIDADE. EM NENHUM CASO, O PROPRIETÁRIO OU CONTRIBUIDORES DE DIREITOS AUTORAIS SERÃO RESPONSÁVEIS POR
QUAISQUER DANOS DIRETOS, INDIRETOS, INCIDENTAIS, ESPECIAIS, EXEMPLARES OU CONSEQÜENCIAIS
(INCLUINDO, MAS NÃO SE LIMITANDO A, AQUISIÇÃO DE BENS OU SERVIÇOS SUBSTITUTOS;
PERDA DE USO, DADOS OU LUCROS; OU INTERRUPÇÃO DE NEGÓCIOS) CAUSADOS E
SOBRE QUALQUER TEORIA DE RESPONSABILIDADE, CONTRATADA, RESPONSABILIDADE RÍGIDA OU
(INCLUINDO NEGLIGÊNCIA OU DE OUTRA FORMA) DECORRENTE DE QUALQUER FORMA DO USO DESTE
SOFTWARE, MESMO SE AVISADO DA POSSIBILIDADE DE TAIS DANOS.
* /
IRsend irsend; // conectado ao pino 3; use um transistor para acionar o LED IR para alcance máximo
int LED = 10;
configuração nula ()
{
Serial.begin (9600);
pinMode (LED, SAÍDA);
digitalWrite (LED, ALTO); // acende o LED (ALTO é o nível de tensão)
}
loop vazio ()
{
roomba_send (136); // Envie "Limpar"
atraso (5000); // Aguarde 5 segundos
}
void roomba_send (código int)
{
Serial.print ("Enviando código Roomba");
Serial.print (código);
int comprimento = 8;
não assinado int raw [length * 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 contador = comprimento-1; contador> = 0; --counter) {
if (código & (1 << contador)) {
// Serial.print ("1");
bruto [arrayposition] = one_pulse;
bruto [arrayposition + 1] = one_break;
}
mais {
// Serial.print ("0");
bruto [arrayposition] = zero_pulse;
bruto [arrayposition + 1] = zero_break;
}
arrayposition = arrayposition + 2;
}
for (int i = 0; i <3; i ++) {
irsend.sendRaw (bruto, 15, 38);
atraso (50);
}
Serial.println ("");
Serial.print ("Tempos brutos:");
for (int z = 0; z
Inicialmente, o assistente verifica a operação do esboço para enviar a porta serial ao monitor. Em seguida, coloca tudo no estojo e fornece o Arduino não a partir de um computador, mas a partir de uma fonte de alimentação conectada através de um temporizador mecânico.
Agora, colocando o dispositivo próximo à estação de carregamento, à qual o aspirador de pó robô sempre retorna, você pode definir o cronograma de dobragem para o temporizador mecânico iniciá-lo. O melhor de tudo - uma vez por dia. Só não à noite, como no trabalho de N.N. Nosova.