จำไว้ว่ามันเป็นอย่างไร
หุ่นยนต์เครื่องดูดฝุ่น "Cybernetics" ในหนังสือของ N.N Nosova "Dunno in the Solar City"? เขาต้องได้รับการเตือนว่าถึงเวลาที่ต้องทำงานหรือไม่? ตอนนี้อุปกรณ์ดังกล่าวได้กลายเป็นความจริงมันกลายเป็นว่ามันเป็นสิ่งที่จำเป็น ใช้รีโมตคอนโทรลแล้วกดปุ่มบน วีรบุรุษของ Pachkul ทำงาน Pestrenky เมื่อเห็นสิ่งนี้จะสังเกตเห็นได้อย่างแน่นอน:“ ระบบอัตโนมัติแบบนี้คืออะไรถ้าคุณต้องการกดปุ่มถ้าเพียงเขาเท่านั้นที่จะได้มันโดยไม่มีปุ่มใด ๆ ” ผู้แต่ง Instructables ภายใต้ชื่อเล่น ShaperG ก็คิดเช่นกัน และก็
ทำมันเอง อุปกรณ์สำหรับเริ่มต้นเครื่องดูดฝุ่นหุ่นยนต์ตามกำหนดเวลา
สินค้าทำที่บ้าน ประกอบด้วยตัวจับเวลาเชิงกลเพื่อเปิดเครื่องใช้ไฟฟ้าต่าง ๆ ตามกำหนดเวลา (Ikea หรืออื่น ๆ ), แหล่งจ่ายไฟ,
Arduinoประเภทเขียงหั่นขนมเขียงและจัมเปอร์ดูปองท์ (อุปกรณ์เสริมคุณสามารถเชื่อมต่อทุกอย่างด้วยการบัดกรี) ไฟ LED สองดวง - แสงที่มองเห็นและอินฟราเรดตัวต้านทาน 330 โอห์มสองตัวตัวเรือน Sparkfun หรืออื่น ๆ
หลังจากเลือกส่วนประกอบที่จำเป็นทั้งหมดแล้วตัวช่วยสร้างจะวาดไดอะแกรม และอีกครั้งในโปรแกรมที่คล้ายกับ Fritzing ในกรณีนี้ในแอปพลิเคชันออนไลน์ Mekanizmalar ทุกคนไม่ชอบวิธีนี้ในการวาดไดอะแกรม แต่จะเข้าใจได้อย่างไร
เมื่อตัดสินใจเลือกโครงร่างแล้ววิซาร์ดจะเริ่มเขียนโปรแกรม:
ใช้ห้องสมุด
ที่นี่และร่างคือ
ที่นี่. ลดความซับซ้อนของร่างภาพเพื่อให้เมื่อเปิดเครื่องจะส่งคำสั่ง "สะอาด" อย่างต่อเนื่องทุกห้าวินาที ร่างภาพจะต้องมีการสรุปถ้า
รูปแบบ เครื่องดูดฝุ่นที่แตกต่างจาก iRobot Roomba 530 ดีอาจารย์เปิดออกนี้:
#include
/ *
Super Simple Arduino Powerd Roomba Scheduler
2013-08-03 คำแนะนำสำหรับการเปิดตัว
รหัสที่ดัดแปลงจาก: https://gist.github.com/probonopd/5181021
ส่งคำสั่งอินฟราเรดจาก Arduino ไปยัง iRobot Roomba
โดย probono
2013-03-17 การเปิดตัวครั้งแรก
ลิขสิทธิ์ (c) 2013 โดย probono
สงวนลิขสิทธิ์
แจกจ่ายและใช้ในแหล่งที่มาและรูปแบบไบนารีโดยมีหรือไม่มี
อนุญาตให้แก้ไขได้หากเงื่อนไขดังต่อไปนี้:
1. การแจกจ่ายซ้ำซอร์สโค้ดจะต้องเก็บรักษาประกาศลิขสิทธิ์ข้างต้นนี้
รายการเงื่อนไขและข้อจำกัดความรับผิดชอบต่อไปนี้
2. การแจกจ่ายซ้ำในรูปแบบไบนารีจะต้องทำซ้ำประกาศลิขสิทธิ์ข้างต้น
รายการเงื่อนไขนี้และข้อจำกัดความรับผิดชอบต่อไปนี้ในเอกสารประกอบ
และ / หรือวัสดุอื่น ๆ ที่มาพร้อมกับการจัดจำหน่าย
ซอฟต์แวร์นี้จัดหาให้โดยผู้ถือลิขสิทธิ์และผู้สนับสนุน "ตามสภาพ" และ
การรับประกันโดยชัดแจ้งหรือโดยนัยใด ๆ รวมถึง แต่ไม่ จำกัด เพียงการใช้โดยนัย
การรับประกันความสามารถในการค้าขายและความเหมาะสมสำหรับวัตถุประสงค์เฉพาะคือ
ปฏิเสธ ไม่ว่าในกรณีใดเจ้าของลิขสิทธิ์หรือผู้มีลิขสิทธิ์จะต้องรับผิด
ทางตรง, ทางอ้อม, โดยบังเอิญ, พิเศษ, แบบอย่างหรือความเสียหายที่เกิดขึ้นเอง
(รวมถึง แต่ไม่ จำกัด เพียงการจัดหาสินค้าหรือบริการทดแทน
การสูญเสียการใช้ข้อมูลหรือผลกำไร; หรือการขัดจังหวะธุรกิจ) แต่สาเหตุและ
ตามทฤษฎีความรับผิดใด ๆ ไม่ว่าจะเป็นสัญญาความรับผิดที่เข้มงวดหรือการทรมาน
(รวมถึงความประมาทเลินเล่อหรืออย่างอื่น) เกิดขึ้นในทุกทางที่ออกจากการใช้งานของสิ่งนี้
ซอฟต์แวร์แม้จะได้รับคำแนะนำจากความเป็นไปได้ของความเสียหายดังกล่าว
* /
irendend irsend; // เดินสายไปที่ขา 3; ใช้ทรานซิสเตอร์เพื่อขับ LED IR สำหรับช่วงสูงสุด
int LED = 10;
การตั้งค่าเป็นโมฆะ ()
{
Serial.begin (9600);
pinMode (LED, OUTPUT);
digitalWrite (LED, สูง); // เปิดไฟ LED (HIGH คือระดับแรงดันไฟฟ้า)
}
เป็นโมฆะห่วง ()
{
roomba_send (136); // ส่ง "สะอาด"
ล่าช้า (5,000); // รอ 5 วินาที
}
ถือเป็นโมฆะ roomba_send (int code)
{
Serial.print ("การส่งรหัส Roomba");
Serial.print (รหัส);
ความยาว int = 8;
ดิบที่ไม่ได้ลงนาม [ความยาว * 2];
ไม่ได้ลงทะเบียน int one_pulse = 3000;
ไม่ได้ลงทะเบียน int one_break = 1,000;
int zero_pulse = one_break ที่ไม่ได้ลงชื่อ;
int zero_break ที่ไม่ได้ลงชื่อ = one_pulse;
int arrayposition = 0;
// Serial.println ("");
สำหรับ (int counter = length-1; counter> = 0; --counter) {
ถ้า (รหัส & (1 << ตัวนับ)) {
// Serial.print ("1");
raw [arrayposition] = one_pulse;
raw [arrayposition + 1] = one_break;
}
อื่น {
// Serial.print ("0");
raw [arrayposition] = zero_pulse;
raw [arrayposition + 1] = zero_break;
}
arrayposition = arrayposition + 2;
}
สำหรับ (int i = 0; i <3; i ++) {
irsend.sendRaw (ดิบ, 15, 38);
ล่าช้า (50);
}
Serial.println ("");
Serial.print ("การกำหนดเวลาดิบ:");
สำหรับ (int z = 0; z <ยาว * 2; z ++) {
Serial.print ("");
Serial.print (raw [z]);
}
Serial.print ("\ n \ n");
}
เริ่มแรกตัวช่วยสร้างจะตรวจสอบการทำงานของภาพร่างเพื่อส่งออกพอร์ตอนุกรมไปยังจอภาพ จากนั้นมันจะใส่ทุกอย่างในกล่องและจัดหา Arduino ไม่ใช่จากคอมพิวเตอร์ แต่จากแหล่งจ่ายไฟที่เชื่อมต่อผ่านตัวจับเวลาเชิงกล
ตอนนี้ด้วยการวางอุปกรณ์ไว้ใกล้สถานีชาร์จที่เครื่องดูดฝุ่นหุ่นยนต์กลับมาเสมอคุณสามารถกำหนดตารางการพับสำหรับตัวจับเวลาเชิงกลเพื่อเริ่ม ดีที่สุดของทั้งหมด - วันละครั้ง ไม่เพียงในเวลากลางคืนเช่นเดียวกับในงานของ N.N nosov