Search this site
Embedded Files
tklrobot.com
  • หน้าแรก
    • การติดตั้งโปรแกรม Arduino สำหรับเขียนคำสั่งหุ่นยนต์
  • ผู้จัดทำ
  • LookBas Nano
    • Datasheet
    • LAB 1 Digital Output
    • LAB 2 Digital Input
    • LAB 3 AnalogRead
    • LAB 4 การใช้จอแสดงผล
    • LAB 5 การใช้จอ อ่านค่า sensor
    • LAB 6 การใช้จอ อ่านค่า MCP3008
    • LAB 7 การใช้งานมอเตอร์
    • LAB8 หุ่นยนต์เดินตามเส้น
    • LAB9 ใช้งานเซอโวมอเตอร์
    • LAB10 ฟังก์ชั่นหาตำแหน่งเซอโวมอเตอร์
    • LAB11 สร้างเมนู
    • LAB12 สร้างฟังก์ชั่นให้หุ่นยนต์
    • LAB13 หุ่นยนต์ทำภารกิจ
    • LAB14 เช็คสี
    • LAB15 ภารกิจกลาง
  • Kruro Nano
    • Datasheet
    • LAB 1 Digital Output
    • LAB 2 Digital Input
    • LAB 3 AnalogRead
    • LAB 4 การใช้จอแสดงผล
    • LAB 5การสั่งงานมอเตอร์
    • LAB 6 การใช้จอ อ่านค่า sensor
    • LAB7 หุ่นยนต์เดินตามเส้น
    • LAB 8 สร้างฟังก์ชั่นให้หุ่นยนต์
    • LAB 9 ใช้งานเซอโวมอเตอร์
    • LAB10 ฟังก์ชั่นหาตำแหน่งเซอโวมอเตอร์
    • LAB11 หุ่นยนต์ทำภารกิจ
  • Nano Learning
    • Datasheet
    • LAB 1 Digital Output
    • LAB 2 Digital Input
    • LAB 3 AnalogRead
    • LAB 4 การใช้จอแสดงผล
    • LAB 5 การสั่งงานมอเตอร์
    • LAB 6 การใช้จอ อ่านค่า sensor
    • LAB7 หุ่นยนต์เดินตามเส้น
    • LAB 8 สร้างฟังก์ชั่นให้หุ่นยนต์
    • LAB 9 ใช้งานเซอโวมอเตอร์
    • LAB10 ฟังก์ชั่นหาตำแหน่งเซอโวมอเตอร์
    • LAB11 หุ่นยนต์ทำภารกิจ
  • TKL V.2 V.2.1
    • LAB 1 Digital Output
    • LAB 2 Digital Input
    • LAB 3 AnalogRead
    • LAB 4 การใช้จอแสดงผล
    • LAB 5การสั่งงานมอเตอร์
    • LAB 6 การใช้จอ อ่านค่า sensor
    • LAB7 หุ่นยนต์เดินตามเส้น
    • LAB 9 ใช้งานเซอโวมอเตอร์
    • LAB10 ฟังก์ชั่นหาตำแหน่งเซอโวมอเตอร์
    • LAB11 หุ่นยนต์ทำภารกิจ
