สารบัญ:
- ขั้นตอนที่ 1: ส่วนประกอบ
- ขั้นตอนที่ 2: บอร์ดเซิร์ฟเวอร์
- ขั้นตอนที่ 3: ตัวเข้ารหัสเซิร์ฟเวอร์: คัดลอกและวาง
- ขั้นตอนที่ 4: บอร์ดลูกค้า
- ขั้นตอนที่ 5: รหัสลูกค้า: คัดลอกและวาง
- ขั้นตอนที่ 6: หมายเหตุเกี่ยวกับรหัส:
วีดีโอ: การควบคุมเซอร์โวไร้สาย: 6 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:07
โปรเจ็กต์นี้ควบคุมการหมุนของเซอร์โวแบบไร้สายโดยใช้โพเทนชิออมิเตอร์ (ลูกบิด) การหมุนถูกจำกัดไว้ที่ 180 องศา
ขั้นตอนที่ 1: ส่วนประกอบ
โครงการนี้ประกอบด้วย
- 2 บอร์ดควบคุม Arduino UNO พร้อมสายต่อ USB
- 2 nRF24L01 – โมดูลรับส่งสัญญาณ RF 2.4GHz (สำหรับความช่วยเหลือเกี่ยวกับโมดูลเหล่านี้ โปรดดูที่
- บอร์ดอะแดปเตอร์ซ็อกเก็ต 2 อัน (ชิปแบ็คแพ็ค) สำหรับ nRF24L01
- 1 ตัวเลือก Arduino Compatible 328 ProtoShield Prototype Expansion Board
- 1 เซอร์โว
- 1 โพเทนชิออมิเตอร์แบบอนาล็อก
- หัวแร้งและหัวแร้ง
- ลวด
- คีมปากแหลม
- ฉนวนหุ้ม ผมใช้เทปพันสายไฟ
ขั้นตอนที่ 2: บอร์ดเซิร์ฟเวอร์
บอร์ดเซิร์ฟเวอร์ประกอบด้วยโมดูลตัวรับส่งสัญญาณ แผงป้องกัน (ซึ่งเชื่อมต่อโดยตรงกับบอร์ด Arduino เพียงทางเดียวเท่านั้น) และเซอร์โว ฉันตัดสินใจที่จะรวมบอร์ดป้องกันเพื่อหลีกเลี่ยงเขียงหั่นขนมที่เงอะงะและให้โครงการและการตกแต่งโดยรวมให้เรียบร้อยยิ่งขึ้น
รหัสและทรัพยากรบนเว็บที่รวมอยู่ในรายการส่วนประกอบให้รายละเอียดการเชื่อมต่อโมดูลตัวรับส่งสัญญาณ ฉันตัดสินใจประสานการเชื่อมต่อแทนที่จะใช้การเชื่อมต่อชั่วคราวเหมือนในโครงการก่อนหน้า เนื่องจากฉันเป็นมือใหม่ ฉันจึงหุ้มฉนวนแต่ละจุดบัดกรีด้วยเทปพันสายไฟ (ซึ่งไม่สวยเลย)
หมุดชิลด์บอร์ดจะตรงกับพิน Arduino โดยตรง ก่อนติดชิลด์บอร์ด ฉันต่อกราวด์และพิน 5 โวลต์เข้ากับรางบอร์ดด้วยลวดและตัวประสาน ฉันยังบัดกรีสายไฟ 5 โวลต์และสายกราวด์ของส่วนประกอบเข้ากับรางชิลด์บอร์ด จากนั้นในที่สุดก็ติด Arduino เข้ากับชิลด์บอร์ด
เซอร์โวติดอยู่กับพิน 3 โวลต์สำหรับการจ่ายไฟและพินดิจิตอล 2 สำหรับการสื่อสาร
** หมายเหตุ: หลังจากสร้างเสร็จแล้ว ฉันสังเกตเห็นว่าบอร์ด Arduino ของฉันไม่เหมือนกัน ตัวรับส่งสัญญาณเซิร์ฟเวอร์ของฉันใช้พลังงานจากราง 5 โวลต์บนแผงป้องกัน ในขณะที่ตัวรับส่งสัญญาณไคลเอนต์นั้นใช้พลังงานจากพิน 3 โวลต์ แม้ว่าฉันจะถูกชักนำให้เชื่อว่าฟังก์ชันของชิปอะแดปเตอร์บนตัวรับส่งสัญญาณคือการให้แรงดันไฟฟ้าที่เหมาะสม ทั้งหมดที่ฉันสามารถพูดได้อย่างแน่นอนคือรหัสที่ให้มาตรงกับการกำหนดค่าที่แสดงในภาพสร้างเอฟเฟกต์ที่อธิบายไว้
ขั้นตอนที่ 3: ตัวเข้ารหัสเซิร์ฟเวอร์: คัดลอกและวาง
//รหัสเซิร์ฟเวอร์/* NRF24L01 Arduino CE > D8 CSN > D10 SCK > D13 MO > D11 MI > D12 RO > ไม่ได้ใช้ GND > GND VCC > 5V */ // เดินสายเครื่องรับส่งสัญญาณ
#รวม
// ห้องสมุดเซอร์โว
#รวม
// ไลบรารีตัวรับส่งสัญญาณ
#define Servopin 2
//ประกาศขาออกเซอร์โวพิน
ServoTimer2 เสิร์ฟ;
//ประกาศชื่อเซอร์โว
RH_NRF24 nrf24;
//ประกาศชื่อตัวรับส่งสัญญาณ
int timeOUT = 0;
//ตัวแปรสำหรับเซอร์โว
พัลส์ int = 90;
//ตัวแปรเก็บพัลส์
การตั้งค่าเป็นโมฆะ ()
{ serv.attach (เซอร์โวพิน); //ของเซอร์โว
Serial.begin(9600); //ตัวรับส่งสัญญาณ
ถ้า (!nrf24.init())
Serial.println("init ล้มเหลว"); //สิ่งตรวจสอบอนุกรม if (!nrf24.setChannel(12)) //ตั้งค่าช่องเป็น 125 Serial.println("setChannel ล้มเหลว"); ถ้า (!nrf24.setRF(RH_NRF24::DataRate2Mbps, RH_NRF24::TransmitPower0dBm)) Serial.println("setRF ล้มเหลว"); //สิ่งตรวจสอบซีเรียล }
วงเป็นโมฆะ ()
{ ถ้า (nrf24.available ()) { uint8_t buf [RH_NRF24_MAX_MESSAGE_LEN]; uint8_t len = sizeof(buf); if (nrf24.recv (buf, &len)) // สิ่งที่ตรวจสอบซีเรียล { Serial.print ("ได้รับคำขอ: "); พัลส์ = strtol((const ถ่าน*)buf, NULL, 10); //ประเภทข้อมูลเปลี่ยนสิ่งของ
int prin = แผนที่(พัลส์, 750, 2250, 0, 180); //ประเภทข้อมูลเปลี่ยนสิ่งของ
Serial.println(ปริน); serv.write(พัลส์); // ทำให้เซอร์โวเคลื่อนที่ } }
}
ขั้นตอนที่ 4: บอร์ดลูกค้า
บอร์ดลูกค้าประกอบด้วยโมดูลตัวรับส่งสัญญาณและโพเทนชิออมิเตอร์ โมดูลตัวรับส่งสัญญาณมีสายแบบเดียวกับบอร์ดเซิร์ฟเวอร์ ยกเว้นว่าไม่มีแผงป้องกัน จะต่อเข้ากับหมุดของบอร์ด Arduino โดยตรง
โพเทนชิออมิเตอร์ใช้ 5v กราวด์และเชื่อมต่อกับพินอะนาล็อก 2
**หมายเหตุ: ตามที่กล่าวไว้ในขั้นตอนของบอร์ดเซิร์ฟเวอร์ บอร์ด Arduino ของฉันไม่เหมือนกัน ในกรณีนี้ ตัวรับส่งสัญญาณเชื่อมต่อกับพินที่ระบุว่า 3.3V ซึ่งอยู่ติดกับพิน 5V โดยตรง แต่ดูเหมือนว่าทุกอย่างจะทำงานได้ดี
ขั้นตอนที่ 5: รหัสลูกค้า: คัดลอกและวาง
//รหัสลูกค้า/* NRF24L01 Arduino CE > D8 CSN > D10 SCK > D13 MO > D11 MI > D12 RO > ไม่ได้ใช้ GND > GND VCC > 5V */ // เดินสายเครื่องรับส่งสัญญาณ
#รวม
//ไลบรารีตัวรับส่งสัญญาณ
int potpin = A2; // โพเทนชิออมิเตอร์ delaration
ค่า int;
ถ่าน tempChar[5];
สตริง valString = ""; //ประเภทข้อมูลเปลี่ยนสิ่งของ
RH_NRF24 nrf24; //ตัวรับส่งสัญญาณ
การตั้งค่าเป็นโมฆะ ()
{ Serial.begin(9600); ถ้า (!nrf24.init()) Serial.println("init ล้มเหลว"); // ค่าเริ่มต้นหลังจากเริ่มต้นคือ 2.402 GHz (ช่อง 2), 2Mbps, 0dBm ถ้า (!nrf24.setChannel(12)) Serial.println ("setChannel ล้มเหลว"); ถ้า (!nrf24.setRF(RH_NRF24::DataRate2Mbps, RH_NRF24::TransmitPower0dBm)) Serial.println("setRF ล้มเหลว"); } // ตัวรับส่งสัญญาณ
วงเป็นโมฆะ () {
วาล = analogRead (potpin); //ของโพเทนชิโอมิเตอร์
วาล = แผนที่(วาล, 0, 1023, 750, 2250);
valString = วาล; สตริง str = (valString); str.toCharArray(tempChar, 5); //ประเภทข้อมูลเปลี่ยนสิ่งของ nrf24.send(tempChar, sizeof(tempChar));
}
ขั้นตอนที่ 6: หมายเหตุเกี่ยวกับรหัส:
โค้ดมีฟังก์ชันการแก้ปัญหาที่จำกัดในรูปแบบของความคิดเห็นจากมอนิเตอร์แบบอนุกรมในอินเทอร์เฟซซอฟต์แวร์ Arduino เมื่อดูมอนิเตอร์แบบอนุกรมจากรหัสเซิร์ฟเวอร์ (ctrl + shift + M) คุณควรจะเห็นสถานะของโพเทนชิออมิเตอร์ในรูปแบบตัวเลขระหว่าง 1 ถึง 180
นอกจากนี้ นี่คือไลบรารีสำหรับระบบไร้สายและเซอร์โว:
www.airspayce.com/mikem/arduino/RadioHead/
github.com/nabontra/ServoTimer2
แนะนำ:
การออกแบบเกมในการสะบัดใน 5 ขั้นตอน: 5 ขั้นตอน
การออกแบบเกมในการสะบัดใน 5 ขั้นตอน: การตวัดเป็นวิธีง่ายๆ ในการสร้างเกม โดยเฉพาะอย่างยิ่งเกมปริศนา นิยายภาพ หรือเกมผจญภัย
การตรวจจับใบหน้าบน Raspberry Pi 4B ใน 3 ขั้นตอน: 3 ขั้นตอน
การตรวจจับใบหน้าบน Raspberry Pi 4B ใน 3 ขั้นตอน: ในคำแนะนำนี้ เราจะทำการตรวจจับใบหน้าบน Raspberry Pi 4 ด้วย Shunya O/S โดยใช้ Shunyaface Library Shunyaface เป็นห้องสมุดจดจำใบหน้า/ตรวจจับใบหน้า โปรเจ็กต์นี้มีจุดมุ่งหมายเพื่อให้เกิดความเร็วในการตรวจจับและจดจำได้เร็วที่สุดด้วย
วิธีการติดตั้งปลั๊กอินใน WordPress ใน 3 ขั้นตอน: 3 ขั้นตอน
วิธีการติดตั้งปลั๊กอินใน WordPress ใน 3 ขั้นตอน: ในบทช่วยสอนนี้ ฉันจะแสดงขั้นตอนสำคัญในการติดตั้งปลั๊กอิน WordPress ให้กับเว็บไซต์ของคุณ โดยทั่วไป คุณสามารถติดตั้งปลั๊กอินได้สองวิธี วิธีแรกคือผ่าน ftp หรือผ่าน cpanel แต่ฉันจะไม่แสดงมันเพราะมันสอดคล้องกับ
การลอยแบบอะคูสติกด้วย Arduino Uno ทีละขั้นตอน (8 ขั้นตอน): 8 ขั้นตอน
การลอยแบบอะคูสติกด้วย Arduino Uno ทีละขั้นตอน (8 ขั้นตอน): ตัวแปลงสัญญาณเสียงล้ำเสียง L298N Dc ตัวเมียอะแดปเตอร์จ่ายไฟพร้อมขา DC ตัวผู้ Arduino UNOBreadboardวิธีการทำงาน: ก่อนอื่น คุณอัปโหลดรหัสไปยัง Arduino Uno (เป็นไมโครคอนโทรลเลอร์ที่ติดตั้งดิจิตอล และพอร์ตแอนะล็อกเพื่อแปลงรหัส (C++)
เครื่อง Rube Goldberg 11 ขั้นตอน: 8 ขั้นตอน
เครื่อง 11 Step Rube Goldberg: โครงการนี้เป็นเครื่อง 11 Step Rube Goldberg ซึ่งออกแบบมาเพื่อสร้างงานง่ายๆ ในรูปแบบที่ซับซ้อน งานของโครงการนี้คือการจับสบู่ก้อนหนึ่ง