Ingat seperti apa
robot itupembersih vakum "Cybernetics" dalam buku N.N. Nosova "Dunno di Solar City"? Adakah dia perlu diingatkan bahawa sudah tiba masanya untuk bekerja? Sekarang, apabila peranti sedemikian telah menjadi kenyataan, ternyata ia perlu. Ambil kawalan jauh dan tekan butang padanya. Wira kerja Pachkul Pestrenky, setelah melihatnya, pastinya akan menyedari: "Apa jenis automasi ini, jika anda perlu menekan butang, jika hanya dia akan memilikinya tanpa apa-apa butang." Penulis Instructables di bawah nama panggilan ShaperG juga memikirkannya. Dan lakukan
lakukan sendiri peranti untuk memulakan pembersih vakum robot pada jadual.
Buatan sendiri terdiri daripada pemasa mekanikal untuk menghidupkan pelbagai peralatan elektrik pada jadual (Ikea atau mana-mana yang lain), bekalan kuasa,
Arduino, papan suis roti papan dan penomputer dupont (pilihan, anda boleh sambungkan semuanya dengan penyolderan), dua LED - cahaya dan inframerah yang kelihatan, dua 330 Ohm perintang, perumahan Sparkfun atau mana-mana yang lain.
Setelah memilih semua komponen yang diperlukan, penyihir membuat rajah. Dan sekali lagi dalam program seperti Fritzing, dalam kes ini, dalam aplikasi dalam talian Mekanizmalar. Bukan semua orang suka dengan cara ini membuat gambar rajah, tetapi bagaimana untuk menyambung semuanya difahami.
Setelah memutuskan skema, wizard memulakan pengaturcaraan:
Membawa perpustakaan
di sinidan lakaran itu
di sini. Menyederhanakan lakaran supaya apabila kuasa dihidupkan, ia terus menghantar arahan "bersih" setiap lima saat. Lakaran itu hendaklah dimuktamadkan jika
model itu pembersih vakum berbeza dari iRobot Roomba 530. Nah, tuan ternyata ini:
#include
/ *
Super Simple Arduino Powerd Roomba Scheduler
2013-08-03 Pembebasan instructables
Kod disesuaikan daripada: https://gist.github.com/probonopd/5181021
Hantar arahan inframerah dari Arduino ke iRobot Roomba
oleh probono
2013-03-17 Siaran awal
Hak Cipta (c) 2013 oleh probono
Semua hak terpelihara.
Pengagihan semula dan penggunaan dalam bentuk sumber dan binari, dengan atau tanpa
pengubahsuaian, dibenarkan dengan syarat bahawa syarat-syarat berikut dipenuhi:
1. Pengedaran kod sumber mesti mengekalkan notis hak cipta di atas, ini
senarai syarat dan penafian berikut.
2. Pengagihan semula dalam bentuk binari mesti mengeluarkan notis hak cipta di atas,
senarai syarat ini dan penafian berikut dalam dokumentasi
dan / atau bahan lain yang disediakan dengan pengagihan.
PERISIAN INI ADALAH DISEDIAKAN OLEH PEMEGANG-PEMEGANG COPYRIGHT DAN KONTRIBUTOR "SEBAGAIMANA ADA" DAN
APA-APA JAMINAN YANG TERSURAT ATAU TERSIRAT, TERMASUK, TETAPI TIDAK TERHAD KEPADA, YANG TERSIRAT
JAMINAN KEMUNGKINAN DAN KESESUAIAN UNTUK TUJUAN TERTENTU
DISCLAIMED. DALAM APA-APA APA-APA APA-APA PEMBERITAHUAN COPYRIGHT ATAU KONTRIBUTOR TIDAK BERTANGGUNGJAWAB UNTUK
SETIAP KEROSAKAN TANPA LANGSUNG, TIDAK LANGSUNG, SAMPAHAN, KHAS, TEMPAHAN, ATAU BAYAR
(TERMASUK, TETAPI TIDAK TERHAD KEPADA, PENGUKURAN BARANG ATAU PERKHIDMATAN SUBSTITUTE;
KEHILANGAN PENGGUNAAN, DATA, ATAU KEUNTUNGAN; ATAU KERUGIAN PERNIAGAAN) BAGAIMANA YANG DISEBUT DAN
SEBARANG TEORI LIABILITI, SAMA DALAM KONTRAK, LIABILITAS TETAP, ATAU TORT
(TERMASUK NEGLIMEN ATAU SEBALIKNYA) YANG MENGIKUT DALAM APA-APA CARA KALANGAN PENGGUNAAN INI
PERANGKAT LUNAK, SEBENAR JIKA ADA DINYATAKAN KEMUNGKINAN KEROSAKAN TERSEBUT.
* /
IRsend irsend; / / keras kepala ke pin 3; gunakan transistor untuk memandu LED IR untuk julat maksimal
int LED = 10;
batal persediaan ()
{
Serial.begin (9600);
pinMode (LED, OUTPUT);
digitalWrite (LED, TINGGI); / / putar LED pada (TINGGI adalah tahap voltan)
}
kekosongan gelung ()
{
roomba_send (136); // Hantar "Bersih"
kelewatan (5000); // Tunggu 5 saat
}
void roomba_send (int code)
{
Serial.print ("Menghantar kod Roomba");
Serial.print (code);
int panjang = 8;
unsigned int mentah [panjang * 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 ("");
untuk (int counter = length-1; counter> = 0; --counter) {
jika (kod & (1 <<)) {
/ // Serial.print ("1");
raw [arrayposition] = one_pulse;
mentah [rangkakerja + 1] = one_break;
}
lain {
/ // Serial.print ("0");
mentah [penukaran arah] = zero_pulse;
mentah [penamaan arah + 1] = zero_break;
}
arrayposition = arrayposition + 2;
}
untuk (int i = 0; i <3; i ++) {
irsend.sendRaw (mentah, 15, 38);
kelewatan (50);
}
Serial.println ("");
Serial.print ("Timing mentah:");
untuk (int z = 0; z
Pada mulanya, ahli sihir menyemak operasi lakaran untuk mengeluarkan port siri ke monitor. Kemudian ia meletakkan segala-galanya dalam kes dan membekalkan Arduino bukan dari komputer, tetapi dari bekalan kuasa yang disambungkan melalui pemasa mekanikal.
Sekarang, dengan meletakkan peranti berhampiran stesen pengecasan, yang mana pembersih vakum robot sentiasa kembali, anda boleh menetapkan jadual lipat untuk pemasa mekanikal untuk memulakannya. Terbaik sekali - sekali sehari. Hanya tidak pada waktu malam, seperti dalam karya N.N. Nosova.