โปรเจคหุ่นยนต์ Raspberry Pi ควบคุมด้วย Keyboard โดยใช้งานผ่าน Remote Desktop จะใช้ได้กับระบบอินทราเน็ต ที่ใช้ WiFi หรือ วง แลน หรือใช้ เร้าเตอร์ เดียวกัน เท่านั้น
อุปกรณ์ที่ใช้
ขั้นตอนการทำงาน
1. การติดตั้ง Linux ให้กับ Raspberry โดยใช้ไฟล์ image
2. การใช้งาน GPIO ใน Raspberry Pi ด้วย Python
3. การประกอบหุ่นยนต์ Raspberry Pi
4. วิธีเปิดใช้งาน Remote Desktop ไปยัง Raspberry Pi
5. ทดสอบการเคลื่อนที่ของหุ่นยนต์ Raspberry Pi
6. โปรเจคหุ่นยนต์ Raspberry Pi ควบคุมด้วย Keyboard
6.1 เปิด เพาเวอร์สวิตซ์ จะมีไฟสีแดงติดที่ Motor Driver
6.2 เสียบสาย USB ของ Power Bank ต่อเข้ากับ 5V Micro USB ของบอร์ด Raspberry Pi
6.3 ที่คอมพิวเตอร์ PC ให้ทำการ Remote Desktop ไปยัง Raspberry Pi
ไปที่ Menu -> Programming -> Python 3 (IDLE)
โปรแกรม Python 3 (IDLE)
ไปที่ File -> New File
เขียนโค้ดดังนี้
# import curses and GPIO import curses import RPi.GPIO as GPIO import time
#set GPIO numbering mode and define output pins GPIO.setmode(GPIO.BOARD) GPIO.setup(11,GPIO.OUT) GPIO.setup(13,GPIO.OUT) GPIO.setup(35,GPIO.OUT) GPIO.setup(37,GPIO.OUT)
# Get the curses window, turn off echoing of keyboard to screen, turn on # instant (no waiting) key response, and use special values for cursor keys screen = curses.initscr() curses.noecho() curses.cbreak() screen.keypad(True)
try: while True: char = screen.getch() if char == ord('q'): break elif char == curses.KEY_UP: GPIO.output(11,True) GPIO.output(13,False) GPIO.output(35,True) GPIO.output(37,False) time.sleep(0.1) GPIO.output(11,False) GPIO.output(13,False) GPIO.output(35,False) GPIO.output(37,False) elif char == curses.KEY_DOWN: GPIO.output(11,False) GPIO.output(13,True) GPIO.output(35,False) GPIO.output(37,True) time.sleep(0.1) GPIO.output(11,False) GPIO.output(13,False) GPIO.output(35,False) GPIO.output(37,False) elif char == curses.KEY_RIGHT: GPIO.output(11,False) GPIO.output(13,False) GPIO.output(35,True) GPIO.output(37,False) time.sleep(0.3) GPIO.output(11,False) GPIO.output(13,False) GPIO.output(35,False) GPIO.output(37,False) elif char == curses.KEY_LEFT: GPIO.output(11,True) GPIO.output(13,False) GPIO.output(35,False) GPIO.output(37,False) time.sleep(0.3) GPIO.output(11,False) GPIO.output(13,False) GPIO.output(35,False) GPIO.output(37,False) finally: #Close down curses properly, inc turn echo back on! curses.nocbreak(); screen.keypad(0); curses.echo() curses.endwin() GPIO.cleanup()
หรือ ดาวน์โหลด ไฟล์: https://drive.google.com/open?id=1PmUG6vhFX8uyu2ihBA7Dm1BqTuwWrzsW
ไปที่ File -> Save ตั้งชื่อไฟล์ ในตัวอย่างเป็น keyboard_robot แล้ว คลิก Save
ทดสอบการทำงานของโปรแกรม
เนื่องจากโค้ดที่เขียนด้านบนเป็นโค้ดในเวอร์ชั่น Python 2 แต่ เราใช้ IDLE เป็น Python 3 ในการทดสอบต้องใช้ คำสั่งคอมมานไลน์ (Command Line) แทน โดยมีขั้นตอนดังนี้
เปิดโปรแกรม เทอมินอล (Root Terminal)
แล้วใช้คำสั่ง
sudo python keyboard_robot.py
-> กด Enter
ทดสอบควบคุมหุ่นยนต์ โดย
กดลูกศรขึ้นบน หุ่นยนต์จะเดินหน้า , กดลูกศรลงล่าง หุ่นยนต์จะถอยหลัง
กดลูกศรไปทางซ้าย หุ่นยนต์จะเลี้ยวซ้าย , กดลูกศรไปทางขวา หุ่นยนต์จะเลี้ยวขวา
กด q ถ้าต้องการออกจากโปรแกรม (ให้ทำทุกครั้งที่ต้องการออกจากโปรแกรม)
วีดีโอผลลัพธ์การทำงานของโปรแกรม (หุ่นยนต์ Raspberry Pi ควบคุมด้วย PC Keyboard)