สารบัญ:
- ขั้นตอนที่ 1: สิ่งที่คุณอาจต้องการ…
- ขั้นตอนที่ 2: เชื่อมต่อฮาร์ดแวร์
- ขั้นตอนที่ 3: ตั้งโปรแกรม Arduino
- ขั้นตอนที่ 4: ติดตั้งซอฟต์แวร์
- ขั้นตอนที่ 5: ใช้โปรแกรมส่วนต่อประสาน
- ขั้นตอนที่ 6: สร้างสรรค์
วีดีโอ: Arduino ตาม Serial Servo Controller: 6 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:09
นี่คือคอนโทรลเลอร์อนุกรมอย่างง่ายสำหรับเซอร์โวหลายตัวที่ใช้ Arduino (สั่งสอนครั้งแรกของฉันด้วย:))
งานส่วนใหญ่มาจากการให้ซอฟต์แวร์พูดคุยกับ Arduino และสร้างโปรโตคอลสำหรับส่งข้อมูล สำหรับด้านฮาร์ดแวร์ทั้งหมดที่ฉันใช้คือเซอร์โวสองตัว (เซอร์โวมาตรฐาน Parallax ที่นี่) Sparkfun Arduino ProtoShield และ Arduino Duemilanove ที่มี ATMEGA328 แต่ชิ้นส่วนเหล่านี้ส่วนใหญ่สามารถใช้แทนกันได้ ฉันคิดว่าโปรเจ็กต์นี้เป็นส่วนหนึ่งของระบบ RC แต่การตั้งค่าการสื่อสารใช้เวลานาน หากใครมีการปรับปรุงความคิดหรือข้อบกพร่องใด ๆ โปรดแสดงความคิดเห็น แก้ไข: ฉันเขียนสิ่งนี้เมื่อสักครู่นี้เพิ่งจะเผยแพร่เมื่อเร็ว ๆ นี้
ขั้นตอนที่ 1: สิ่งที่คุณอาจต้องการ…
บางสิ่งที่คุณจะต้องสร้างสิ่งนี้ 1. บอร์ด Arduino (คุณเลือก) 2. เซอร์โวสองตัว (หรือหนึ่งตัว) 3. สายจัมเปอร์ 4. Visual Studio 2008 Express - ลิงค์ (ตัวเลือก) 5. Arduino IDE - ลิงค์ ขออภัยแฟน ๆ Linux และ Apple โปรแกรมของฉันทำงานเท่านั้น windows ในตอนนี้ แต่คุณยังสามารถส่งคำสั่งซีเรียลไปยัง Arduino ได้ด้วยตนเองโดยไม่ต้องเปลี่ยนรหัส
ขั้นตอนที่ 2: เชื่อมต่อฮาร์ดแวร์
ขั้นตอนนี้ไม่มีอะไรซับซ้อนมาก แค่เชื่อมต่อเซอร์โวตัวหนึ่งกับพิน 9 และอีกอันเพื่อพิน 10
ขั้นตอนที่ 3: ตั้งโปรแกรม Arduino
ตอนนี้คุณสามารถอัปโหลดภาพร่างไปยัง Arduino
นี่คือการแจกแจงโค้ดอย่างง่าย: #include Servo myservo; // สร้างวัตถุเซอร์โวเพื่อควบคุมเซอร์โวเซอร์โว myservo1; int incomingByte = 0, datacount = 0, ตัวนับ = 0, พร้อม = 0; // สำหรับข้อมูลถ่านข้อมูลอนุกรมที่เข้ามา [10]; const ถ่านตรวจสอบ[8] = "ma11hew"; คำสั่งถ่าน[3]; การตั้งค่าเป็นโมฆะ () { myservo.attach (9); myservo1.attach(10); Serial.begin(38400); // เปิดพอร์ตอนุกรมกำหนดอัตราข้อมูล Serial.println ("สวัสดี Arduino ที่นี่!"); // เพิ่มเพื่อช่วยระบุพอร์ตอนุกรม นี่เป็นเพียงการตั้งค่าพอร์ตอนุกรมและเซอร์โว int ฉัน; สำหรับ(i = 0; i<180;i++) { myservo.write(i); ล่าช้า(15); } myservo.write(5); สำหรับ (i = 0; i<180;i++) { myservo1.write (i); ล่าช้า(15); } myservo1.write(5); } การเคลื่อนไหวแบบกวาดอย่างง่ายเพื่อตรวจสอบว่าเซอร์โวทำงานอย่างถูกต้อง วงเป็นโมฆะ () { พร้อม = 0; ตัวนับ = 0; ในขณะที่ (1==1) { ถ้า (Serial.read () != ตรวจสอบ [ตัวนับ]) { แตก; } ถ้า (ตัวนับ == 6) { ล่าช้า (20); คำสั่ง[0] = Serial.read(); คำสั่ง [1] = Serial.read(); //if (Serial.read() == ((คำสั่ง [1] * 12) % 8)) // { พร้อม = 1; //} Serial.println("คำสั่งที่บันทึกไว้"); } เคาน์เตอร์ ++; ล่าช้า(2); } สิ่งนี้จะตรวจสอบบัฟเฟอร์อนุกรมสำหรับสตริงการอนุญาตที่ถูกต้อง จากนั้นจึงคว้าสองไบต์สำหรับคำสั่ง แสดงความคิดเห็นหากคำสั่งอนุญาตให้มีการตรวจสอบชั่วคราว แต่จะทำให้การเชื่อมต่อแบบแมนนวลยากขึ้น สามารถตั้งค่า ready เป็น 0 เพื่อไม่ให้แยกวิเคราะห์คำสั่ง เช่น ในกรณีที่ข้อมูลเสียหาย // ค้นหาผ่านคำสั่ง if (ready == 1) { if (command[0] == 'T') { command[0] = 0; Serial.print("การควบคุมคันเร่งที่พิน 9 ถึง: "); Serial.println(map(command[1], 32, 126, 2, 180), DEC); myservo.write(map(command[1], 32, 126, 2, 180)); } if (คำสั่ง[0] == 'S') { คำสั่ง[0] = 0; Serial.print("การควบคุมคันเร่งที่พิน 10 ถึง: "); Serial.println(map(command[1], 32, 126, 2, 180), DEC); myservo1.write(map(command[1], 32, 126, 2, 180)); } } } โค้ดที่เหลือคือการค้นหา command สำหรับคำสั่งที่ถูกต้อง (T หรือ S.) หากตรงกัน จะใช้ไบต์ถัดไปและส่งไปยังเซอร์โว เพิ่มเติมบนแผนที่ (คำสั่ง[1], 32, 126, 2, 180) ในภายหลัง… โค้ดที่นี่ขยายได้สำหรับสิ่งอื่นๆ ที่คุณต้องการ (เช่น ไฟ มอเตอร์ IR ฯลฯ) รหัสนี้ควรใช้งานได้ดีโดยไม่มี การปรับเปลี่ยน
ขั้นตอนที่ 4: ติดตั้งซอฟต์แวร์
ฉันมีสองวิธีในการติดตั้งนี้… ตัวติดตั้ง nsis: ดาวน์โหลดตัวติดตั้งที่แยกตัวเองด้านล่างและเรียกใช้ คุณจะมีตัวเลือกในการติดตั้งแหล่งที่มาระหว่างการติดตั้ง แพ็คเกจไบนารีตัวติดตั้งจะติดตั้ง core c++ dll เพื่อให้สามารถรันบนคอมพิวเตอร์โดยไม่ต้องติดตั้ง visual c++ อยู่แล้ว เมื่อตัวติดตั้งเสร็จสิ้น คุณสามารถเรียกใช้ได้จากเดสก์ท็อปหรือเมนูเริ่ม zip way (ไม่ได้รับการยืนยัน): ดาวน์โหลดและเรียกใช้ควรใช้งานได้ อาจจะ. (ไฟล์ zip มีโครงสร้างโฟลเดอร์เดียวกับที่สร้างโดยโปรแกรมติดตั้ง โดยไม่มีแหล่งที่มา ฉันไม่มีเครื่องที่ไม่มี visual Studio เพื่อทดสอบ ดังนั้นมันอาจไม่ทำงาน)
ขั้นตอนที่ 5: ใช้โปรแกรมส่วนต่อประสาน
ในการใช้โปรแกรมก่อนอื่นให้เลือกอัตราบอดที่กำหนดไว้ในร่าง Arduino ร่างที่ไม่มีการแก้ไขมีค่าเริ่มต้นเป็น 38400 บอด แต่สามารถเปลี่ยนแปลงได้เพื่อให้เหมาะกับความต้องการของคุณ เช่น ลิงก์วิทยุที่ช้ากว่า หมายเหตุ: อัตราบอดที่สูงกว่า 38400 ยังไม่เสถียรนัก ฉันคิดว่าเป็นเพราะ uart เต็มก่อนจึงจะสามารถประมวลผลข้อมูลได้ จากนั้นเลือกพอร์ต COM ที่จะใช้ ค่าเริ่มต้นของโปรแกรมเป็น COM4 อย่าลืมเปลี่ยน มิฉะนั้นโปรแกรมจะขัดข้อง สุดท้าย คลิกเปิด หากทุกอย่างเป็นไปด้วยดี โปรแกรมจะเปิดพอร์ตอนุกรมที่เลือกที่อัตราบอดที่เลือก หากไม่เป็นเช่นนั้น โปรแกรมอาจจะหยุดทำงานโดยมีข้อยกเว้นที่ไม่สามารถจัดการได้ ตรวจสอบให้แน่ใจว่าพอร์ตถูกต้องแล้วลองอีกครั้ง ใช้กล่องข้อความเพื่อส่งคำสั่งโดยตรงไปยัง Arduino "map(command[1], 32, 126, 2, 180)" ปรับขนาดคำสั่งที่เป็นไปได้ทั้งหมด 94 คำสั่ง, *space* through ~, สามารถอ่านได้โดย Arduino ใน ASCII ถึง 2 ถึง 180 สำหรับเซอร์โว ไบต์ใดๆ ที่น้อยกว่า ASCII 32 (ช่องว่าง) หรือสูงกว่า 126 (~) ค่าเริ่มต้นเป็น 63 (?) แทร็กบาร์จัดเตรียมอินเทอร์เฟซ eaiser สำหรับคำสั่งโดยตรง แต่ละขั้นตอนจะส่งคำสั่งซีเรียลไปยัง Arduino แบบค่อยเป็นค่อยไป
ขั้นตอนที่ 6: สร้างสรรค์
ลองนึกถึงสิ่งดีๆ ที่จะทำกับสิ่งนี้ แนวคิดบางประการ: 1. เค้นระยะไกลสำหรับรถยนต์ 2. เมาท์กล้อง 3 มิติ 3. รถแลนด์โรเวอร์ใต้น้ำ ขอให้สนุก!!
แนะนำ:
DIY Lab - HD Centrifuge Arduino ตาม: 3 ขั้นตอน
DIY Lab - HD Centrifuge Arduino ที่ใช้: PT // Construimos uma centrífuga utilizando um HD velho com controle de velocidade baseado em Arduino EN // เราสร้างเครื่องหมุนเหวี่ยงโดยใช้ HD แบบเก่าพร้อมการควบคุมความเร็วตาม Arduino
เค้าโครงรถไฟจำลองอัตโนมัติที่ใช้รถไฟสองขบวน (V2.0) - Arduino ตาม: 15 ขั้นตอน (พร้อมรูปภาพ)
เค้าโครงรถไฟจำลองอัตโนมัติที่ใช้รถไฟสองขบวน (V2.0) | อิงจาก Arduino: เค้าโครงรางรถไฟจำลองอัตโนมัติโดยใช้ไมโครคอนโทรลเลอร์ Arduino เป็นวิธีที่ยอดเยี่ยมในการรวมไมโครคอนโทรลเลอร์ การเขียนโปรแกรม และการสร้างรางจำลองเป็นงานอดิเรกเดียว มีโครงการมากมายที่พร้อมใช้งานบนรถไฟแบบอัตโนมัติบนรถไฟจำลอง
Serial UDP/IP Gateway สำหรับ Arduino ตาม ESP8266 Shield: 8 ขั้นตอน
Serial UDP/IP Gateway สำหรับ Arduino ตาม ESP8266 Shield: ฉันเผยแพร่แล้วในปี 2559 คำสั่งนี้ "วิธีสร้างเกตเวย์ Wifi ของคุณเองเพื่อเชื่อมต่อ Arduino กับเครือข่าย IP" เนื่องจากฉันได้ปรับปรุงโค้ดบางส่วนแล้วและยังคงใช้โซลูชันนี้อยู่ อย่างไรก็ตาม ขณะนี้มี ESP8266 shields ที่เ
เครื่องเล่นขลุ่ย Arduino ตาม: 10 ขั้นตอน (พร้อมรูปภาพ)
เครื่องเล่นขลุ่ยที่ใช้ Arduino: ในคำแนะนำนี้ ฉันกำลังพยายามนำเสนอโครงการที่ผสมผสานศิลปะกับวิศวกรรม เครื่องที่เล่นขลุ่ย มันควบคุมบันทึกโดยใช้ Arduino สามารถตั้งโปรแกรมเพลงหรือเพลงต่างๆ บน Arduino ซึ่ง Arduino เล่นบนขลุ่ย ไม่มี
Arduino ตาม 3x3 LED Cube: 7 ขั้นตอน (พร้อมรูปภาพ)
Arduino Based 3x3 LED Cube: สวัสดีและยินดีต้อนรับสู่ Instructable ตัวแรกของฉัน ฉันขอนำเสนอการออกแบบที่เรียบง่ายและเรียบร้อยสำหรับผู้เริ่มต้น 3x3x3 LED cube เพื่อให้ง่ายต่อการสร้าง ฉันให้รายละเอียดของ acustom PCB คุณสามารถทำเองหรือซื้อ คำแนะนำ และคุณสามารถใช้ soft