CrowBot BOLT เป็น smart robot car หรือ หุ่นยนต์รถอัจฉริยะ ที่ใช้ไมโครคอนโทรลเลอร์ไร้สาย ESP32 และออกแบบมาเพื่อการศึกษาเหมาะกับการเรียนรู้ทักษะด้านหุ่นยนต์ด้วยการเขียนโปรแกรม visual programming, Arduino หรือ MicroPython
Elecrow ได้ส่งชุดคิท “CrowBot BOLT” ให้ฉันเพื่อประเมินผล ดังนั้นฉันจะดูรายละเอียดฮาร์ดแวร์, แสดงวิธีประกอบ, แสดงคุณสมบัติของเฟิร์มแวร์ในหุ่นยนต์ และสาธิตวิธีติดตั้งโปรแกรมหุ่นยนต์ด้วยการเขียนโปรแกรม visual programming, Arduino และ MicroPython โดยใช้ตัวอย่างโค้ดที่ให้มาบางส่วน
แกะกล่อง CrowBot BOLT
แพ็คเกจนี้แสดงรายการไฮไลท์ด้วยเนื้อหาการเรียนรู้ 16 คอร์ส การรองรับแพลตฟอร์มการเขียนโปรแกรมที่หลากหลาย, การปรับขนาดให้เหมาะสมด้วยคอนเนกเตอร์ Grove และจอยสติ๊กที่สามารถติดตั้งโปรแกรมได้ด้วย
CrowBot BOLT มาเป็นชุด ซึ่งจะต้องทำการประกอบหุ่นยนต์ แต่ไม่จำเป็นต้องบัดกรี (ในกรณีปกติ)
คู่มือได้อธิบายวิธีการประกอบหุ่นยนต์ และใช้รีโมทคอนโทรลเพื่อควบคุมหุ่นยนต์ด้วยเฟิร์มแวร์ค่าเริ่มต้น/โรงงาน
อีกด้านหนึ่งของแผ่นคู่มือ คือสนาม Tracking Map เพื่อให้หุ่นยนต์เดินตามเส้นได้
การประกอบหุ่นยนต์ CrowBot BOLT
เริ่มจากเราจะต้องเชื่อมต่อที่ใส่แบตเตอรี่ (ถ่าน AAA 4 ก้อน) กับเมนบอร์ดที่ใช้โมดูลไร้สาย ESP32-WROVER-B โดยใช้เชื่อมต่อกับขั้วต่อแบตเตอรี่
เมื่อเสร็จแล้ว เราจะต้องประกอบแผ่นอะคริลิกและยึดด้วยสกรูที่ให้มา
จากนั้นเราก็สามารถใส่ล้อทั้งสองเข้าไปในแกนของมอเตอร์ได้…
… เสียบ Ultrasonic sensor ลงใน pin header-4 ขา
และนั่นคือ ด้านหน้าของหุ่นยนต์มี Ultrasonic sensor, ไฟ LED 2 ดวง, ตัวรับสัญญาณแสงอินฟราเรด (IR receiver) และเซ็นเซอร์ติดตามเส้น (line follower sensors) 2 ตัวอยู่ใต้บอร์ด
ด้านหลังของรถมีปุ่มเปิด/ปิด ไฟ LED และพอร์ต USB Type-C สำหรับเขียนโปรแกรม
เราจะพบล้อที่สามอยู่ข้างใต้ พร้อมกับ DIP switch เพื่อเปิด/ปิด WiFi และ/หรือ Bluetooth และตัวเชื่อมต่อสองพอร์ต Grove เพื่อเพิ่มโมดูล I2C หรือ analog
จอยสติ๊กยังมาพร้อมกับเมนบอร์ดที่ใช้โมดูลไร้สาย ESP32-C3-WROOM-02, ปุ่ม, จอ OLED และแผ่นหน้าและหลัง, ไอคอน “open-source hardware” สามารถเห็นได้ทั้งบน PCB บอร์ดและจอยสติ๊ก, Eagle PCB และ PDF schematics และ PCB Layout พร้อมให้ดาวน์โหลดจากเพจร้านค้าที่ link ท้ายของบทความนี้
การประกอบนั้นค่อนข้างง่าย แต่น่าเสียดที่จอแสดงผลใช้ไม่ได้ น่าจะแตกระหว่างขนส่ง
จอยสติ๊กใช้พลังงานจากถ่าน AAA 2 ก้อน ดังนั้นคุณจะต้องเตรียมถ่าน AAA ทั้งหมด 6 ก้อน (หุ่นยนต์ 4 ก้อน, จอยสติ๊ก 2 ก้อน) และถ่านกระดุม CR2025 1 ก้อนสำหรับรีโมทคอนโทรล
เมื่อประกอบเสร็จแล้ว เราจะเห็นหุ่นยนต์รถ CrowBot BOLT, จอยสติ๊ก CrowBot, รีโมทคอนโทรล, สาย Grove สองเส้น, ไขควง และสาย USB-A to USB-C สำหรับเขียนโปรแกรม
หุ่นยนต์ Smart Car พร้อมเฟิร์มแวร์จากโรงงาน
หุ่นยนต์พร้อมใช้งานเมื่อการประกอบเสร็จสมบูรณ์ คุณไม่จำเป็นต้องเขียนโปรแกรมใดๆ เลย เพื่อทดลองใช้งานด้วยการสาธิตต่างๆ ที่รวมอยู่ในเฟิร์มแวร์ ได้แก่ การหลีกเลี่ยงสิ่งกีดขวาง, เดินตามเส้น, การเล่นเพลง, การติดตามแสง และ การสาธิตแบบ 3-in-1 ที่รวมการเล่นเพลง, เดินตามเส้น และการหลีกเลี่ยงสิ่งกีดขวาง คุณเพียงแค่กดปุ่มบนรีโมทคอนโทรล ตามที่อธิบายไว้ในคู่มือผู้ใช้ที่ให้มา คุณสามารถตรวจสอบการสาธิตทั้งห้าตามวิดีโอด้านล่างนี้
นอกจากนี้ยังสามารถควบคุม CrowBot BOLT ด้วยตนเองได้ด้วยปุ่มลูกศร และใช้ buzzer หรือเปิดและปิดไฟ หมายเหตุการสาธิตการเดินตามเส้นใช้งานได้เฉพาะในอาคารเท่านั้น, ฉันลองหุ่นยนต์ที่ระเบียงที่มีแสงแดด การทดสอบหลีกเลี่ยงสิ่งกีดขวางมันจะเดินกลับ , Photodiodes ทำงานกับแสงไฟเฉพาะที่กำหนดเท่านั้น
ฉันลองใช้จอยสติ๊กกับเฟิร์มแวร์เริ่มต้นสามารถเชื่อมต่อผ่าน Bluetooth ได้ แต่ไม่สามารถใช้งานได้ แม้ว่าฉันจะเปิดการใช้งาน Bluetooth ด้วย DIP switch แล้ว แต่นั่นเป็นเพราะตัวเก็บประจุไฟฟ้า และบริษัทแนะนำให้ลูกค้าบัดกรีตัวเก็บประจุตัวอื่นเพื่อให้มันใช้งานได้…บริษัทควรปรับปรุงบอร์ดและไม่ใช่ผลักดันให้กับลูกค้า…
การเขียนโปรแกรม CrowBot BOLT
บริษัทมีรายละเอียดเพิ่มเติมที่ wiki เพื่อช่วยคนเริ่มต้นเขียนโปรแกรม หรือสามารถค้นหาโค้ดทั้งหมดรวมถึงเฟิร์มแวร์จากโรงงาน และการเขียนโปรแกรม Letscode visual programming, Arduino หรือ MicroPython lessons ในไฟล์ zip
การเขียนโปรแกรม Letscode visual programming
ฉันเคยใช้โปรแกรม Letscode ตอนรีวิวแล็ปท็อป CrowPi Lและ CrowPi 2 ที่ใช้ Raspberry Pi 4 SBC แต่ฉันไม่มีโปรแกรมี้แล้ว ดังนั้นฉันต้องดาวน์โหลดมาติดตั้งในคอมพิวเตอร์ น่าเสียดายที่โปรแกรมนี้ใช้ได้เฉพาะกับ Windows และ macOS หรือ Raspberry Pi และฉันมีแล็ปท็อปที่ใช้ Ubuntu 20.04 ฉันรู้สึกแปลกใจที่สามารถทำงานบน Linux สำหรับ Arm (Raspberry Pi) แต่ไม่สามารถทำงานบน Linux x86-64
ดังนั้นฉันจึงใช้มินิพีซี Windows 11 แทนเพื่อติดตั้ง Letscode
จากนั้นฉันโหลดโปรเจ็กต์ตัวอย่าง Activate Bolt.sb3 จากโค้ดบทเรียน แล้วคลิกที่ปุ่ม Install Driver ในเมนูด้านบนเพื่อติดตั้ง “Arduino USB driver” ฉันยังเชื่อมต่อหุ่นยนต์ Smart Car Crowbot BOLT กับมินิพีซีด้วยสาย USB และเปิดใช้งาน และพอร์ต COM3 แสดงขึ้น
สุดท้ายฉันก็คลิกที่ไอคอน Upload code เพื่อแฟลชเฟิร์มแวร์ไปยังหุ่นยนต์ และกดปุ่ม Reset หลังจากเสร็จสิ้นการติดตั้ง มีข้อความ “Hello World”
ตัวอย่างแสดงให้เห็นว่าเราสามารถตั้งโปรแกรมหุ่นยนต์ได้ แต่เราไม่ได้ใช้มอเตอร์ไฟฟ้าของหุ่นยนต์ บทเรียนมีทั้งหมด 16 lessons:
เราจะเลือกไปที่บทเรียนที่ 3: Dreamy Dance Move เนื่องจากมีบล็อกสำหรับขับเคลื่อนมอเตอร์
ฉันสามารถโหลดโปรแกรมไปยังหุ่นยนต์ได้เหมือนเดิม แต่การวนซ้ำ (loop) จะถูกเรียกใช้ก็ต่อเมื่อพิน 18 ถูกตั้งค่าเป็นศูนย์ ไม่มีคำอธิบายในโค้ด หรือเอกสารประกอบในไฟล์ ZIP ที่มีโค้ด และฉันต้องเปิดแผนผังเพื่อหาว่าพิน 18 เชื่อมต่อกับปุ่มผู้ใช้ และเมื่อฉันกดเข้าไปหุ่นยนต์จะ “เต้น” เบาๆ โต๊ะทำงานด้วยเสียงเบาจากบัซเบอร์ ในตอนแรกฉันไม่ประทับใจที่ต้องเปิดแผนผังเพื่อค้นหา แต่พอฉันสังเกตเห็นว่า Elecrow เขียน “คู่มือสำหรับผู้เริ่มต้น“สำหรับ Letscode บน Crowbot BOLT
นอกจากนี้ยังอธิบายว่าปุ่มผู้ใช้เชื่อมต่อกับ GPIO 18 ในบทเรียนที่ 2 ดังนั้นทุกสิ่งก็ดีทั้งหมด คงจะดีไม่น้อยหากรวม PDF เข้ากับ Code เหมือนที่ทำกับ Arduino IDE
การเขียนโปรแกรม Arduino
มี 16 บทเรียนสำหรับ Arduino รวมถึงคู่มือผู้ใช้และไลบรารี่
ฉันจะกลับไปที่โน็ตบุ๊คเพื่อรัน Ubuntu 20.04 เพื่อติดตั้ง Arduino 2.0.2 IDE ล่าสุด เอกสารประกอบบอกให้เราไปที่ File ->Preferences เพื่อเพิ่มไฟล์ JSON ต่อไปนี้ในฟิลด์ boards manager URLs:
1 2 |
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_dev_index.json https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json |
เพื่อติดตั้งการรองรับบอร์ด ESP32 แต่มันกลายเป็นถูกติดตั้งบนระบบของฉันแล้ว แม้ว่าฉันจะไม่มีไฟล์ JSON ด้านบน มันติดอยู่ที่เวอร์ชัน 2.0.0 แต่อัปเดตไม่ได้ ดังนั้นฉันจึงถอนการติดตั้ง เพิ่มสองบรรทัดด้านบน และติดตั้งเวอร์ชันล่าสุด 2.0.5 ซึ่งรองรับโมดูล ESP32-WROOM-DA สำหรับหุ่นยนต์ .
เริ่มด้วยโค้ด “Activate Bolt” หลังจากเลือกโมดูล ESP32-WROOM-DA และ /dev/ttyUSB0 ใน IDE:
หลังจากที่เรากดปุ่ม Reset เพื่อรีสตาร์ทบอร์ดใหม่อีกครั้ง เปิดเมนูดูข้อมูลสถานะของบอร์ด (serial monitor) ใน Arduino IDE และกดปุ่มผู้ใช้ เราจะได้ผลลัพธ์ของข้อความ “Hello World” หรือ “Hello, master” ตามที่คาดไว้
ตอนนี้มาเปิดตัวอย่างที่ควบคุมมอเตอร์ของหุ่นยนต์ smart car คือ 8.Obstacle_Avoidance_Robot.ino :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
int distance = 0, Ultrasonic_Pin = 27, Button_pin = 18; void setup() { for (int i = 12; i <= 15; i++) { ledcSetup(i, 255, 8); ledcAttachPin(i, i); } while (digitalRead(Button_pin) == 1); } void Get_Distance() { pinMode(Ultrasonic_Pin, OUTPUT); digitalWrite(Ultrasonic_Pin, HIGH); delayMicroseconds(20); digitalWrite(Ultrasonic_Pin, LOW); pinMode(Ultrasonic_Pin, INPUT); int Time_Echo_us = pulseIn(Ultrasonic_Pin, HIGH); distance = Time_Echo_us / 58; } void Motor(int L1, int L2 , int R1, int R2) { ledcWrite(12, L1); ledcWrite(13, L2); ledcWrite(14, R1); ledcWrite(15, R2); } void loop() { Get_Distance(); if (distance < 20) { Motor(255, 0,0, 255); } else { Motor(0,255, 0, 255); } } |
ฉันคาดว่าจะต้องนำเข้าไลบรารีและโค้ดที่ซับซ้อนกว่านี้ แต่ตัวอย่างสำหรับการหลีกเลี่ยงสิ่งกีดขวางนั้นง่ายมาก…
ฉันต้องปิดหุ่นยนต์นี้ ถอดสาย USB วาง Crowbot BOLT ลงบนพื้น เปิดเครื่อง และกดปุ่มผู้ใช้เพื่อเริ่มต้น มันเป็นลักษณะการทำงานเดียวกันกับในเฟิร์มแวร์ของโรงงานที่แสดงในวิดีโอก่อนหน้านี้
การเขียนโปรแกรม Crowbot BOLT ด้วย MicroPython
มี 16 บทเรียนเหมือนกันในไดเร็กทอรี Python พร้อมกับเฟิร์มแวร์ MicroPython และคู่มือการเขียนโปรแกรม
มีการใช้ Thonny IDE ในการเขียนโปรแกรม และ ฉันก็ใช้ Thonny อีกด้วย ฉันพบปัญหากับ Thonny 3.3.3 ที่ติดตั้งบนคอมพิวเตอร์ของฉัน เนื่องจากคอมพิวเตอไม่สามารถค้นหาพอร์ตอนุกรม (serial port) ได้ ดังนั้นฉันจึงอัปเกรดเป็นเวอร์ชัน 4.0.1 ด้วยคำสั่ง:
1 |
pip install --upgrade thonny |
ฉันสามารถเลือก “MicroPython (ESP32)” และอุปกรณ์ serial (/dev/ttyUSB0) หลังจากไปที่ Tools->Options :
แต่ฉันยังไม่สามารถติดตั้งเฟิร์มแวร์ MicroPython ลงบนหุ่นยนต์ได้ เพราะยังไม่ได้ติดตั้ง esptool สามารถเพิ่มได้โดยไปที่Tools->Manage plug-ins และค้นหา esptool
เมื่อทำเสร็จแล้ว เราสามารถกลับไปที่หน้าก่อนหน้าและเลือก “ติดตั้งหรืออัปเดต MicroPython”
ป๊อปอัปใหม่จะปรากฏขึ้นโดยที่เราสามารถเลือก Port และไฟล์เฟิร์มแวร์ “esp32-20220618-v1.19.1.bin” ที่ Elecrow จัดเตรียมให้ แล้วกด Install ฉันเจอปัญหากับข้อผิดพลาด “esptool not foundl” ดังนั้นฉันจึงติดตั้ง esptool จากบรรทัดคำสั่งอีกครั้ง:
1 |
pip3 install esptool |
และครั้งนี้ฉันสามารถติดตั้งเฟิร์มแวร์ MicroPython ได้สำเร็จ
ฉันจึงโหลดตัวอย่าง Activate Bolt
1 2 3 4 5 6 7 8 9 10 11 |
from machine import Pin import time button=Pin(18,Pin.IN,Pin.PULL_UP) print("Hello, master!") while True: if button.value() == 1: pass else: if button.value() == 1: print("Hello, master!") print("I'm Bolt, I've activated!") |
เอาต์พุต serial console เป็นไปตามที่คาดไว้หลังจากกดปุ่มผู้ใช้:
ต่อไปฉันโหลดโปรแกรม line tracking (เดินตามเส้น):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
from machine import Pin,PWM,ADC import utime button = Pin(18, Pin.IN) QTI_L=Pin(39,Pin.IN,Pin.PULL_UP) QTI_R=Pin(36,Pin.IN,Pin.PULL_UP) def motor(L12,L13,R14,R15): PWM(Pin(12)).duty(L12) PWM(Pin(13)).duty(L13) PWM(Pin(14)).duty(R14) PWM(Pin(15)).duty(R15) if __name__ == '__main__': while button.value() == 1: pass else: while True: QTI_MAX = QTI_L.value() * 2 + QTI_R.value() if QTI_MAX == 0: motor(800,0,800,0) elif QTI_MAX == 1: motor(0,800,0,400) elif QTI_MAX == 2: motor(0,400,0,800) elif QTI_MAX == 3: motor(0,1000,0,1000) |
มีข้อความคำอธิบายในโค้ด เนื่องจากโค้ดอาจไม่ชัดเจน 100%… เนื่องจากโปรแกรมไม่สะดวกที่จะทดสอบบนเดสก์ท็อปของฉัน ฉันจึงบันทึก Micrpython script ไปยังหุ่นยนต์ โดยคลิกที่ Save As และ แล้วคลิกที่ MicroPython device
และบันทึกเป็น boot.py บนอุปกรณ์
จากนั้นฉันก็ปิดหุ่นยนต์ ถอดสาย USB ออก, แล้ววาง Crowbot BOLT บนสนาม Tracking Map, เปิดหุ่นยนต์ และกดปุ่มผู้ใช้เพื่อเริ่มต้น หุ่นยนต์ทำงานแบบเดียวกันกับในเฟิร์มแวร์ของโรงงานที่แสดงในวิดีโอก่อนหน้านี้
สรุป
Crowbot BOLT หุ่นยนต์ Smart Car ของ Elecrow เป็นหุ่นยนต์อัจฉริยะที่ราคาไม่แพง เพื่อการศึกษาเหมาะกับเรียนรู้ทักษะด้านหุ่นยนต์ สามารถช่วยให้เด็กเข้าใจส่วนประกอบต่างๆ และเรียนรู้การเขียนโปรแกรมการเขียนโปรแกรม visual programming IDE, Arduino หรือ Arduino IDE หรือ Python IDE เช่น Thonny, มีเอกสารสำหรับบทเรียนการเขียนโปรแกรม Letscode visual programming 16 บทเรียน มีข้อมูลโดยละเอียดเพิ่มเติมเกี่ยวกับวิธีการทำงาน เนื่องจากบทเรียนจะไม่อธิบายพื้นฐาน เช่น PWM และวิธีการทำงานของมอเตอร์, บทเรียน MicroPython และ Arduino Python ถูกออกแบบมาเพื่อใช้หลังจากเรียนรู้เกี่ยวกับการเขียนโปรแกรมด้วย visual programming และเอกสารมีน้อยมีแค่การติดตั้งและกำหนดค่า IDE เพื่อใล้งานกับหุ่นยนต์ และโค้ดไม่มีคำอธิบายเพื่อให้ช่วยให้เข้าใจง่ายว่ามันกำลังทำอะไร
แม้จะมีข้อบกพร่องบ้างเล็กน้อย แต่ฉันก็ยังคิดว่า Crowbot BOLT อาจเป็นชุดอุปกรณ์ที่น่าสนใจสำหรับการศึกษา STEM หุ่นยนต์ขายในราคา $34.90 (~1,200฿) รวมค่าจัดส่ง หรือ $57.80 (~2,000฿) พร้อม JoyStick แต่ต้องเตรียมแก้ไขฮาร์ดแวร์เพื่อให้ Bluetooth ตามที่อธิบายไว้ในคู่มือ
แปลจากบทความภาษาอังกฤษ : Getting Started with CrowBot BOLT smart robot car
บรรณาธิการข่าวและบทความภาษาไทย CNX Software ได้มีความสนใจในด้านเทคโนโลยี โดยเฉพาะ Smart Home และ IoT