โปรเจคนี้จะช่วยให้น้องสามารถสอดส่อง/สปายและควบคุมบอทไปพร้อมๆ กันจากคอมพ์ของน้องได้เลย ไม่ต้องออกไปทำเองให้เหนื่อย ตัวอย่างง่ายๆ ของการเอาไปใช้ก็คือ ควบคุมบอทให้เป็นเด็กเสิร์ฟไปส่งของที่โต๊ะ ในขณะที่พนักงานเสิร์ฟตัวจริงนั่งควบคุมจากคอมพ์สบายๆ นี่อาจช่วยรับมือกับสถานการณ์โควิด-19 ในตอนนี้ได้ดีเลยล่ะ
โปรเจคนี้ได้แรงบันดาลใจมาจากเกมขับรถ พวกที่ใช้ปุ่ม WASD บนคีย์บอร์ดเพื่อควบคุมรถนั่นแหละ โปรเจคนี้ใช้ PuTTY ซึ่งเป็น Serial Monitor ที่เจ๋งมากๆ เพราะมันมีฟีเจอร์ Serial over Network และรับคีย์อินพุตแบบต่อเนื่อง (ส่งสัญญาณคีย์ไปยังอุปกรณ์ต่อเนื่องจนกว่าจะปล่อยปุ่ม)
น้องสามารถติดสมาร์ทโฟนไว้บนบอทได้ง่ายๆ แล้วใช้แอพ IP webcam ใดๆ ก็ได้ เชื่อมต่อกับคอมพ์ของน้อง เพื่อให้เห็นภาพจากบอทแบบเรียลไทม์และควบคุมไปพร้อมกันได้เลย ตัวอย่างเช่น DroidCam ที่มีให้ทั้งบน Android และ iPhone
มุมมองของโปรเจค
Keyboard Controlled Wi-Fi Bot/Spy Bot เป็นโปรเจครถหุ่นยนต์ 2WD ที่ทั้งสร้างสรรค์และใหม่เอี่ยมเลยทีเดียว ด้วยการตั้งค่าฮาร์ดแวร์เฉพาะทางและโมดูล WiFi ประสิทธิภาพสูง น้องจะได้เรียนรู้เกี่ยวกับการควบคุมแบบไร้สายและการสั่งงานแบบเรียลไทม์ด้วย Python
การลงมือทำจริง: Wi-Fi และ Python
โปรเจคนี้โฟกัสไปที่การสร้างหุ่นยนต์ที่ควบคุมด้วยคีย์บอร์ดให้มีประสิทธิภาพและเสถียร:
- เลเยอร์การสื่อสาร: NodeMCU ESP8266 ทำหน้าที่เป็น WiFi client ที่คอยฟังคำสั่ง TCP/UDP ที่ส่งมาจากเครือข่ายท้องถิ่น
- เลเยอร์อินเทอร์เฟซควบคุม: สคริปต์ Python ง่ายๆ บนคอมพ์ของน้องจะจับการกดปุ่มคีย์บอร์ด (W, A, S, D) และส่งไปยังที่อยู่ IP ของ NodeMCU
- เลเยอร์การขับเคลื่อน: NodeMCU จะตีความคำสั่ง (เช่น 'F' = เดินหน้า, 'S' = หยุด) และส่งต่อไปยัง L298N Motor Driver ซึ่งจะจ่ายไฟให้กับ มอเตอร์ DC สองตัว
โครงสร้างพื้นฐานฮาร์ดแวร์
- NodeMCU ESP8266: เป็น "สมอง" ของบอท จัดการการเชื่อมต่อ WiFi และประสานสัญญาณไปยังไดรเวอร์มอเตอร์
- โมดูล L298N Motor Driver: จ่ายกระแสสูงที่จำเป็นสำหรับขับมอเตอร์ DC สองตัวให้เดินหน้า ถอยหลัง เลี้ยวซ้าย หรือขวา
- โครงรถหุ่นยนต์ 2WD: โครงสร้างทางกายภาพที่ใช้ติดตั้ง NodeMCU, ไดรเวอร์ และแบตเตอรี่
- แบตเตอรี่ Li-Po 7.4V: แหล่งพลังงานความจุสูงและพกพาสะดวกสำหรับมอเตอร์และ ESP8266
- สาย Micro-USB: ใช้สำหรับโปรแกรม NodeMCU โดยตรงจากคอมพ์ และใช้เป็นแหล่งจ่ายไฟได้ด้วย
- สายจัมเปอร์: ใช้เชื่อมต่อชิ้นส่วนทั้งหมดเข้าด้วยกัน
วงจรวัดค่าและสั่งงาน (Measurement and Execution Loop)
บอท Wi-Fi ตัวนี้ถูกออกแบบมาให้ใช้ง่ายสุดๆ วัยรุ่น:
- ตั้งค่า Wi-Fi: จัดการให้ NodeMCU เชื่อมต่อกับเครือข่าย Wi-Fi ของคุณ แล้วแสดงที่อยู่ IP ของมันออกมา
- จับสัญญาณคีย์บอร์ด: ใช้สคริปต์ Python ตรวจจับทุกครั้งที่มีการกดหรือปล่อยปุ่มบนคีย์บอร์ดคอมพิวเตอร์ของคุณ
- วงจรส่งข้อมูล: สคริปต์จะส่งอักขระของปุ่มนั้นไปยังที่อยู่ IP ของ NodeMCU แบบเรียลไทม์
- สั่งงาน: NodeMCU ได้รับอักขระแล้วก็จะไปกระตุ้นไดรเวอร์ L298N ให้ขับมอเตอร์ตามที่กำหนดไว้
ข้อควรระวังสำคัญ
อย่าลืมเปลี่ยน SSID และ Password ให้ตรงกับเครือข่าย Wi-Fi ของคุณที่ ESP8266 จะต้องเชื่อมต่อเข้าไปนะน้อง
#define STASSID "your SSID"
#define STAPSK "your Password"

