วันอังคารที่ 14 สิงหาคม พ.ศ. 2561

โปรเจคหุ่นยนต์ Raspberry Pi ควบคุมด้วย Keyboard



โปรเจคหุ่นยนต์ 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)

ไม่มีความคิดเห็น:

แสดงความคิดเห็น