Software Project : Robotic Arm (2) - เขียนโค้ด Arduino


     หลังจากฝึกพื้นฐานการควบคุม Servo โดยใช้ Python แล้ว ต้องทำการปรับเปลี่ยนโค้ด Arduino เพื่อให้รองรับกับ Servo ที่เเขนกลจำเป็นต้องใช้ทั้งหมด 

     โดยแขนกลใช้ Servo ทั้งหมด 6 ตัวจึงจำเป็นต้องเขียนโค้ดควบคุม Servo 6 ตัว โดยทำการเเบ่งช่วงของ Bytearray โดยใช้เลข 1 ค่าต่อ 5 องศา เบื้องต้นกำหนดใช้ Servo ทุกตัวเคลื่อนที่ได้ 180 องศาทุกตัว ใช้ค่า Bytearray ทั้งหมด 221 ตัว 


โดยเขียนโค้ด Arduino ได้ดังนี้


#include <Servo.h>

Servo servo1;
Servo servo2;
Servo servo3;
Servo servo4;
Servo servo5;
Servo servo6;
    void setup()
    {
      servo1.attach(8); 
      servo2.attach(9);
      servo3.attach(10);
      servo4.attach(11);
      servo5.attach(12);
      servo6.attach(13);
      Serial.begin(9600);
    }
    int angle;
    void loop()
    { 
      if(Serial.available()){
        angle = Serial.read();
      if (angle >= 0 && angle <=36){
        angle = angle * 5;
        servo1.write(angle);
       }
      else if(angle >=37 && angle <= 73){
        angle = angle - 37;
        angle = angle * 5;
        servo2.write(angle);
      }
      else if(angle >=74 && angle <= 110){
        angle = angle - 74;
        angle = angle * 5;
        servo3.write(angle);
      }
      else if(angle >=111 && angle <= 147){
        angle = angle - 111;
        angle = angle * 5;
        servo4.write(angle);
      }
      else if(angle >=148 && angle <= 184){
        angle = angle - 148;
        angle = angle * 5;
        servo5.write(angle);
      }
      else if(angle >=185 && angle <= 221){
        angle = angle - 185;
        angle = angle * 5;
        servo6.write(angle);
      }
      }

    }

โค้ด Python

import serial
import time
servo = serial.Serial("COM4", 9600)
def A():
    S = int(input('G:'))
    servo.write(bytearray([S]))
    time.sleep(0.01)
while True:
    A()

เมื่อเขียนโค้ด Arduino เเล้วลองกับโค้ด Python สามารถใช้ได้ตามคลิปด้านล่าง




โดยเป็นการควบคุมโดยยังไม่ใช้ Bluetooth เพราะัมีปัญหาที่ความช้าของ Bluetooth

อุปสรรค 

- ไฟเลี้ยง Servo ไม่เพียงพอ
- องศาของง Servo ที่ไม่ตรง

ความคิดเห็น

โพสต์ยอดนิยมจากบล็อกนี้

แขนกล (Robot Arm)

Software Project : Robotic Arm (5) - อุปสรรคในปัจจุบันเเละเเผนการต่อจากนี้

Software Project : Robotic Arm (8) - ปัญหาที่พบเจอ วิธีเเก้ปัญหา และ ภาพรวมของ Project