สวัสดีทุกคน พี่ชื่อ Harji Nagi ตอนนี้พี่เป็นนักศึกษาชั้นปีที่ 2 สาขาวิศวกรรมอิเล็กทรอนิกส์และสื่อสาร จากสถาบัน Pranveer Singh Institute Of Technology, Kanpur(UP) พี่สนใจเรื่องหุ่นยนต์, Arduino, ปัญญาประดิษฐ์ และอิเล็กทรอนิกส์อนาล็อกเป็นพิเศษ
1)ภาพรวมโปรเจคนี้:-
วันนี้พี่ทำ "รถดับเพลิง" ที่ควบคุมผ่านบลูทูธ โดยใช้ Arduino Uno, Motor Driver Shield, โมดูลบลูทูธ HC-05 และโมดูลรีเลย์ พี่ทำขึ้นจากประสบการณ์และความรู้ที่มีเกี่ยวกับ Arduino นะ รถคันนี้สามารถควบคุมผ่านมือถือได้เลยผ่านโมดูลบลูทูธ และสามารถฉีดน้ำดับไฟได้ด้วย แถมยังมีแขนกลสำหรับควบคุมทิศทางของท่อน้ำให้หมุนได้รอบทิศ 360 องศาอีกต่างหาก งานนี้จัดไปวัยรุ่น!
อุปกรณ์ที่ต้องใช้มีดังนี้:
1)Motor Driver Shield

มอเตอร์ชิลด์ตัวนี้มี 2 ช่อง (Channel) ซึ่งใช้ควบคุมมอเตอร์กระแสตรง (DC Motor) ได้ 2 ตัว หรือมอเตอร์สเต็ปเปอร์ (Stepper Motor) 1 ตัว โดยการสั่งงานผ่านพินต่างๆ เราสามารถเลือกช่องมอเตอร์ กำหนดทิศทางการหมุน ควบคุมความเร็วด้วย PWM, เริ่ม/หยุดมอเตอร์ และตรวจสอบกระแสที่มอเตอร์แต่ละช่องใช้ได้
อยากรู้รายละเอียดเพิ่มเติมก็ลองไปหาอ่านดูได้นะน้อง
2)Arduino Uno
Arduino คือแพลตฟอร์มอิเล็กทรอนิกส์โอเพ่นซอร์สที่ใช้ฮาร์ดแวร์และซอฟต์แวร์ที่ใช้ง่าย บอร์ด Arduino สามารถอ่านค่าอินพุตต่างๆ เช่น แสงบนเซนเซอร์ การกดปุ่ม หรือแม้แต่ข้อความ แล้วแปลงเป็นเอาต์พุต เช่น เปิดมอเตอร์, จุดไฟ LED เป็นต้น

3)Relay Module

โมดูลรีเลย์เป็นอุปกรณ์ฮาร์ดแวร์แยกที่ใช้สำหรับสวิตช์อุปกรณ์จากระยะไกล ด้วยเจ้านี่เราสามารถควบคุมอุปกรณ์ผ่านเครือข่ายหรืออินเทอร์เน็ตได้เลย
4)Car chassis ( 4*BO Motor)

น้องๆ จะทำโครงรถ (Chassis) เองจากกระดาษลังก็ได้นะ ง่ายๆ
5)One 3.3-5 V Submersible Water Pump with 30cm pipe

6)10 RPM DC Metal gear motor

7)Hc-05 Bluetooth Module

โมดูลบลูทูธ HC-05 เป็นโมดูลที่ใช้ง่าย ใช้โปรโตคอล SPP (Serial Port Protocol) ออกแบบมาเพื่อสร้างการเชื่อมต่อแบบอนุกรมไร้สายแบบโปร่งใส (Transparent) สะดวกมาก... HC-05 นี้สามารถสลับโหมดระหว่าง Master กับ Slave ได้ หมายความว่ามันสามารถรับและส่งข้อมูลได้ทั้งคู่ ห้ามช็อตนะตัวนี้!
ถ้าอยากรู้รายละเอียดเพิ่มเติม ไปหาอ่านเองนะวัยรุ่น!
8)สายจัมเปอร์ (Jumper Wires)

9)แบตเตอรี่ 8V, 1.5 แอมป์ สำหรับจ่ายไฟให้ Arduino Uno และ Motor Driver Shield

10)แบตเตอรี่ 4V, 1 แอมป์ สำหรับปั๊มน้ำ หรือจะใช้ IC 7805 Voltage regulator แทนก็ได้

LM7805 คือ IC เรกูเลเตอร์ไฟที่จ่ายไฟออกมา +5 โวลต์ เหมือน IC เรกูเลเตอร์ทั่วๆ ไป มันมีสามขา: ขาเข้าไฟ DC, ขากราวด์, และขาออกที่จ่ายไฟ +5V ออกมา
อยากรู้ลึกกว่านี้ ไปเสิร์ชหาอ่านเองนะน้อง!
อุปกรณ์อื่นๆ ที่ต้องใช้:
1)หัวแร้งบัดกรี (Soldering Iron)
2)ปืนกาวร้อน (Glue Gun)
3)สว่าน (Drill Machine)
แทนที่จะใช้เบรดบอร์ด พี่ใช้เพิร์ฟบอร์ดเล็กๆ สำหรับต่อบัสไฟบวกและลบนะ งานจะได้แน่นหนา
2) แผนภาพการต่อสาย:-

