ส่วนประกอบที่จำเป็น:
- ตัวถังรถหุ่นยนต์สองล้อ
- Arduino UNO
- ตัวควบคุมมอเตอร์ L298N
- HC-06 โมดูลบลูทู ธ (HC-05 จะทำงานด้วย)
- แหล่งจ่ายไฟหรือเซลล์
- สายเชื่อมต่อ
การสร้างอินเทอร์เฟซสำหรับหุ่นยนต์โดยใช้ RemoteXY app:
สำหรับการสร้างอินเทอร์เฟซเพื่อควบคุมรถหุ่นยนต์โดยใช้ RemoteXY app คุณจะต้องไปที่ลิงก์ต่อไปนี้
http://remotexy.com/en/editor/หน้าเว็บจะมีลักษณะดังนี้
แล้วจากด้านซ้ายของหน้าจอ, รับปุ่มสวิทช์และจอยสติ๊กและวางไว้ในอินเตอร์เฟซมือถือ ปุ่มจะเปิดไฟที่ขา 13 ซึ่งเชื่อมต่ออยู่ภายใน Arduino และจอยสติ๊กจะย้ายรถหุ่นยนต์ เว็บเพจหลังจากวางสวิตช์และจอยสติ๊กจะมีลักษณะดังนี้
จากนั้นเราจะต้องเปิดใช้งานเซ็นเซอร์ G เปิด / ปิดการใช้งานปุ่มพร้อมกับจอยสติ๊กเพื่อให้เราสามารถเคลื่อนหุ่นยนต์ด้วยการเอียงโทรศัพท์ในทิศทางซ้ายขวาขึ้นและลง ใช้ปุ่มนี้เพื่อเปิดและปิดใช้งานเซ็นเซอร์ G เมื่อเซ็นเซอร์ G ถูกปิดใช้งานรถยนต์สามารถควบคุมได้โดยการเลื่อนจอยสติ๊ก เพื่อวาง G เซ็นเซอร์เปิด / ปิดปุ่มคลิกที่จอยสติ๊กที่คุณวางไว้ในอินเตอร์เฟซและด้านซ้ายจะมีคุณสมบัติส่วนจะมีตัวเลือกในที่สุดสำหรับการวางปุ่มเซ็นเซอร์ G ใกล้จอยสติ๊ก, เพื่อวางปุ่ม G sensor ไว้ที่ใดก็ได้ที่คุณต้องการ หน้าเว็บหลังจากนี้จะมีลักษณะเช่นนี้
หลังจากนั้นคลิกที่ปุ่ม“รหัสที่มาได้รับ” และบันทึกไว้บนคอมพิวเตอร์ของคุณ ดาวน์โหลดห้องสมุดจากที่นี่และบันทึกลงในโฟลเดอร์ห้องสมุด Arduino รวบรวมรหัสที่ดาวน์โหลดเพื่อตรวจสอบว่าไม่มีข้อผิดพลาด นี่ไม่ใช่รหัสที่จะเรียกใช้ Robot แต่จะช่วยในการใช้ App กับ Arduino ดาวน์โหลดแอพได้จากที่นี่หรือไปที่ Play สโตร์และดาวน์โหลดแอป RemoteXY จากแอนดรอยด์สมาร์ทโฟน
สำหรับการสร้างอินเทอร์เฟซเพื่อควบคุมรถหุ่นยนต์โดยใช้ RemoteXY app คุณจะต้องไปที่ลิงก์ต่อไปนี้
http://remotexy.com/en/editor/หน้าเว็บจะมีลักษณะดังนี้
แล้วจากด้านซ้ายของหน้าจอ, รับปุ่มสวิทช์และจอยสติ๊กและวางไว้ในอินเตอร์เฟซมือถือ ปุ่มจะเปิดไฟที่ขา 13 ซึ่งเชื่อมต่ออยู่ภายใน Arduino และจอยสติ๊กจะย้ายรถหุ่นยนต์ เว็บเพจหลังจากวางสวิตช์และจอยสติ๊กจะมีลักษณะดังนี้
จากนั้นเราจะต้องเปิดใช้งานเซ็นเซอร์ G เปิด / ปิดการใช้งานปุ่มพร้อมกับจอยสติ๊กเพื่อให้เราสามารถเคลื่อนหุ่นยนต์ด้วยการเอียงโทรศัพท์ในทิศทางซ้ายขวาขึ้นและลง ใช้ปุ่มนี้เพื่อเปิดและปิดใช้งานเซ็นเซอร์ G เมื่อเซ็นเซอร์ G ถูกปิดใช้งานรถยนต์สามารถควบคุมได้โดยการเลื่อนจอยสติ๊ก เพื่อวาง G เซ็นเซอร์เปิด / ปิดปุ่มคลิกที่จอยสติ๊กที่คุณวางไว้ในอินเตอร์เฟซและด้านซ้ายจะมีคุณสมบัติส่วนจะมีตัวเลือกในที่สุดสำหรับการวางปุ่มเซ็นเซอร์ G ใกล้จอยสติ๊ก, เพื่อวางปุ่ม G sensor ไว้ที่ใดก็ได้ที่คุณต้องการ หน้าเว็บหลังจากนี้จะมีลักษณะเช่นนี้
หลังจากนั้นคลิกที่ปุ่ม“รหัสที่มาได้รับ” และบันทึกไว้บนคอมพิวเตอร์ของคุณ ดาวน์โหลดห้องสมุดจากที่นี่และบันทึกลงในโฟลเดอร์ห้องสมุด Arduino รวบรวมรหัสที่ดาวน์โหลดเพื่อตรวจสอบว่าไม่มีข้อผิดพลาด นี่ไม่ใช่รหัสที่จะเรียกใช้ Robot แต่จะช่วยในการใช้ App กับ Arduino ดาวน์โหลดแอพได้จากที่นี่หรือไปที่ Play สโตร์และดาวน์โหลดแอป RemoteXY จากแอนดรอยด์สมาร์ทโฟน
แผนผังวงจรและคำอธิบาย:
ก่อนอื่นเราจะติดต่อกับ L298N motor controller กับ Arduino ต่อขา ENA และ ENB ของตัวควบคุมมอเตอร์กับขา Arduino 12 และ 11 ตามลำดับ หมุดสองขานี้ใช้สำหรับการควบคุม PWM ของมอเตอร์ การใช้หมุดนี้เราสามารถเพิ่มหรือลดความเร็วของรถได้ จากนั้นต่อ IN1, IN2, IN3 และ IN4 เข้ากับหมุด Arduino 10, 9, 8 และ 7 ตามลำดับ หมุดเหล่านี้จะหมุนมอเตอร์ทั้งสองทิศทาง (ตามเข็มนาฬิกาและทวนเข็มนาฬิกา)
ในการขับเคลื่อนมอเตอร์ให้เชื่อมต่อประจุบวกและลบของแบตเตอรี่กับ 12V และพื้นของตัวควบคุมมอเตอร์ จากนั้นเชื่อมต่อ 5V และพื้นดินจากตัวควบคุมมอเตอร์ไปยัง Arduino Vin และพื้น
จากนั้นเราจะเชื่อมต่อโมดูลบลูทู ธ HC-06 กับ arduino ถ้าคุณมี HC-05 แล้วจะใช้งานได้เช่นกัน เชื่อมต่อ VCC กับพื้นของโมดูลบลูทู ธ ไปยัง 5V และพื้นของ Arduino จากนั้นต่อขา TX ของ Bluetooth Module กับขา 2 ของ Arduino และขา RX ไปที่ขา 3 ของ Arduino ตรวจสอบรถของเล่นควบคุมด้วยบลูทู ธ โดยใช้ Arduinoเพื่อเรียนรู้เพิ่มเติมเกี่ยวกับการใช้ Bluetooth กับ Arduino
ก่อนอื่นเราจะติดต่อกับ L298N motor controller กับ Arduino ต่อขา ENA และ ENB ของตัวควบคุมมอเตอร์กับขา Arduino 12 และ 11 ตามลำดับ หมุดสองขานี้ใช้สำหรับการควบคุม PWM ของมอเตอร์ การใช้หมุดนี้เราสามารถเพิ่มหรือลดความเร็วของรถได้ จากนั้นต่อ IN1, IN2, IN3 และ IN4 เข้ากับหมุด Arduino 10, 9, 8 และ 7 ตามลำดับ หมุดเหล่านี้จะหมุนมอเตอร์ทั้งสองทิศทาง (ตามเข็มนาฬิกาและทวนเข็มนาฬิกา)
ในการขับเคลื่อนมอเตอร์ให้เชื่อมต่อประจุบวกและลบของแบตเตอรี่กับ 12V และพื้นของตัวควบคุมมอเตอร์ จากนั้นเชื่อมต่อ 5V และพื้นดินจากตัวควบคุมมอเตอร์ไปยัง Arduino Vin และพื้น
จากนั้นเราจะเชื่อมต่อโมดูลบลูทู ธ HC-06 กับ arduino ถ้าคุณมี HC-05 แล้วจะใช้งานได้เช่นกัน เชื่อมต่อ VCC กับพื้นของโมดูลบลูทู ธ ไปยัง 5V และพื้นของ Arduino จากนั้นต่อขา TX ของ Bluetooth Module กับขา 2 ของ Arduino และขา RX ไปที่ขา 3 ของ Arduino ตรวจสอบรถของเล่นควบคุมด้วยบลูทู ธ โดยใช้ Arduinoเพื่อเรียนรู้เพิ่มเติมเกี่ยวกับการใช้ Bluetooth กับ Arduino
คำอธิบายโค้ด:
รหัส Arduinoเต็มรูปแบบสำหรับรถหุ่นยนต์ควบคุมด้วยมือนี้ได้รับด้านล่างในส่วนโค้ดที่นี่เราจะเข้าใจวิธีการทำงานของรหัสนี้
ประการแรกเราได้รวมไลบรารีสำหรับซอฟต์แวร์ Serial และ RemoteXY แล้ว ไลบรารี RemoteXY จะช่วยเราในการตั้งค่าแอปด้วย Arduino ผ่านทางเราจะควบคุมรถหุ่นยนต์ หลังจากนั้นเราได้กำหนดหมุดสำหรับโมดูลบลูทู ธ TX จากโมดูลบลูทู ธ เชื่อมต่อกับขา 2 ของ Arduino ซึ่งเป็นขา RX ของ Arduino และ RX จากโมดูลบลูทู ธ จะเชื่อมต่อกับขา 3 ของ Arduino ซึ่ง คือขา TX ของ Arduino และตั้งค่าอัตรา baud ของโมดูลบลูทู ธ ที่ 9600
#define REMOTEXY_MODE__SOFTWARESERIAL
#include <SoftwareSerial.h> // รวมไลบรารีไฟล์ซอฟต์แวร์
# include <RemoteXY.h> // รวมไลบรารีของรีโมต
/ * การตั้งค่าการเชื่อมต่อ RemoteXY * /
#define REMOTEXY_SERIAL_RX 2 // กำหนดพิน 2 เป็นขา RX
#define REMOTEXY_SERIAL_TX 3 // กำหนดพิน 3 เป็นขา TX
#define REMOTEXY_SERIAL_SPEED 9600 // การตั้งค่าอัตราบิตที่ 9600
รหัสต่อไปนี้จะเพิ่มหรือลดความเร็วของมอเตอร์ เมื่อจอยสติ๊กอยู่ที่กึ่งกลางความเร็วจะเป็นศูนย์และเมื่อมันอยู่ในทิศทางไปข้างหน้าความเร็วจะเพิ่มขึ้นจากศูนย์ถึง 100 ความเร็วจะลดลงจาก 0 ถึง -100 เมื่อรถเคลื่อนเข้า ทิศทางย้อนกลับ รถยังสามารถเคลื่อนย้ายได้เฉพาะความเร็วซึ่งสามารถทำได้โดยให้สัญญาณ PWM สัญญาณ PWM จะถูกส่งไปยังมอเตอร์ตามการหมุนของจอยสติ๊ก
ถ้า (motor_speed> 100) motor_speed = 100;
if (motor_speed <-100) motor_speed = -100;
if (motor_speed> 0) {
digitalWrite (ตัวชี้ [0], สูง);
digitalWrite (ตัวชี้ [1], ต่ำ);
analogWrite (ตัวชี้ [2], motor_speed * 2.55);
}
else if (motor_speed <0) {
digitalWrite (ตัวชี้ [0], ต่ำ);
digitalWrite (ตัวชี้ [1], สูง);
analogWrite (ตัวชี้ [2], (-motor_speed) * 2.55);
}
อื่น {
digitalWrite (ตัวชี้ [0], ต่ำ);
digitalWrite (ตัวชี้ [1], ต่ำ);
analogWrite (ตัวชี้ [2], 0);
}
ในโค้ดต่อไปนี้เราได้กำหนดฟังก์ชันที่จะเรียกเมื่อใดก็ตามที่เราจะย้ายจอยสติ๊กในแอป เมื่อเราจะเปิดสวิทช์ใน app แล้วตรรกะ 1 จะได้รับไป pin 13 ของ Arduino ซึ่งจะเปิด Pin LED ขณะเคลื่อนที่หุ่นยนต์ไปข้างหน้าและถอยหลัง ฟังก์ชันSpeedจะถูกเรียก
void loop ()
{
RemoteXY_Handler ();
digitalWrite (ledpin, (RemoteXY.switch_1 == 0)? LOW: HIGH);
ความเร็ว (first_motor, RemoteXY.joystick_1_y - RemoteXY.joystick_1_x);
ความเร็ว (second_motor, RemoteXY.joystick_1_y + RemoteXY.joystick_1_x);
}
รหัส Arduinoเต็มรูปแบบสำหรับรถหุ่นยนต์ควบคุมด้วยมือนี้ได้รับด้านล่างในส่วนโค้ดที่นี่เราจะเข้าใจวิธีการทำงานของรหัสนี้
ประการแรกเราได้รวมไลบรารีสำหรับซอฟต์แวร์ Serial และ RemoteXY แล้ว ไลบรารี RemoteXY จะช่วยเราในการตั้งค่าแอปด้วย Arduino ผ่านทางเราจะควบคุมรถหุ่นยนต์ หลังจากนั้นเราได้กำหนดหมุดสำหรับโมดูลบลูทู ธ TX จากโมดูลบลูทู ธ เชื่อมต่อกับขา 2 ของ Arduino ซึ่งเป็นขา RX ของ Arduino และ RX จากโมดูลบลูทู ธ จะเชื่อมต่อกับขา 3 ของ Arduino ซึ่ง คือขา TX ของ Arduino และตั้งค่าอัตรา baud ของโมดูลบลูทู ธ ที่ 9600
#define REMOTEXY_MODE__SOFTWARESERIAL #include <SoftwareSerial.h> // รวมไลบรารีไฟล์ซอฟต์แวร์ # include <RemoteXY.h> // รวมไลบรารีของรีโมต / * การตั้งค่าการเชื่อมต่อ RemoteXY * / #define REMOTEXY_SERIAL_RX 2 // กำหนดพิน 2 เป็นขา RX #define REMOTEXY_SERIAL_TX 3 // กำหนดพิน 3 เป็นขา TX #define REMOTEXY_SERIAL_SPEED 9600 // การตั้งค่าอัตราบิตที่ 9600
รหัสต่อไปนี้จะเพิ่มหรือลดความเร็วของมอเตอร์ เมื่อจอยสติ๊กอยู่ที่กึ่งกลางความเร็วจะเป็นศูนย์และเมื่อมันอยู่ในทิศทางไปข้างหน้าความเร็วจะเพิ่มขึ้นจากศูนย์ถึง 100 ความเร็วจะลดลงจาก 0 ถึง -100 เมื่อรถเคลื่อนเข้า ทิศทางย้อนกลับ รถยังสามารถเคลื่อนย้ายได้เฉพาะความเร็วซึ่งสามารถทำได้โดยให้สัญญาณ PWM สัญญาณ PWM จะถูกส่งไปยังมอเตอร์ตามการหมุนของจอยสติ๊ก
ถ้า (motor_speed> 100) motor_speed = 100; if (motor_speed <-100) motor_speed = -100; if (motor_speed> 0) { digitalWrite (ตัวชี้ [0], สูง); digitalWrite (ตัวชี้ [1], ต่ำ); analogWrite (ตัวชี้ [2], motor_speed * 2.55); } else if (motor_speed <0) { digitalWrite (ตัวชี้ [0], ต่ำ); digitalWrite (ตัวชี้ [1], สูง); analogWrite (ตัวชี้ [2], (-motor_speed) * 2.55); } อื่น { digitalWrite (ตัวชี้ [0], ต่ำ); digitalWrite (ตัวชี้ [1], ต่ำ); analogWrite (ตัวชี้ [2], 0); }
ในโค้ดต่อไปนี้เราได้กำหนดฟังก์ชันที่จะเรียกเมื่อใดก็ตามที่เราจะย้ายจอยสติ๊กในแอป เมื่อเราจะเปิดสวิทช์ใน app แล้วตรรกะ 1 จะได้รับไป pin 13 ของ Arduino ซึ่งจะเปิด Pin LED ขณะเคลื่อนที่หุ่นยนต์ไปข้างหน้าและถอยหลัง ฟังก์ชันSpeedจะถูกเรียก
void loop () { RemoteXY_Handler (); digitalWrite (ledpin, (RemoteXY.switch_1 == 0)? LOW: HIGH); ความเร็ว (first_motor, RemoteXY.joystick_1_y - RemoteXY.joystick_1_x); ความเร็ว (second_motor, RemoteXY.joystick_1_y + RemoteXY.joystick_1_x); }
วิธีเรียกใช้:
เพิ่มไลบรารีของ RemoteXY ลงในห้องสมุด Arduino และอัปโหลดโค้ดใน Arduino IDE จากนั้นดาวน์โหลดแอปพลิเคชันในโทรศัพท์มือถือของคุณแล้วเปิดบลูทู ธ อินเทอร์เฟซของแอปจะมีลักษณะดังนี้
จากนั้นไปที่บลูทู ธ และเปิดบลูธูทที่นั่น หลังจากเปิดเครื่องแล้วอุปกรณ์จะแสดงอุปกรณ์บลูทู ธ เลือกโมดูลบลูทู ธ HC-06 จากนั้นจะนำคุณไปสู่อินเทอร์เฟซจากที่คุณสามารถควบคุมหุ่นยนต์คาร์ได้
นี่คือวิธีที่เราสามารถใช้Gravity Sensor ภายในโทรศัพท์เคลื่อนที่ของเราเพื่อย้ายหุ่นยนต์ คุณสามารถทดลองเพิ่มเติมและค้นหาการใช้เซนเซอร์ G เพื่อควบคุมสิ่งต่างๆภายนอกโดยใช้ไมโครคอนโทรลเลอร์ในระหว่าง (เช่น Arduino)
รหัส
#define REMOTEXY_MODE__SOFTWARESERIAL
#include <SoftwareSerial.h> // รวมไลบรารี serial ซอฟต์แวร์
# include <RemoteXY.h> // รวมไลบรารีของรีโมต
/ * การตั้งค่าการเชื่อมต่อ RemoteXY * /
#define REMOTEXY_SERIAL_RX 2 // กำหนด PIN 2 เป็น RX pin
# define REMOTEXY_SERIAL_TX 3 // กำหนด PIN 3 เป็น TX pin
# define REMOTEXY_SERIAL_SPEED 9600 // การตั้งค่า Baudrate ที่ 9600
unsigned char RemoteXY_CONF [] = // การกำหนดค่า
รีโมตคอนโทรล {3,0,23,0,1,5,5,15,41,11
, 43,43,1,2,0,6,5,27,11,5
, 79,78,0,79,70,70,0};
struct {/ / ฟังก์ชันสำหรับการประกาศตัวแปรที่
ลงนามใน joystick_1_x; / / จอยสติกแกน x
เซ็นจอยสติ๊กจอยสติ๊ก_1_y; / / จอยสติกแกน y แกน
unsigned char_1; // ตัวแปรสำหรับสวิตช์
unsigned char connect_flag;
} RemoteXY;
// กำหนดหมุดสำหรับมอเตอร์แรกกำหนด
# IN1 10
# กำหนด IN2 9
# กำหนด ENA 12
// กำหนดหมุดสำหรับมอเตอร์ที่สอง
# กำหนด IN3 8
# กำหนด IN4 7
# กำหนด ENB 11
/ กำหนดขา LED
# กำหนด ledpin 13
unsigned char first_motor [3] =
{IN1, IN2, ENA};
unsigned char second_motor [3] =
{IN3, IN4, ENB};
ความเร็วโมฆะ (unsigned char * pointer, int motor_speed)
{
if (motor_speed> 100) motor_speed = 100;
if (motor_speed <-100) motor_speed = -100;
if (motor_speed> 0) {
digitalWrite (ตัวชี้ [0], สูง);
digitalWrite (ตัวชี้ [1], ต่ำ);
analogWrite (ตัวชี้ [2], motor_speed * 2.55);
}
else if (motor_speed <0) {
digitalWrite (ตัวชี้ [0], ต่ำ);
digitalWrite (ตัวชี้ [1], สูง);
analogWrite (ตัวชี้ [2], (-motor_speed) * 2.55);
}
else {
DigitalWrite (ตัวชี้ [0], LOW);
digitalWrite (ตัวชี้ [1], ต่ำ);
analogWrite (ตัวชี้ [2], 0);
}
}
การตั้งค่าเป็นโมฆะ ()
{
// กำหนดพินมอเตอร์เป็น
PIN ขาออกขาออก(IN1, OUTPUT);
pinMode (IN2, OUTPUT);
pinMode (IN3, เอาท์พุท);
pinMode (IN4, เอาท์พุท);
pinMode (ledpin, OUTPUT);
RemoteXY_Init ();
}
void loop ()
{
RemoteXY_Handler ();
digitalWrite (ledpin, (RemoteXY.switch_1 == 0)? LOW: HIGH);
ความเร็ว (first_motor, RemoteXY.joystick_1_y - RemoteXY.joystick_1_x);
ความเร็ว (second_motor, RemoteXY.joystick_1_y + RemoteXY.joystick_1_x);
}
วีดีโอ
เพิ่มไลบรารีของ RemoteXY ลงในห้องสมุด Arduino และอัปโหลดโค้ดใน Arduino IDE จากนั้นดาวน์โหลดแอปพลิเคชันในโทรศัพท์มือถือของคุณแล้วเปิดบลูทู ธ อินเทอร์เฟซของแอปจะมีลักษณะดังนี้
จากนั้นไปที่บลูทู ธ และเปิดบลูธูทที่นั่น หลังจากเปิดเครื่องแล้วอุปกรณ์จะแสดงอุปกรณ์บลูทู ธ เลือกโมดูลบลูทู ธ HC-06 จากนั้นจะนำคุณไปสู่อินเทอร์เฟซจากที่คุณสามารถควบคุมหุ่นยนต์คาร์ได้
นี่คือวิธีที่เราสามารถใช้Gravity Sensor ภายในโทรศัพท์เคลื่อนที่ของเราเพื่อย้ายหุ่นยนต์ คุณสามารถทดลองเพิ่มเติมและค้นหาการใช้เซนเซอร์ G เพื่อควบคุมสิ่งต่างๆภายนอกโดยใช้ไมโครคอนโทรลเลอร์ในระหว่าง (เช่น Arduino)
รหัส
#define REMOTEXY_MODE__SOFTWARESERIAL
#include <SoftwareSerial.h> // รวมไลบรารี serial ซอฟต์แวร์
# include <RemoteXY.h> // รวมไลบรารีของรีโมต
#include <SoftwareSerial.h> // รวมไลบรารี serial ซอฟต์แวร์
# include <RemoteXY.h> // รวมไลบรารีของรีโมต
/ * การตั้งค่าการเชื่อมต่อ RemoteXY * /
#define REMOTEXY_SERIAL_RX 2 // กำหนด PIN 2 เป็น RX pin
# define REMOTEXY_SERIAL_TX 3 // กำหนด PIN 3 เป็น TX pin
# define REMOTEXY_SERIAL_SPEED 9600 // การตั้งค่า Baudrate ที่ 9600
#define REMOTEXY_SERIAL_RX 2 // กำหนด PIN 2 เป็น RX pin
# define REMOTEXY_SERIAL_TX 3 // กำหนด PIN 3 เป็น TX pin
# define REMOTEXY_SERIAL_SPEED 9600 // การตั้งค่า Baudrate ที่ 9600
unsigned char RemoteXY_CONF [] = // การกำหนดค่า
รีโมตคอนโทรล {3,0,23,0,1,5,5,15,41,11
, 43,43,1,2,0,6,5,27,11,5
, 79,78,0,79,70,70,0};
struct {/ / ฟังก์ชันสำหรับการประกาศตัวแปรที่
ลงนามใน joystick_1_x; / / จอยสติกแกน x
เซ็นจอยสติ๊กจอยสติ๊ก_1_y; / / จอยสติกแกน y แกน
unsigned char_1; // ตัวแปรสำหรับสวิตช์
unsigned char connect_flag;
รีโมตคอนโทรล {3,0,23,0,1,5,5,15,41,11
, 43,43,1,2,0,6,5,27,11,5
, 79,78,0,79,70,70,0};
struct {/ / ฟังก์ชันสำหรับการประกาศตัวแปรที่
ลงนามใน joystick_1_x; / / จอยสติกแกน x
เซ็นจอยสติ๊กจอยสติ๊ก_1_y; / / จอยสติกแกน y แกน
unsigned char_1; // ตัวแปรสำหรับสวิตช์
unsigned char connect_flag;
} RemoteXY;
// กำหนดหมุดสำหรับมอเตอร์แรกกำหนด
# IN1 10
# กำหนด IN2 9
# กำหนด ENA 12
# IN1 10
# กำหนด IN2 9
# กำหนด ENA 12
// กำหนดหมุดสำหรับมอเตอร์ที่สอง
# กำหนด IN3 8
# กำหนด IN4 7
# กำหนด ENB 11
# กำหนด IN3 8
# กำหนด IN4 7
# กำหนด ENB 11
/ กำหนดขา LED
# กำหนด ledpin 13
# กำหนด ledpin 13
unsigned char first_motor [3] =
{IN1, IN2, ENA};
unsigned char second_motor [3] =
{IN3, IN4, ENB};
{IN1, IN2, ENA};
unsigned char second_motor [3] =
{IN3, IN4, ENB};
ความเร็วโมฆะ (unsigned char * pointer, int motor_speed)
{
if (motor_speed> 100) motor_speed = 100;
if (motor_speed <-100) motor_speed = -100;
if (motor_speed> 0) {
digitalWrite (ตัวชี้ [0], สูง);
digitalWrite (ตัวชี้ [1], ต่ำ);
analogWrite (ตัวชี้ [2], motor_speed * 2.55);
}
else if (motor_speed <0) {
digitalWrite (ตัวชี้ [0], ต่ำ);
digitalWrite (ตัวชี้ [1], สูง);
analogWrite (ตัวชี้ [2], (-motor_speed) * 2.55);
}
else {
DigitalWrite (ตัวชี้ [0], LOW);
digitalWrite (ตัวชี้ [1], ต่ำ);
analogWrite (ตัวชี้ [2], 0);
}
}
{
if (motor_speed> 100) motor_speed = 100;
if (motor_speed <-100) motor_speed = -100;
if (motor_speed> 0) {
digitalWrite (ตัวชี้ [0], สูง);
digitalWrite (ตัวชี้ [1], ต่ำ);
analogWrite (ตัวชี้ [2], motor_speed * 2.55);
}
else if (motor_speed <0) {
digitalWrite (ตัวชี้ [0], ต่ำ);
digitalWrite (ตัวชี้ [1], สูง);
analogWrite (ตัวชี้ [2], (-motor_speed) * 2.55);
}
else {
DigitalWrite (ตัวชี้ [0], LOW);
digitalWrite (ตัวชี้ [1], ต่ำ);
analogWrite (ตัวชี้ [2], 0);
}
}
การตั้งค่าเป็นโมฆะ ()
{
// กำหนดพินมอเตอร์เป็น
PIN ขาออกขาออก(IN1, OUTPUT);
pinMode (IN2, OUTPUT);
pinMode (IN3, เอาท์พุท);
pinMode (IN4, เอาท์พุท);
pinMode (ledpin, OUTPUT);
RemoteXY_Init ();
}
{
// กำหนดพินมอเตอร์เป็น
PIN ขาออกขาออก(IN1, OUTPUT);
pinMode (IN2, OUTPUT);
pinMode (IN3, เอาท์พุท);
pinMode (IN4, เอาท์พุท);
pinMode (ledpin, OUTPUT);
RemoteXY_Init ();
}
void loop ()
{
RemoteXY_Handler ();
digitalWrite (ledpin, (RemoteXY.switch_1 == 0)? LOW: HIGH);
ความเร็ว (first_motor, RemoteXY.joystick_1_y - RemoteXY.joystick_1_x);
ความเร็ว (second_motor, RemoteXY.joystick_1_y + RemoteXY.joystick_1_x);
}
{
RemoteXY_Handler ();
digitalWrite (ledpin, (RemoteXY.switch_1 == 0)? LOW: HIGH);
ความเร็ว (first_motor, RemoteXY.joystick_1_y - RemoteXY.joystick_1_x);
ความเร็ว (second_motor, RemoteXY.joystick_1_y + RemoteXY.joystick_1_x);
}
วีดีโอ
ไม่มีความคิดเห็น:
แสดงความคิดเห็น