Alalahanin kung ano ito
ang robotvacuum cleaner na "Cybernetics" sa aklat ng N.N. Nosova "Dunno sa Solar City"? Dapat ba niyang paalalahanan na oras na upang makapagtrabaho? Ngayon, kapag ang naturang mga aparato ay naging isang katotohanan, ito ay naging kinakailangan. Kunin ang remote control at pindutin ang pindutan dito. Ang bayani ng akdang Pachkul na si Pestrenky, na nakakita nito, ay tiyak na napansin: "Anong uri ng mga awtomatiko ito, kung kailangan mong pindutin ang isang pindutan, kung siya lamang ay walang mga pindutan." Naisip din ng may-akda ng Mga Tagagamit sa ilalim ng palayaw na ShaperG. At ginawa
gawin mo mismo aparato para sa pagsisimula ng isang robot vacuum cleaner sa isang iskedyul.
Gawang bahay ay binubuo ng isang mekanikal na timer upang i-on ang iba't ibang mga de-koryenteng kagamitan sa isang iskedyul (Ikea o anumang iba pa), isang power supply,
Arduino, breadboard type breadboard at dupont jumpers (opsyonal, maaari mong ikonekta ang lahat sa pamamagitan ng paghihinang), dalawang LEDs - nakikita glow at infrared, dalawang 330 Ohm resistors, Sparkfun pabahay o anumang iba pa.
Ang pagpili ng lahat ng mga kinakailangang sangkap, ang wizard ay kumukuha ng isang diagram. At muli sa programang tulad ng Fritzing, sa kasong ito, sa application na online ng Mekanizmalar. Hindi lahat ang may gusto sa ganitong paraan ng pagguhit ng mga diagram, ngunit kung paano ikonekta ang lahat ay naiintindihan.
Ang pagkakaroon ng nagpasya sa pamamaraan, ang wizard ay nagsisimula sa pag-programming:
Kumuha ng isang library
ditoat ang sketch ay
dito. Pinapayak ang sketch upang kapag ang kapangyarihan ay nasa, patuloy itong nagpapadala ng isang "malinis" na utos tuwing limang segundo. Ang sketch ay kailangang ma-finalize kung
ang modelo ang vacuum cleaner ay naiiba sa iRobot Roomba 530. Well, ang master ay lumiliko ito:
#include
/ *
Super Simple Arduino Powerd Roomba scheduler
Paglabas ng 2013-08-03
Ang code ay inangkop mula sa: https://gist.github.com/probonopd/5181021
Magpadala ng mga infrared na utos mula sa Arduino hanggang iRobot Roomba
ni probono
Paunang paglabas sa 2013-03-17
Copyright (c) 2013 ni probono
Nakalaan ang lahat ng mga karapatan.
Ang pamamahagi at paggamit sa mga mapagkukunan at binary form, kasama o wala
pagbabago, pinapayagan sa kondisyon na ang mga sumusunod na kondisyon ay natutugunan:
1. Ang mga muling pagpapadala ng code ng mapagkukunan ay dapat mapanatili ang paunawa sa copyright sa itaas, ito
listahan ng mga kondisyon at ang sumusunod na pagtanggi.
2. Ang mga muling pagkilala sa binary form ay dapat magparami ng paunawa sa copyright sa itaas,
ang listahan ng mga kundisyon at ang sumusunod na pagtanggi sa dokumentasyon
at / o iba pang mga materyales na ibinigay sa pamamahagi.
Ang SOFTWARE NA ITO AY NANGUNGALINGAY NG MGA COPYRIGHT HOLDERS AT CONTRIBUTORS "AS IS" AT
ANUMANG LAKSAN O IMPLIED WARRANTIES, KASAMA, PERO HINDI LIMITADO SA, ANG IMPLIED
WARRANTIES NG MERCHANTABILITY AT PAGKAKAROON PARA SA ISANG LAYUNIN NA LAYUNIN
NAKAKITA. SA WALANG KAHITABAN AY MAAARI ANG COPYRIGHT OWNER O KONTRIBUTOR AY MAGING LIABLE PARA SA
ANONG DIRECT, INDIRECT, INCIDENTAL, ESPESYAL, EXEMPLARY, O KONSEYENTENTAL NA DAMAG
(PAGSASANAY, PERO HINDI LIMITADO SA, PAMAMARAAN NG MGA MABUTING GOODS O SERBISYO;
MGA KAWALAN NG PAGGAMIT, DATA, O KAUNAWAAN; O PAGSUSULIT SA NEGOSYO NG NEGOSYO) PAANO AY GINUSTO AT
SA ANUMANG TEORYA NG LIABILITY, KUNG SA KONTRACT, STRICT LIABILITY, O TORT
(KASAMA NG NEGLIGENCE O IBA’T IBANG) ARISING SA ANUMANG PARA SA PAGGAMIT NG ITO
KATOTOHANAN, KUNG KUNG KUNG NAGPAPAKITA NG POSSIBILIDAD NG SUCH DAMAGE.
* /
IRsend irsend; // hardwired to pin 3; gumamit ng transistor upang himukin ang IR LED para sa pinakamataas na saklaw
int LED = 10;
walang pag-setup ()
{
Serial.begin (9600);
pinMode (LED, OUTPUT);
digitalWrite (LED, HIGH); // i-on ang LED (HIGH ang antas ng boltahe)
}
walang bisa loop ()
{
roomba_send (136); // Magpadala ng "Malinis"
pagkaantala (5000); // Maghintay ng 5 segundo
}
walang bisa roomba_send (int code)
{
Serial.print ("Pagpapadala ng Roomba code");
Serial.print (code);
haba ng int = 8;
unsigned int raw [haba * 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 ("");
para sa (int counter = haba-1; counter> = 0; --counter) {
kung (code & (1 << counter)) {
// Serial.print ("1");
hilaw [arrayposition] = one_pulse;
hilaw [arrayposition + 1] = one_break;
}
iba pa {
// Serial.print ("0");
hilaw [arrayposition] = zero_pulse;
raw [arrayposition + 1] = zero_break;
}
arrayposition = arrayposition + 2;
}
para sa (int i = 0; i <3; i ++) {
irsend.sendRaw (hilaw, 15, 38);
pagkaantala (50);
}
Serial.println ("");
Serial.print ("Raw timings:");
para sa (int z = 0; z
Sa una, sinusuri ng wizard ang operasyon ng sketch para sa pag-output ng serial port sa monitor. Pagkatapos ay inilalagay nito ang lahat sa kaso at nagbibigay ng Arduino hindi mula sa isang computer, ngunit mula sa isang suplay ng kuryente na konektado sa pamamagitan ng isang mekanikal na timer.
Ngayon, na inilagay ang aparato malapit sa istasyon ng pagsingil, kung saan palaging nagbabalik ang vacuum cleaner, maaari mong itakda ang iskedyul ng natitiklop para ilunsad ito ng mekanikal na timer. Pinakamaganda sa lahat - isang beses sa isang araw. Hindi lamang sa gabi, tulad ng sa gawain ng N.N. Nosova.