- วัสดุที่จำเป็นในการสร้างหุ่นยนต์ทำความสะอาดพื้นด้วย Arduino
- เครื่องดูดฝุ่นแบบพกพา
- โมดูลเซ็นเซอร์อัลตราโซนิก HC-SR04
- เซ็นเซอร์พื้น (IR Sensor) สำหรับการตรวจจับบันได
- แผนภาพวงจรของหุ่นยนต์ทำความสะอาดพื้นโดยใช้ Arduino
- การสร้างวงจรสำหรับหุ่นยนต์ทำความสะอาดพื้นโดยใช้ Arduino
- Arduino
ในสถานการณ์ปัจจุบันเราทุกคนยุ่งกับงานมากจนไม่มีเวลาทำความสะอาดบ้านอย่างถูกต้อง วิธีแก้ปัญหานั้นง่ายมากคุณเพียงแค่ต้องซื้อหุ่นยนต์ดูดฝุ่นในบ้านเช่นirobot roombaซึ่งจะทำความสะอาดบ้านของคุณด้วยการกดปุ่มเพียงปุ่มเดียว แต่ผลิตภัณฑ์เชิงพาณิชย์ดังกล่าวเป็นปัญหาที่พบบ่อยซึ่งเป็นต้นทุน ดังนั้นวันนี้เราจึงตัดสินใจสร้างหุ่นยนต์ทำความสะอาดพื้น แบบธรรมดาซึ่งไม่เพียง แต่ทำง่าย แต่มีต้นทุนน้อยกว่าเมื่อเทียบกับผลิตภัณฑ์เชิงพาณิชย์ที่มีอยู่ในตลาด ผู้อ่านบ่อยๆอาจจำหุ่นยนต์ทำความสะอาดสูญญากาศ Arduino ของเราซึ่งเราสร้างขึ้นเมื่อนานมาแล้ว แต่ตัวนั้นมีขนาดใหญ่มากและต้องการแบตเตอรี่ตะกั่วกรดขนาดใหญ่เพื่อเคลื่อนที่เครื่องดูดฝุ่น Arduinoใหม่ เรากำลังจะสร้างที่นี่จะมีขนาดกะทัดรัดและใช้งานได้จริงมากขึ้น ยิ่งไปกว่านั้นหุ่นยนต์ตัวนี้จะมีเซ็นเซอร์อัลตราโซนิกและเซ็นเซอร์ความใกล้เคียง IR เซ็นเซอร์อัลตราโซนิกจะช่วยให้หุ่นยนต์สามารถหลีกเลี่ยงสิ่งกีดขวางเพื่อให้สามารถเคลื่อนที่ได้อย่างอิสระจนกว่าห้องจะได้รับการทำความสะอาดอย่างเหมาะสมและเซ็นเซอร์ความใกล้ชิดจะช่วยหลีกเลี่ยงการตกจากบันได คุณสมบัติทั้งหมดนี้น่าสนใจใช่มั้ย? มาเริ่มกันเลย
ในบทความก่อนหน้านี้เราได้สร้างบอทมากมายเช่น Self Balancing Robot, Automated Surface Disinfecting Robot และ Obstacle Avoiding Robot ตรวจสอบว่าสิ่งนั้นน่าสนใจสำหรับคุณหรือไม่
วัสดุที่จำเป็นในการสร้างหุ่นยนต์ทำความสะอาดพื้นด้วย Arduino
เนื่องจากเราได้ใช้ส่วนประกอบทั่วไปในการสร้างส่วนฮาร์ดแวร์ของหุ่นยนต์ดูดฝุ่นคุณจึงควรหาชิ้นส่วนทั้งหมดได้ในร้านขายอุปกรณ์งานอดิเรกในพื้นที่ของคุณ นี่คือรายการวัสดุที่จำเป็นทั้งหมดพร้อมกับรูปภาพของส่วนประกอบทั้งหมด
- Arduino Pro Mini - 1
- HC-SR04 โมดูลอัลตราโซนิก - 3
- L293D ขับมอเตอร์ - 1
- มอเตอร์ 5Volt N20 และขายึด - 2
- ล้อมอเตอร์ N20 - 2
- สวิตช์ - 1
- LM7805 ตัวควบคุมแรงดันไฟฟ้า - 1
- แบตเตอรี่ลิเธียมไอออน 7.4V - 1
- โมดูล IR - 1
- Perfboard - 1
- ล้อเลื่อน - 1
- MDF
- เครื่องดูดฝุ่นแบบพกพาทั่วไป
เครื่องดูดฝุ่นแบบพกพา
ในส่วนข้อกำหนดส่วนประกอบเราได้พูดถึงเครื่องดูดฝุ่นแบบพกพาภาพด้านล่างแสดงให้เห็นอย่างชัดเจน เป็นเครื่องดูดฝุ่นแบบพกพาจาก amazon สิ่งนี้มาพร้อมกับกลไกที่ง่ายมาก ด้านล่างมีสามส่วน (ห้องเล็ก ๆ สำหรับเก็บฝุ่นส่วนตรงกลางประกอบด้วยมอเตอร์พัดลมและช่องเสียบแบตเตอรี่ด้านบน (มีฝาปิดหรือฝาปิดสำหรับแบตเตอรี่) มีมอเตอร์กระแสตรงและ พัดลมมอเตอร์นี้เชื่อมต่อโดยตรงกับแบตเตอรี่ 3V (2 * 1.5 โวลต์ AA) ผ่านสวิตช์ง่ายๆในขณะที่เรากำลังให้พลังงานหุ่นยนต์ด้วยแบตเตอรี่ 7.4V เราจะตัดการเชื่อมต่อจากแบตเตอรี่ภายในและจ่ายไฟจาก 5V แหล่งจ่ายไฟดังนั้นเราจึงได้นำชิ้นส่วนที่ไม่จำเป็นออกทั้งหมดและมีเพียงมอเตอร์ที่มีตัวยึดสองสายเท่านั้นคุณสามารถดูได้จากภาพด้านล่าง
โมดูลเซ็นเซอร์อัลตราโซนิก HC-SR04
ในการตรวจสอบอุปสรรคที่เรากำลังใช้ความนิยมเซ็นเซอร์ระยะทางอัลตราโซนิก HC-SR04หรือเราสามารถเรียกมันว่าเซ็นเซอร์หลีกเลี่ยงอุปสรรคการทำงานนั้นง่ายมากขั้นแรกโมดูลเครื่องส่งจะส่งคลื่นอัลตร้าโซนิคซึ่งเดินทางผ่านอากาศกระทบสิ่งกีดขวางและตีกลับและเครื่องรับจะรับคลื่นนั้น โดยการคำนวณเวลาด้วย Arduino เราสามารถกำหนดระยะทาง ในบทความก่อนหน้านี้เกี่ยวกับโครงการ Ultrasonic Distance Sensor ที่ใช้ Arduino เราได้กล่าวถึงหลักการทำงานของเซ็นเซอร์นี้อย่างละเอียดแล้ว คุณสามารถตรวจสอบได้ว่าต้องการทราบข้อมูลเพิ่มเติมเกี่ยวกับโมดูลเซ็นเซอร์ระยะอัลตราโซนิก HC-SR04 หรือไม่
เซ็นเซอร์พื้น (IR Sensor) สำหรับการตรวจจับบันได
ในส่วนคุณสมบัติเราได้พูดถึงคุณลักษณะที่หุ่นยนต์สามารถตรวจจับบันไดและป้องกันตัวเองจากการล้มได้ จะทำอย่างไรที่เราจะใช้เซนเซอร์ IRเราจะทำให้การเชื่อมต่อระหว่างเซ็นเซอร์อินฟราเรดและ Arduino การทำงานของIR Proximity Sensorนั้นง่ายมากมี IR LED และโฟโตไดโอด IR LED จะปล่อยแสง IR และหากมีสิ่งกีดขวางใด ๆ มาด้านหน้าของแสงที่ปล่อยออกมานี้จะสะท้อนและตรวจจับแสงสะท้อน โดยโฟโตไดโอด แต่แรงดันไฟฟ้าที่สร้างขึ้นจากการสะท้อนจะต่ำมาก เพื่อเพิ่มสิ่งนั้นเราสามารถใช้ตัวเปรียบเทียบ op-amp เราสามารถขยายและรับเอาต์พุตได้โมดูล IRมีสามพิน - Vcc กราวด์และเอาต์พุต โดยปกติแล้วเอาต์พุตจะต่ำเมื่อมีสิ่งกีดขวางอยู่ด้านหน้าเซ็นเซอร์ ดังนั้นเราจึงใช้สิ่งนี้ตรวจจับพื้นได้ หากเพียงเสี้ยววินาทีเราตรวจพบความสูงจากเซ็นเซอร์เราสามารถหยุดหุ่นยนต์หันหลังหรือทำอะไรก็ได้ที่ต้องการเพื่อป้องกันไม่ให้ตกจากบันได ในบทความก่อนหน้านี้เราได้ทำ IR Proximity Sensor Module เวอร์ชัน Breadboard และอธิบายหลักการทำงานโดยละเอียดคุณสามารถตรวจสอบได้ว่าต้องการทราบข้อมูลเพิ่มเติมเกี่ยวกับเซ็นเซอร์นี้หรือไม่
แผนภาพวงจรของหุ่นยนต์ทำความสะอาดพื้นโดยใช้ Arduino
เรามีเซ็นเซอร์อัลตราโซนิกสามตัวที่ตรวจจับสิ่งกีดขวาง ดังนั้นเราจำเป็นต้องเชื่อมต่อบริเวณทั้งหมดของเซ็นเซอร์อัลตราโซนิกและเชื่อมต่อกับกราวด์ทั่วไป นอกจากนี้เราเชื่อมต่อ Vcc ทั้งสามของเซ็นเซอร์และเชื่อมต่อกับพิน VCC ทั่วไป ต่อไปเราเชื่อมต่อทริกเกอร์และพินก้องกับพิน PWM ของ Arduino นอกจากนี้เรายังเชื่อมต่อ VCC ของโมดูล IR เข้ากับ 5V และกราวด์กับพินกราวด์ของ Arduino ขาเอาต์พุตของโมดูลเซ็นเซอร์ IR จะไปที่พินดิจิตอล D2 ของ Arduino สำหรับไดรเวอร์มอเตอร์เราเชื่อมต่อพินเปิดใช้งานทั้งสองเข้ากับ 5v และพินแรงดันไฟฟ้าของไดรเวอร์ไปที่ 5V เนื่องจากเราใช้มอเตอร์ 5 โวลต์ ในบทความก่อนหน้านี้เราได้ทำ Arduino Motor Driver Shield คุณสามารถตรวจสอบเพื่อเรียนรู้เพิ่มเติมเกี่ยวกับIC ไดรเวอร์มอเตอร์ L293Dและการดำเนินงาน Arduino, โมดูลอัลตราโซนิก, ตัวขับมอเตอร์และมอเตอร์ทำงานที่ 5 โวลต์แรงดันไฟฟ้าที่สูงขึ้นจะฆ่ามันและเรากำลังใช้แบตเตอรี่ 7.4 โวลต์เพื่อแปลงเป็น 5 โวลต์ใช้ตัวควบคุมแรงดันไฟฟ้า LM7805 เชื่อมต่อเครื่องดูดฝุ่นเข้ากับวงจรหลักโดยตรง
การสร้างวงจรสำหรับหุ่นยนต์ทำความสะอาดพื้นโดยใช้ Arduino
เพื่อให้ได้แนวคิดเกี่ยวกับหุ่นยนต์ของฉันฉันจึงค้นหาหุ่นยนต์ดูดฝุ่นทางออนไลน์และได้รูปหุ่นยนต์ทรงกลม ดังนั้นฉันจึงตัดสินใจสร้างหุ่นยนต์ทรงกลม ในการสร้างส่วนไล่ล่าและตัวหุ่นยนต์ฉันมีตัวเลือกมากมายเช่นแผ่นโฟม MDF กระดาษแข็ง ฯลฯ แต่ฉันเลือก MDF เพราะแข็งและมีคุณสมบัติกันน้ำได้ หากคุณกำลังทำสิ่งนี้คุณสามารถตัดสินใจได้ว่าจะเลือกเนื้อหาใดสำหรับบอทของคุณ
ในการสร้างหุ่นยนต์ฉันใช้แผ่น MDF จากนั้นวาดวงกลมสองวงด้วยรัศมี 8 ซม. และในวงกลมนั้นฉันวาดวงกลมอีกวงหนึ่งที่มีรัศมี 4 ซม.สำหรับติดตั้งเครื่องดูดฝุ่น จากนั้นฉันก็ตัดวงกลมออก นอกจากนี้ฉันได้ตัดและนำชิ้นส่วนที่เหมาะสมสำหรับเส้นทางล้อออกแล้ว (โปรดดูภาพเพื่อความเข้าใจที่ดีขึ้น) ในที่สุดฉันก็ทำรูเล็ก ๆ สามรูสำหรับล้อเลื่อน ขั้นตอนต่อไปคือการติดตั้งมอเตอร์บนฐานโดยใช้ตัวยึดรวมทั้งวางและยึดล้อเลื่อนให้อยู่ในตำแหน่ง หลังจากนั้นวางเซ็นเซอร์อัลตราโซนิกไว้ทางซ้ายขวาและตรงกลางของหุ่นยนต์ นอกจากนี้ให้เชื่อมต่อโมดูล IR เข้ากับด้านล่างของหุ่นยนต์ อย่าลืมเพิ่มสวิตช์ด้านนอก นั่นคือทั้งหมดที่เกี่ยวกับการสร้างหุ่นยนต์หากคุณเริ่มสับสน ณ จุดนี้คุณสามารถดูภาพต่อไปนี้
สำหรับส่วนบนสุดฉันยังวาดวงกลมขนาด 11 ซม. ในรัศมีบนแผ่นโฟมแล้วตัดมัน สำหรับระยะห่างระหว่างส่วนบนและส่วนล่างฉันได้ตัดท่อพลาสติกยาว 4 ซม. สามชิ้น หลังจากนั้นฉันติดกาวพลาสติกที่ส่วนล่างแล้วติดกาวส่วนบน คุณสามารถปิดส่วนด้านข้างของบอทด้วยพลาสติกหรือวัสดุที่คล้ายกันได้หากต้องการ
Arduino
รหัสที่สมบูรณ์สำหรับโครงการนี้จะได้รับในตอนท้ายของเอกสาร รหัส Arduino นี้คล้ายกับรหัสเซนเซอร์อัลตราโซนิกที่ใช้ Arduinoการเปลี่ยนแปลงเพียงอย่างเดียวคือการตรวจจับพื้น ในบรรทัดต่อไปนี้ฉันกำลังอธิบายวิธีการทำงานของโค้ด ในกรณีนี้เราไม่ได้ใช้ไลบรารีพิเศษใด ๆ ด้านล่างนี้เราได้อธิบายรหัสในลักษณะทีละขั้นตอน เราไม่ได้ใช้ไลบรารีพิเศษใด ๆ ในการถอดรหัสข้อมูลระยะทางจากเซ็นเซอร์ HC-SR04 เพราะมันง่ายมาก ในบรรทัดต่อไปนี้เราได้อธิบายวิธีการ ขั้นแรกเราต้องกำหนด Trigger Pin และ Echo Pin สำหรับเซ็นเซอร์ระยะอัลตราโซนิกทั้งสามตัวที่เชื่อมต่อกับบอร์ด Arduino ในโครงการนี้เรามีพิน Echo สามพินและหมุดทริกเกอร์สามตัว โปรดทราบว่า 1 คือเซ็นเซอร์ด้านซ้าย 2 คือเซ็นเซอร์ด้านหน้าและ 3 คือเซ็นเซอร์ด้านขวา
const int trigPin1 = 3; const int echoPin1 = 5; const int trigPin2 = 6; const int echoPin2 = 9; const int trigPin3 = 10; const int echoPin3 = 11; int irpin = 2;
จากนั้นเรากำหนดตัวแปรสำหรับระยะทางซึ่งทั้งหมดเป็นตัวแปรประเภท (int) และสำหรับระยะเวลาเราเลือกใช้ (long) อีกครั้งเรามีสามคน นอกจากนี้ฉันได้กำหนดจำนวนเต็มสำหรับจัดเก็บสถานะของการเคลื่อนไหวเราจะพูดถึงมันในภายหลังในส่วนนี้
ระยะเวลานาน 1; ระยะเวลานาน 2; ระยะเวลานาน 3; int ระยะทางซ้าย; int ระยะทางด้านหน้า; int ระยะทาง; int a = 0;
ถัดไปในส่วนของการตั้งค่าเราต้องทำให้ทุกหมุดมุมมองที่เป็น input หรือ output ใช้ pinModes () ฟังก์ชั่น ในการส่งคลื่นอัลตราโซนิกจากโมดูลที่เราต้องเปิดใช้งานขาไกสูงเช่นทุกหมุดไกควรกำหนดเป็น เอาท์พุทและจะได้รับเสียงสะท้อนที่เราต้องอ่านสถานะของก้องหมุดดังนั้นสิ่งที่สะท้อนหมุดควรกำหนดเป็น INPUTนอกจากนี้เรายังเปิดใช้งานจอภาพแบบอนุกรมเพื่อแก้ไขปัญหา ในการอ่านสถานะของโมดูล IR ฉันได้กำหนดirpinเป็นอินพุต
pinMode (trigPin1, เอาท์พุท); pinMode (trigPin2, เอาท์พุท); pinMode (trigPin3, เอาท์พุท); pinMode (echoPin1, INPUT); pinMode (echoPin2, INPUT); pinMode (echoPin3, INPUT); pinMode (irpin, อินพุต);
และหมุดดิจิตอลเหล่านี้ถูกกำหนดให้เป็นเอาต์พุตสำหรับอินพุตของไดรเวอร์มอเตอร์
PinMode (4, เอาท์พุท); PinMode (7, เอาท์พุท); PinMode (8, เอาท์พุท); PinMode (12, เอาท์พุท);
ในลูปหลักเรามีสามส่วนสำหรับเซ็นเซอร์สามตัว ทุกส่วนทำงานเหมือนกัน แต่แต่ละส่วนใช้เซ็นเซอร์ต่างกัน ในส่วนนี้เราจะอ่านระยะสิ่งกีดขวางจากเซ็นเซอร์แต่ละตัวและเก็บไว้ในจำนวนเต็มที่กำหนดไว้ ในการอ่านระยะทางก่อนอื่นเราต้องตรวจสอบให้แน่ใจว่าหมุดไกนั้นชัดเจนดังนั้นเราต้องตั้งค่าขาไกเป็น LOW เป็น เวลา 2 วินาที ตอนนี้สำหรับการสร้างคลื่นอัลตร้าโซนิคเราจำเป็นต้องหมุนขาไก สูงเป็น เวลา 10 วินาที สิ่งนี้จะส่งเสียงอัลตราโซนิกและด้วยความช่วยเหลือของ ฟังก์ชัน pulseIn () เราสามารถอ่านเวลาเดินทางและเก็บค่านั้นไว้ในตัวแปร " ระยะเวลา " ฟังก์ชั่นนี้มี 2 พารามิเตอร์ตัวแรกคือชื่อของพินสะท้อนและสำหรับอันที่สองคุณสามารถเขียนได้HIGHหรือ LOW HIGH หมายความว่า ฟังก์ชัน pulseIn () จะรอให้พินไปที่ HIGH ซึ่ง เกิดจากคลื่นเสียงที่ตีกลับและมันจะเริ่มนับจากนั้นจะรอให้พินไป LOW เมื่อคลื่นเสียงสิ้นสุดซึ่งจะหยุดการนับ ฟังก์ชันนี้ให้ความยาวของพัลส์เป็นหน่วยไมโครวินาที สำหรับการคำนวณระยะทางเราจะคูณระยะเวลาด้วย 0.034 (ความเร็วของเสียงในอากาศ 340m / s) และหารด้วย 2 (เนื่องจากการเดินทางไปมาของคลื่นเสียง) สุดท้ายเราจัดเก็บระยะห่างของเซ็นเซอร์แต่ละตัวเป็นจำนวนเต็มที่สอดคล้องกัน
digitalWrite (trigPin1, LOW); delayMicroseconds (2); digitalWrite (trigPin1, สูง); delayMicroseconds (10); digitalWrite (trigPin1, LOW); ระยะเวลา 1 = pulseIn (echoPin1, สูง); distanceleft = ระยะเวลา 1 * 0.034 / 2;
หลังจากได้ระยะห่างจากเซ็นเซอร์แต่ละตัวเราสามารถควบคุมมอเตอร์ได้ด้วย คำสั่ง if ดังนั้นเราจึงควบคุมการเคลื่อนไหวของหุ่นยนต์ นี่เป็นเรื่องง่ายมากอันดับแรกเราให้ค่าระยะสิ่งกีดขวางในกรณีนี้คือ 15 ซม. (เปลี่ยนค่านี้ได้ตามต้องการ) จากนั้นเราก็ให้เงื่อนไขตามค่านั้น ตัวอย่างเช่นเมื่อมีสิ่งกีดขวางอยู่ด้านหน้าเซ็นเซอร์ด้านซ้าย (นั่นหมายถึงระยะห่างของเซ็นเซอร์ด้านซ้ายควรต่ำกว่าหรือเท่ากับ 15 ซม.) และอีกสองระยะจะสูง (นั่นหมายความว่าไม่มีสิ่งกีดขวางอยู่ด้านหน้าเซ็นเซอร์นั้น) จากนั้นด้วยความช่วยเหลือของฟังก์ชั่นการเขียนแบบดิจิทัลเราสามารถขับเคลื่อนมอเตอร์ไปทางขวาได้ ต่อมาฉันตรวจสอบสถานะของเซ็นเซอร์ IR หากหุ่นยนต์อยู่บนพื้นค่าของขา IR จะเป็นLOWและถ้าไม่เช่นนั้นค่าจะเป็นสูง. แล้วฉันจะเก็บไว้ในค่าที่ตัวแปร int s เรากำลังจะควบคุมหุ่นยนต์ตามสถานะนี้
ส่วนนี้ของรหัสใช้เพื่อเคลื่อนหุ่นยนต์ไปข้างหน้าและข้างหลัง:
ถ้า (s == สูง) { digitalWrite (4, LOW); digitalWrite (7, สูง); digitalWrite (8, ต่ำ); digitalWrite (12, สูง); ล่าช้า (1,000); ก = 1; }
แต่มีปัญหากับวิธีนี้เมื่อมอเตอร์เคลื่อนที่ถอยหลังพื้นจะกลับมาและบอทจะเดินหน้าและจะทำซ้ำทำให้บอทติด เพื่อเอาชนะสิ่งนั้นเราเก็บค่า (1) ไว้ในint หลังจากที่ไม่มีพื้นความเข้าใจ นอกจากนี้เรายังตรวจสอบเงื่อนไขนี้สำหรับการเคลื่อนไหวอื่น ๆ
หลังจากตรวจพบว่าไม่มีพื้นแล้วหุ่นยนต์จะไม่เคลื่อนที่ไปข้างหน้า แต่มันจะเลื่อนไปทางซ้ายด้วยวิธีนี้เราสามารถหลีกเลี่ยงปัญหาได้
ถ้า ((a == 0) && (s == LOW) && (distanceleft <= 15 && distancefront> 15 && ระยะห่าง <= 15) - (a == 0) && (s == LOW) && (distanceleft> 15 && distancefront> 15 && ระยะห่าง> 15))
ในเงื่อนไขข้างต้น. ขั้นแรกหุ่นยนต์จะตรวจสอบสถานะพื้นและค่าจำนวนเต็ม บอทจะเดินหน้าต่อเมื่อเงื่อนไขทั้งหมดเป็นที่พอใจ
ตอนนี้เราสามารถเขียนคำสั่งสำหรับไดรเวอร์มอเตอร์ได้แล้ว วิธีนี้จะขับเคลื่อนมอเตอร์ด้านขวาไปข้างหลังและมอเตอร์ด้านซ้ายไปข้างหน้าซึ่งจะทำให้หุ่นยนต์หมุนไปทางขวา
ส่วนนี้ของรหัสใช้เพื่อเลื่อนหุ่นยนต์ไปทางขวา:
digitalWrite (4, สูง); digitalWrite (7, ต่ำ); digitalWrite (8, สูง); digitalWrite (12, ต่ำ);
หากบอทตรวจพบว่าไม่มีพื้นค่าจะเปลี่ยนเป็น 1 และบอทจะย้ายไปทางซ้าย หลังจากเลี้ยวซ้ายค่าของ "a" จะเปลี่ยนเป็น 0 จาก 1
ถ้า ((a == 1) && (s == LOW) - (s == LOW) && (distanceleft <= 15 && distancefront <= 15 && distanceright> 15) - (s == LOW) && (distanceleft <= 15 && distancefront <= 15 && ระยะห่าง> 15) - (s == LOW) && (distanceleft <= 15 && distancefront> 15 && distanceright> 15) - (distanceleft <= 15 && distancefront> 15 && distanceright> 15)) { digitalWrite (4, สูง); digitalWrite (7, ต่ำ); digitalWrite (8, ต่ำ); digitalWrite (12, สูง); ล่าช้า (100); ก = 0; }
ส่วนนี้ของรหัสใช้เพื่อเลื่อนหุ่นยนต์ไปทางซ้าย:
ถ้า ((s == LOW) && (distanceleft> 15 && distancefront <= 15 && ระยะห่าง <= 15) - (s == LOW) && (distanceleft> 15 && distancefront> 15 && ระยะห่าง <= 15) - (s == LOW) && (distanceleft> 15 && distancefront <= 15 && distanceright> 15)) { digitalWrite (4, LOW); digitalWrite (7, สูง); digitalWrite (8, สูง); digitalWrite (12, ต่ำ); }
นั่นคือการสร้างหุ่นยนต์ดูดฝุ่นอัจฉริยะที่ใช้ Arduino การทำงานทั้งหมดของโครงการสามารถพบได้ในวิดีโอที่เชื่อมโยงที่ด้านล่างของหน้านี้ หากคุณมีคำถามใด ๆ แสดงความคิดเห็นด้านล่าง