tklrobot.com
  • หน้าแรก
    • การติดตั้งโปรแกรม Arduino สำหรับเขียนคำสั่งหุ่นยนต์
  • ผู้จัดทำ
  • LookBas Nano
    • Datasheet
    • LAB 1 Digital Output
    • LAB 2 Digital Input
    • LAB 3 AnalogRead
    • LAB 4 การใช้จอแสดงผล
    • LAB 5 การใช้จอ อ่านค่า sensor
    • LAB 6 การใช้จอ อ่านค่า MCP3008
    • LAB 7 การใช้งานมอเตอร์
    • LAB8 หุ่นยนต์เดินตามเส้น
    • LAB9 ใช้งานเซอโวมอเตอร์
    • LAB10 ฟังก์ชั่นหาตำแหน่งเซอโวมอเตอร์
    • LAB11 สร้างเมนู
    • LAB12 สร้างฟังก์ชั่นให้หุ่นยนต์
    • LAB13 หุ่นยนต์ทำภารกิจ
    • LAB14 เช็คสี
    • LAB15 ภารกิจกลาง
  • Kruro Nano
    • Datasheet
    • LAB 1 Digital Output
    • LAB 2 Digital Input
    • LAB 3 AnalogRead
    • LAB 4 การใช้จอแสดงผล
    • LAB 5การสั่งงานมอเตอร์
    • LAB 6 การใช้จอ อ่านค่า sensor
    • LAB7 หุ่นยนต์เดินตามเส้น
    • LAB 8 สร้างฟังก์ชั่นให้หุ่นยนต์
    • LAB 9 ใช้งานเซอโวมอเตอร์
    • LAB10 ฟังก์ชั่นหาตำแหน่งเซอโวมอเตอร์
    • LAB11 หุ่นยนต์ทำภารกิจ
  • Nano Learning
    • Datasheet
    • LAB 1 Digital Output
    • LAB 2 Digital Input
    • LAB 3 AnalogRead
    • LAB 4 การใช้จอแสดงผล
    • LAB 5 การสั่งงานมอเตอร์
    • LAB 6 การใช้จอ อ่านค่า sensor
    • LAB7 หุ่นยนต์เดินตามเส้น
    • LAB 8 สร้างฟังก์ชั่นให้หุ่นยนต์
    • LAB 9 ใช้งานเซอโวมอเตอร์
    • LAB10 ฟังก์ชั่นหาตำแหน่งเซอโวมอเตอร์
    • LAB11 หุ่นยนต์ทำภารกิจ
  • TKL V.2 V.2.1
    • LAB 1 Digital Output
    • LAB 2 Digital Input
    • LAB 3 AnalogRead
    • LAB 4 การใช้จอแสดงผล
    • LAB 5การสั่งงานมอเตอร์
    • LAB 6 การใช้จอ อ่านค่า sensor
    • LAB7 หุ่นยนต์เดินตามเส้น
    • LAB 9 ใช้งานเซอโวมอเตอร์
    • LAB10 ฟังก์ชั่นหาตำแหน่งเซอโวมอเตอร์
    • LAB11 หุ่นยนต์ทำภารกิจ
  • More
    • หน้าแรก
      • การติดตั้งโปรแกรม Arduino สำหรับเขียนคำสั่งหุ่นยนต์
    • ผู้จัดทำ
    • LookBas Nano
      • Datasheet
      • LAB 1 Digital Output
      • LAB 2 Digital Input
      • LAB 3 AnalogRead
      • LAB 4 การใช้จอแสดงผล
      • LAB 5 การใช้จอ อ่านค่า sensor
      • LAB 6 การใช้จอ อ่านค่า MCP3008
      • LAB 7 การใช้งานมอเตอร์
      • LAB8 หุ่นยนต์เดินตามเส้น
      • LAB9 ใช้งานเซอโวมอเตอร์
      • LAB10 ฟังก์ชั่นหาตำแหน่งเซอโวมอเตอร์
      • LAB11 สร้างเมนู
      • LAB12 สร้างฟังก์ชั่นให้หุ่นยนต์
      • LAB13 หุ่นยนต์ทำภารกิจ
      • LAB14 เช็คสี
      • LAB15 ภารกิจกลาง
    • Kruro Nano
      • Datasheet
      • LAB 1 Digital Output
      • LAB 2 Digital Input
      • LAB 3 AnalogRead
      • LAB 4 การใช้จอแสดงผล
      • LAB 5การสั่งงานมอเตอร์
      • LAB 6 การใช้จอ อ่านค่า sensor
      • LAB7 หุ่นยนต์เดินตามเส้น
      • LAB 8 สร้างฟังก์ชั่นให้หุ่นยนต์
      • LAB 9 ใช้งานเซอโวมอเตอร์
      • LAB10 ฟังก์ชั่นหาตำแหน่งเซอโวมอเตอร์
      • LAB11 หุ่นยนต์ทำภารกิจ
    • Nano Learning
      • Datasheet
      • LAB 1 Digital Output
      • LAB 2 Digital Input
      • LAB 3 AnalogRead
      • LAB 4 การใช้จอแสดงผล
      • LAB 5 การสั่งงานมอเตอร์
      • LAB 6 การใช้จอ อ่านค่า sensor
      • LAB7 หุ่นยนต์เดินตามเส้น
      • LAB 8 สร้างฟังก์ชั่นให้หุ่นยนต์
      • LAB 9 ใช้งานเซอโวมอเตอร์
      • LAB10 ฟังก์ชั่นหาตำแหน่งเซอโวมอเตอร์
      • LAB11 หุ่นยนต์ทำภารกิจ
    • TKL V.2 V.2.1
      • LAB 1 Digital Output
      • LAB 2 Digital Input
      • LAB 3 AnalogRead
      • LAB 4 การใช้จอแสดงผล
      • LAB 5การสั่งงานมอเตอร์
      • LAB 6 การใช้จอ อ่านค่า sensor
      • LAB7 หุ่นยนต์เดินตามเส้น
      • LAB 9 ใช้งานเซอโวมอเตอร์
      • LAB10 ฟังก์ชั่นหาตำแหน่งเซอโวมอเตอร์
      • LAB11 หุ่นยนต์ทำภารกิจ