เริ่มจากบัดกรีสายไฟ 2 เส้นเข้ากับมอเตอร์ BO เสร็จแล้วก็ต่อปลายสายอีกข้างเข้ากับขาซ็อกเก็ต 2 รูบน Motor Driver Shield ต่อแบบไหนก่อนหลังก็ได้ ไม่มีผล จัดไป! ทำแบบเดียวกันกับมอเตอร์ตัวที่สองด้วย
ต่อสายตามแผนภาพวงจรให้เป๊ะๆ นะ
เอาแบตเตอรี่ 8V, 1.5A มาต่อกับขา M+ และขากราวด์ของ Motor Driver Shield อันนี้จะใช้เพื่อสร้างกราวด์ร่วมกับ Arduino ในขั้นตอนต่อไป
3)การต่อปั๊มน้ำกับรีเลย์:-

จะใช้โมดูลรีเลย์สำเร็จรูปหรือจะสร้างโมดูลรีเลย์เองก็ได้ ถ้าใช้โมดูลสำเร็จรูป ให้ต่อสายที่ขา NC กับขา Common (COM) สำหรับไฟเลี้ยง จะใช้ IC 7805 เปลี่ยนไฟ 8V DC เป็น 5V DC หรือจะใช้ไฟเลี้ยงภายนอกเป็นแบตเตอรี่ 4V, 1A ก็ได้ แต่ห้ามใช้เกิน 6V นะ เดี๋ยวปั๊มน้ำ 5V ไหม้เอา!
ถ้าอยากได้แรงดันน้ำสูงขึ้น ก็มีปั๊มน้ำแบบ 12V ขาย แต่ต้องเปลี่ยนวงจรและแหล่งจ่ายไฟให้เหมาะสมด้วยล่ะ
ทำตามแผนภาพวงจรให้ครบทุกขั้นตอน สู้งานนะน้อง!
4)เขียนโค้ด (Coding):-
ต้องเพิ่มไลบรารีเหล่านี้ในโปรเจค:
1)
2)
หลังจากโหลดไฟล์ zip มาแล้ว ให้เพิ่มไลบรารีจากไฟล์ zip ลงใน Arduino Sketch
และก่อนอัปโหลดโค้ด ต้องถอดสาย Tx กับ Rx ของโมดูลบลูทูธ HC-05 ออกก่อนนะ ไม่งั้น IC ของ HC-05 อาจพังได้!
พออัปโหลดโค้ดเสร็จแล้ว ค่อยเสียบสาย Tx และ Rx ของ HC-05 กลับเข้าไปที่ Motor Driver Shield อีกที
5)ตั้งค่าแอปพลิเคชัน:
โหลดแอปและติดตั้งลงในอุปกรณ์ Android ของคุณ
หลังจากติดตั้งแอปแล้ว ให้จับคู่กับ HC-05 และใส่พาสเวิร์ด (ส่วนใหญ่เป็น 0000 หรือ 1234) หลังจากจับคู่แล้ว ให้ตั้งค่าปุ่มในแอปให้ตรงกับโค้ดที่เราเขียนไว้
รายละเอียดทางเทคนิคแบบจัดเต็ม
โปรเจคนี้จะเจ๋งขึ้นอีกขั้นถ้าเราปรับให้มันเป็นหุ่นยนต์ดับเพลิงอัตโนมัติที่ล่าไฟได้เองเลย! ไอเดียหลักคือใช้เซ็นเซอร์หลายตัวเพื่อตรวจจับและหาตำแหน่งไฟ จากนั้นบังคับให้หุ่นยนต์เคลื่อนที่ไปหาและปล่อยระบบดับเพลิงโดยอัตโนมัติ
อาร์เรย์เซ็นเซอร์เปลวไฟหลายช่อง (Spectral Vectoring)
ถ้าจะให้มัน "ล่า" ไฟได้เอง เซ็นเซอร์ตัวเดียวไม่พอแน่นอน หุ่นยนต์ต้องใช้เซ็นเซอร์แบบเรียงเป็นแถวเพื่อกวาดพื้นที่
- บอร์ดเซ็นเซอร์เปลวไฟ 5 ช่อง จะสามารถครอบคลุมมุมมอง 120 องศาด้านหน้าหุ่นยนต์ โดยแต่ละเซ็นเซอร์จะจับความยาวคลื่น 700-1000nm ของเปลวไฟ
- Arduino จะอ่านค่าจาก IR photodiode ทั้ง 5 ตัวแบบ analog พร้อมกัน
- โค้ด C++ จะทำการวิเคราะห์เวกเตอร์จากค่าที่อ่านได้ ตัวอย่างเช่น ถ้าเซ็นเซอร์ซ้ายสุดอ่านค่าได้สูง แต่เซ็นเซอร์กลางอ่านได้สูงกว่า ระบบก็จะคำนวณทิศทางของไฟและสั่งให้มอเตอร์ขับเคลื่อนหมุนฐานจนกว่าเซ็นเซอร์กลางจะได้ค่าสูงสุด นั่นคือล็อกเป้าหรณ์ได้แล้วนั่นเอง!
การเข้าใกล้และดับไฟแบบอัตโนมัติ
หุ่นยนต์เราไม่สามารถขับชนไฟตรงๆ ได้หรอกนะ ต้องใช้โมดูล HC-SR04 Ultrasonic Sonar วัดระยะห่างจากสิ่งกีดขวาง (หรือตำแหน่งไฟ) โค้ดจะสั่งให้มอเตอร์หยุดที่ระยะปลอดภัย (เช่น 30 ซม.) จากนั้นจึงสั่งให้ปั๊มน้ำทำงานผ่านรีเลย์เพื่อฉีดน้ำดับไฟแบบควบคุมได้
อัพเกรดชิ้นส่วนสำหรับเวอร์ชันอัตโนมัติเต็มรูปแบบ
ถ้าอยากได้เวอร์ชันอัตโนมัติสมบูรณ์แบบและแรงขึ้น ให้ลองอัพเกรดพวกนี้ดู:
- Arduino Mega 2560: จำเป็นเพราะต้องใช้พิน I/O เยอะมากเพื่อรันเซ็นเซอร์ IR 5 ตัว, มอเตอร์ 4 ตัว, โซนาร์ และอุปกรณ์อื่นๆ พร้อมกัน
- L298N Motor Driver Interface Board: ไดรเวอร์มอเตอร์ที่แข็งแรงและใช้กันทั่วไป สามารถจ่ายกระแสให้มอเตอร์ DC สี่ตัวได้สบายๆ
- ปั๊มน้ำ DC แรงดันสูง 12V: สำหรับพลังดับไฟที่มากขึ้น คู่กับท่อซิลิโคน
- แบตเตอรี่ LiPo ขนาดใหญ่ 11.1V 3S: มอเตอร์และปั๊มน้ำแรงสูงจะกินกระแสมาก แบตเตอรี่ AA ทั่วไปจ่ายไม่ไหวแน่ ห้ามช็อตนะตัวนี้!
สรุป
เราต้องการมอเตอร์ 4 ตัวสำหรับรถ, มอเตอร์อีก 1 ตัวสำหรับควบคุมทิศทางของท่อ และปั๊มน้ำ 1 ตัว ต้องมีมอเตอร์ไดรเวอร์ชิลด์เพื่อขับมอเตอร์ และที่ขาดไม่ได้คือสมอง ซึ่งในที่นี้คือ Arduino เพื่อสั่งการว่าหุ่นยนต์ต้องเคลื่อนที่ยังไง เราสามารถใช้มือถือเป็นรีโมทคอนโทรลรถ RC ได้ แต่ถ้าอยากใช้คอมพิวเตอร์ล่ะก็ จับคู่คอมกับโมดูลบลูทูธ แล้วไปที่การตั้งค่าบลูทูธ (อยู่ท้ายหน้าตั้งค่าบลูทูธ) ดูว่ามันเชื่อมต่อกับพอร์ตไหน (คำใบ้: มันเป็นพอร์ต Outgoing และมีชื่อโมดูลบลูทูธของเรา) จากนั้นไปที่ Tools > Serial Ports แล้วเปลี่ยน COM เป็นพอร์ตที่ถูกต้อง เปิด Serial Monitor ขึ้นมา แล้วพิมพ์ 'F' เพื่อให้หุ่นยนต์เดินหน้า, 'B' ถอยหลัง, 'L' เลี้ยวซ้าย, 'R' เลี้ยวขวา เป็นต้น สำหรับควบคุมปั๊มน้ำ สามารถใช้สวิตช์เปิดปิดในแอปได้ ส่วนการปรับทิศทางท่อน้ำ ใช้ปุ่ม 'X' และ 'Y' สำหรับซ้ายและขวา ถ้าน้องทำมาถึงตรงนี้ได้แล้ว เก่งมาก! ไปสนุกกับรถดับเพลิงของน้องได้เลย สู้งานนะน้อง!
โปรเจคอื่นๆ ที่น่าสนใจ:
1)รถควบคุมด้วยบลูทูธ
2)เครื่องติดตามกิจกรรมอัจฉริยะ
3)ระบบไฟ LED เปิดด้วยตบมือ 2 ครั้ง
4)โวลต์มิเตอร์แสดงผล 4 ช่อง
อย่าลืมกดไลค์และติดตามช่องด้วยนะ จะมีโปรเจคเจ๋งๆ มาให้ดูอีกเรื่อยๆ!