Агуулгын хүснэгт:

2 Arduino: 5 алхамтай Rc онгоц бүтээх
2 Arduino: 5 алхамтай Rc онгоц бүтээх

Видео: 2 Arduino: 5 алхамтай Rc онгоц бүтээх

Видео: 2 Arduino: 5 алхамтай Rc онгоц бүтээх
Видео: BTT GTR v1.0/M5 v1.0 - configuration of A4988 and DRV8825 steppers 2024, Арваннэгдүгээр
Anonim
2 Arduino -той Rc онгоц бүтээх
2 Arduino -той Rc онгоц бүтээх

Нисэх онгоц хийх нь хөгжилтэй сорилт юм. Урьдчилан бэлтгэсэн хянагч, хүлээн авагчийн оронд arduino -г ашиглахад энэ нь ялангуяа хэцүү болдог.

Энэхүү гарын авлагад би хоёр ардуиногоор радио удирдлагатай онгоц бүтээх талаар хэрхэн яаж хийхийг харуулах болно.

Алхам 1: Танд хэрэгтэй зүйл

Танд хэрэгтэй болно:

- Сойзгүй мотор

- Моторт зориулсан esc

- 2 servo

- 1 arduino uno

- 1 ардуино нано

- Сэнс

- 2 nrf24l01 модуль

- 2 10uf конденсатор

- Хөөсөн хавтан

- Потенциометр

- Жойстик модуль

- 3 ампер 7.2 вольт niMH батерей

Алхам 2: Радио хяналт

Радио хяналтууд
Радио хяналтууд
Радио хяналтууд
Радио хяналтууд

Би онгоцыг удирдахын тулд nrf24l01 ашигласан. Энэ модуль нь 1 км -ийн зайтай. Nrf24l01 -ийг хэрхэн холбохыг дээр үзүүлсэн схемээс харж болно. Та мөн хүчдэлийн уналтаас хамгаалахын тулд конденсаторыг газар ба 3.3 вольтын хооронд гагнах хэрэгтэй.

Дараагийн алхам бол хянагчаас мэдээлэл авах явдал юм. Би жолоо, цахилгаан шатны удирдлагад джойстик, моторын удирдлагад потенциометр ашигласан. Та потенциометрийг A0 зүү рүү холбох ёстой, би джойстикийг A1 ба A2 зүү рүү холбосон.

Одоо бид хүлээн авагч хийх хэрэгтэй. Жижиг хэмжээтэй тул би хүлээн авагчдаа arduino нано ашигласан. Та nrf24l01 -ийг энэ adruino -тэй холбох ёстой. Үүний дараа та servo болон esc (моторын электрон хурд хянагч) -ийг arduino руу холбох хэрэгтэй. Би D4 ба D5 зүү рүү servo -той холбогдсон, esc нь D9 зүүтэй холбогдсон.

Энэ бол миний дамжуулагчид ашигладаг код юм

#оруулах #оруулах #оруулах

RF24 радио (7, 8);

const байтын хаяг [6] = "00001";

хүчингүй тохиргоо () {

radio.begin (); radio.openWritingPipe (хаяг); radio.setPALevel (RF24_PA_MAX); radio.setDataRate (RF24_250KBPS); radio.stopListening (); Цуваа эхлэх (9600); }

void loop () {

int s = analogRead (0); int x = analogRead (1); int y = analogRead (2); String str = String (s); str += '|' + Мөр (x) + '|' + Мөр (y); Serial.println (str); const char текст [20]; str.toCharArray (текст, 20); Serial.println (текст); radio.write (& текст, хэмжээ (текст)); саатал (10);

}

мөн хүлээн авагчийн код энд байна:

#оруулах #оруулах #оруулах #оруулах

Servo esc;

Servo sx; Servo sy; RF24 радио (7, 8);

const байтын хаяг [6] = "00001";