Servo Motor


LAB 10 ฟังก์ชั่นหาตำแหน่ง Servo Motor


คำอธิบาย

เนื่องจาก Servo Motor จำเป็นต้องสั่งงานโดยกำหนดองศาการทำงานให้ ดังนั้นการหาตำแหน่งเซอโวที่ต้องการ จึงค่อนข้างจำเป็นมากในหุ่นยนต์ขนาดเล็ก

หลักการ

เราทราบแล้วว่าเซอโวมอเตอร์จะทำงานได้แค่ 0 - 180 ํ และ analog อ่านค่าได้ 0-1023 บทความนี้จะใช้หลักการอ่านค่า analog จาก0-1023 อ่านจากvr หรือ Knob ซึ่งต่ออยู่ Pin analog 7 มาแปลงเป็นค่า 0 - 180 คือองศาเซอโว พร้อมทั้งแสดงตำแหน่งองศาอยู่ที่หน้าจอ Oled

รูปแบบคำสั่ง

map(value, fromLow, fromHigh, toLow, toHigh)

โดยที่

value = ค่าที่ต้องหารแปลง

fromLow = จากค่าต่ำสุด

fromHigh = จากค่าสูงสุด

toLow = แปลงเป็นค่าต่ำสุด

toHigh = แปลงเป็นค่าสูงสุด




อุปกรณ์ประกอบ LAB

    1. บอร์ด TKL NANO V2.1

    2. Servo Motor

ขั้นเตรียมการ

ตรวจสอบการเชื่อมต่อมอเตอร์ให้ถูกต้อง โดยมีวิธีเช็คดังนี้

1. เสียบสาย servo motor ใน Pin D2

ข้อควรระวังในช่วงทดสอบ

เซอโวมอเตอร์เป็นอุปกรณ์ที่มีโอกาสพังสูงที่สุด การใช้งานควรระวังการขัดของกลไก เนื่่องจากเซอโวมอเตอร์ทำงานโดยกำหนดตำแหน่งขององศาของมุมแขน



ตัวอย่าง Code

#include <SPI.h>

#include <Wire.h>

#include <Servo.h> //เรียกใช้งาน library เซอโว

#include <Adafruit_GFX.h>

#include <Adafruit_SSD1306.h>

#define display_RESET 4

Adafruit_SSD1306 display(display_RESET);


Servo sv1; // กำหนดชื่อเซอโวตัวที่ 1 ว่า sv1

const int buttonPin = 8; //ประกาศตัวแปร buttonPin แทน Pin ของปุ่มกด ซึ่งต่อไว้กับ D2


void setup() {

sv1.attach(2); //กำหนดขา Servo ตัวที่ 1 เป็น Pin 2

display.begin(SSD1306_SWITCHCAPVCC, 0x3C); // initialize with the I2C addr 0x3D (for the 128x64)


}


void loop(){

int sw = digitalRead(buttonPin);

if (sw == 1){

while(1) {

int vr = analogRead(A7); // กำหนดตัวแปรจำนวนเต็มอ่านค่าอนาล็อกที่พอร์ต 7

int nob = map(vr, 0, 1023, 0, 90); // ทำการ map อัตราส่วนจากสัญญาณ analog 0-1023 เป็น 0-90

display.clearDisplay(); // เคลียร์หน้าจอ display

display.setTextColor(WHITE, BLACK); //สีอักษรเป็นสีขาว ,พื้นหลังดำ

display.setCursor(0, 0); // เซตตำแหน่ง 0,0

display.setTextSize(2); // เซตขนาดอักษรมีขนาดเป็น 2

display.println(nob); // นำค่า nob มาแสดงใน display

display.display(); // เปิดฟังก์ชันแสดงผล

sv1.write(nob); // สั่งเซอร์โวมอเตอร์ให้หมุนไปตามค่าองศาที่ทำการ nob ไว้

delay(50); // หน่วงเวลา 0.05 วินาที

}

}

}




แหล่งเรียนรู้เพิ่มเติม จากศูนย์หุ่นยนต์โรงเรียนกมลาไสย คลิก


Report abuse
Page details
Page updated
Report abuse