ขั้นตอนตั้งค่า PuTTY
ขั้นตอนที่ 1 :
ดาวน์โหลด PuTTY จากเว็บไซต์ผู้พัฒนา แล้วติดตั้งให้เรียบร้อย
เปิด PuTTY ขึ้นมา มันจะหน้าตาประมาณนี้

ขั้นตอนที่ 2 :
หลังจากอัปโหลดโค้ด ESP8266 ด้านล่างแล้ว ให้ใช้ Local IP Address ที่ ESP8266 แสดงไว้ใน Serial Monitor

นำ IP Address นี้ไปใส่ในช่อง Host Name (or IP Address) ของ PuTTY เช่นในกรณีนี้พี่จะใส่ 192.168.29.37 เพราะนั่นคือ IP Address ของ ESP8266 บนเครือข่ายบ้านพี่

โดยค่าเริ่มต้นในซอร์สโค้ด พอร์ตเบอร์คือ 1234 แต่น้องสามารถเปลี่ยนเป็นพอร์ตอื่นที่ยังไม่ถูกใช้ในเครือข่ายได้

ใส่พอร์ตเบอร์เริ่มต้น หรือพอร์ตที่ต้องการลงในช่อง Port ของ PuTTY

ขั้นตอนที่ 3 :
ประเภทการเชื่อมต่อที่ใช้ในไลบรารี ESP8266 Wi-Fi server คือ Raw ดังนั้นเราต้องเปลี่ยนประเภทการเชื่อมต่อใน PuTTY เป็น Raw ด้วย

ขั้นตอนที่ 4 :
ขั้นตอนต่อไปนี้จะเปิดใช้งานการป้อนคีย์แบบต่อเนื่อง หัวข้อ Terminal แล้วตั้งค่า Local Echo และ Local Line Editing เป็น Force off

น้องสามารถบันทึกการตั้งค่าทั้งหมดนี้ได้ด้วยการสร้างโปรไฟล์ในหน้าแรก แล้วส่วนนี้ก็เป็นอันเสร็จสิ้น

อนาคตที่รอให้ไปต่อ
- เพิ่มหน้าจอ OLED ไว้ดูสถานะ (OLED Status Dashboard): เอา OLED ขนาดจิ๋วมาติดบนบอทไว้ดูค่าสัญญาณ WiFi และระดับแบตเตอรี่แบบเรียลไทม์ งานนี้จัดไปวัยรุ่น!
- อัพเกรดเป็น Spy-Cam: ใส่ ESP32-CAM เข้าไปเพื่อสตรีมวิดีโอกลับมาดูที่คอมได้เลย งานนี้ได้บอทสายลับสมชื่อแน่นอน
- ควบคุมผ่านคลาวด์ (Cloud Control): เชื่อมบอทกับเซิร์ฟเวอร์บนคลาวด์ จะได้สั่งงานจากที่ไหนบนโลกก็ได้ (ขอแค่มีเน็ตนะ)
- สร้างแดชบอร์ดควบคุมความเร็วแบบเทพๆ (Advanced Velocity Profile Dashboard): เขียน GUI ด้วย Python ไว้ปรับความเร็วและดูค่าจากเซ็นเซอร์แบบเห็นภาพ สวยหรูดูโปร
มาดูภาพสวยๆ ของบอทตอนถอดชิ้นส่วนกันหน่อย:



หวังว่าน้องๆ จะชอบโปรเจกต์นี้นะ สู้งานนะน้อง!
โปรเจกต์ "บอทสายลับควบคุมผ่าน WiFi/คีย์บอร์ด" นี้เหมาะสุดๆ สำหรับคนที่ชอบเล่นอิเล็กทรอนิกส์และอยากได้หุ่นยนต์ที่โต้ตอบกับเราได้ แบบไม่น่าเบื่อ!