хүчингүй тохиргоо () {

// нэг удаа ажиллуулахын тулд тохиргооны кодоо энд оруулна уу: radio.begin (); radio.openReadingPipe (0, хаяг); radio.setPALevel (RF24_PA_MAX); radio.setDataRate (RF24_250KBPS); esc.attach (9); sx.attach (4); sy.attach (5); esc.writeMicroseconds (1000); // 1000 радио руу дохиог эхлүүлэх.startListening (); Цуваа эхлэх (9600); }

void loop () {

char текст [32] = ""; if (radio.available ()) {radio.read (& text, sizeof (text)); StrD transData = String (текст); //Serial.println(getValue(transData, '|', 1));

int s = getValue (transData, '|', 0).toInt ();

s = газрын зураг (s, 0, 1023, 1000, 2000); // val -ийг хамгийн бага ба хамгийн дээд хэмжээнд хүртэл харуулах (Шаардлагатай бол өөрчлөх) Serial.println (transData); esc.writeMicroseconds (s); // val -ийг int intVX = getValue (transData, '|', 1) гарах дохио болгон ашиглах.toInt (); int syVal = getValue (transData, '|', 2).toInt ();

sx.write (газрын зураг (sxVal, 0, 1023, 0, 180));

sy.write (газрын зураг (syVal, 0, 1023, 0, 180));

}

}

String getValue (String data, char separator, int index)

{int олдсон = 0; int strIndex = {0, -1}; int maxIndex = data.length ()-1;

for (int i = 0; i <= maxIndex && found <= index; i ++) {if (data.charAt (i) == тусгаарлагч || i == maxIndex) {олдсон ++; strIndex [0] = strIndex [1] +1; strIndex [1] = (i == maxIndex)? би+1: би; }}

буцах олдсон> индекс? data.substring (strIndex [0], strIndex [1]): "";

}

Алхам 3: Fusualage ба Stabalizers

Fusualage ба Stabalizers
Fusualage ба Stabalizers

Цахилгаан бараагаа тохируулчихсан байгаа болохоор электроникийг оруулах онгоц хэрэгтэй байна. Хөнгөн, харьцангуй бат бөх тул би хөөсөн хавтанг ашигласан. Fusualge бол сүүл рүүгээ нимгэрдэг тэгш өнцөгт хэлбэр юм. Аэродинамикийн хувьд хайлш нь тийм ч чухал биш юм. Хамгийн чухал зүйл бол бүх зүйл түүнд багтах бөгөөд аль болох жижиг, хөнгөн байлгах явдал юм.

Хэвтээ ба босоо бэхжүүлэгчийг хийхэд хялбар байдаг. Цорын ганц чухал зүйл бол таны бэхжүүлэгч нь төгс шулуун байна. Тогтворжуулагч нь онгоцыг тогтвортой байлгах үүрэгтэй. Таны бэхжүүлэгч шулуун биш байвал таны онгоц тогтворгүй болно.

Алхам 4: Далавч

Wings
Wings

Далавч бол хамгийн чухал зүйл бөгөөд та өргөлтийг бий болгохын тулд агааржуулагч хийх хэрэгтэй. Дээрх зурган дээр та миний агаарын хавтанг хэрхэн хийснийг харж болно.

Хамгийн чухал зүйл бол онгоцны хүндийн төв нь агаарын хавтангийн хамгийн өндөр цэгийн эргэн тойронд байдаг. Ингэснээр онгоц тогтвортой байх болно.

Алхам 5: Бүх зүйлийг нэгтгэх

Бүх зүйлийг хамтад нь хийх
Бүх зүйлийг хамтад нь хийх
Бүх зүйлийг хамтад нь хийх
Бүх зүйлийг хамтад нь хийх
Бүх зүйлийг хамтад нь хийх
Бүх зүйлийг хамтад нь хийх

Одоо бид бүх эд ангиудыг хийж дууссаны дараа бүгдийг нэгтгэх хэрэгтэй.

Серво нь stablaizers -тэй холбогдсон байх шаардлагатай. Үүнийг хяналтын саваа ашиглан хийж болно (дээрх зургийг үзнэ үү)

Моторыг хөөсөрч, онгоцны өмнө наасан байх ёстой (эсвэл уян харимхай тууз ашиглаарай, ингэснээр та үүнийг шаардлагатай үед нь салгаж болно).

мотор тавихын тулд танд сэнс хэрэгтэй болно, энэ сэнсний хэмжээ нь мотороос хамаарна. Хамгийн оновчтой хэмжээг тооцоолоход маш төвөгтэй байдаг. Гэхдээ ерөнхий дүрэм бол хөдөлгүүр илүү хүчтэй байх тусам сэнсний хэмжээ том байх болно.

Зайны хувьд lipo батерейг ашиглахыг зөвлөж байна. Гэсэн хэдий ч хэрэв та тэсрэхийг хүсэхгүй байгаа бол эдгээр батерейнд тусгай цэнэглэгч хэрэгтэй болно. Тиймээс би нимх батерейг ашигласан, эдгээр нь илүү хүнд боловч ашиглахад хялбар, хямд байдаг.

Зөвлөмж болгож буй: