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

Arduino дрон бүтээхийг хүсч байсан гарын авлага: 9 алхам
Arduino дрон бүтээхийг хүсч байсан гарын авлага: 9 алхам

Видео: Arduino дрон бүтээхийг хүсч байсан гарын авлага: 9 алхам

Видео: Arduino дрон бүтээхийг хүсч байсан гарын авлага: 9 алхам
Видео: Apa itu? Sensor (Subtittled) 2024, Арваннэгдүгээр
Anonim
Arduino дрон бүтээхийг хүсч байсан гарын авлага
Arduino дрон бүтээхийг хүсч байсан гарын авлага

Энэ бол баримт бичиг бөгөөд гар утсаараа удирдах боломжтой энгийн квадрокоптер бүтээх зорилгодоо хүрэхийн тулд ойлголтуудыг ойлгоход шаардлагатай байсан "Хэрхэн удирдан чиглүүлэх вэ" гэсэн ташуу баримт бичиг юм.

Энэ төслийг хийхийн тулд би дрон гэж юу болохыг, миний хувьд квадрокоптер гэж юу болохыг олж мэдэхийг хүсч байсан тул би судалгаа хийж эхлэв. Би YouTube дээр маш олон видео үзсэн, олон нийтлэл, Insructible хуудсыг уншсан бөгөөд энэ бол надад олдсон зүйл юм.

Үндсэндээ та дроныг хоёр хэсэгт хувааж болно. Би үүнийг "Физик" ба "Хянагч" гэж нэрлэсэн. Физик гэдэг нь үндсэндээ дроныг нисгэдэг механиктай холбоотой бүх зүйл юм. Эдгээр нь мотор, хүрээ, батерей, сэнс гэх мэт зүйлс бөгөөд нисгэгчдэд нисэх чадварыг биечлэн өгдөг.

Хянагч нь үндсэндээ нислэгийн хянагч юм. Дрон унахгүй бүхэл бүтэн нэгжээр нисэхийн тулд биетийг юу хянадаг вэ. Үндсэндээ микроконтроллер, түүн дээрх програм хангамж, холхивчийг гурвалжин болгоход туслах мэдрэгчүүд. Нисгэгчгүй болохын тулд надад хянагч, хянагчийг "удирдах" физик хэсэг хэрэгтэй байсан.

Хангамж

Төслийн төсөв: 250 доллар

Хугацаа: 2 долоо хоног

Худалдан авах зүйлс:

  • Биеийн хүрээ 20 доллар
  • Хутга $ 0 (Хүрээтэй хамт ирдэг)
  • Батерейны багц 25 доллар
  • ESC (Цахим хурд хянагч) $ 0 (Мотортой хамт ирдэг)
  • Мотор 70 доллар

Нислэгийн хянагч

  • Arduino нано 20 доллар
  • Arduino USB кабель $ 2
  • Bluetooth модуль (HC-05) 8 доллар
  • 3 мм -ийн LED ба 330 Ом эсэргүүцэл, утас 13 доллар
  • GY-87 (акселерометр, гироскоп) 5 доллар
  • Прототип самбар 10 доллар
  • Эрэгтэй, эмэгтэй хүмүүсийн толгой $ 5

Бусад

  • Гагнуурын хэрэгсэл $ 10
  • Мультиметр 20 доллар

Инженерийн хувьд энэ төслийг бүтээхийг хүсч байсан тул өөр зүйл худалдаж авах шаардлагагүй болсон.

Нийт: 208 доллар

Алхам 1: Миний анхны туршлага

Миний бүх бүрэлдэхүүн хэсгүүдийг худалдаж авсны дараа би бүгдийг нь нэгтгэж, дараа нь Multiwii -ийг ашиглан дроныг хөөргөх гэж оролдсон (DIY нисгэгчгүй нисгэгчдийн олон нийтийн ашигладаг програм хангамж руу очно уу), гэхдээ би юу хийж байгаагаа бүрэн ойлгоогүй байгаагаа хурдан ойлгов. алдаа маш их байсан тул би үүнийг хэрхэн яаж засахаа мэдэхгүй байсан тул хийж байсан.

Үүний дараа би дроныг салгаж, бүрэлдэхүүн хэсэг бүрийг хэсэгчлэн ойлгож, одоо болж буй бүх зүйлийг бүрэн ойлгохын тулд дахин бүтээхээр шийдэв.

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

Физик

Бие махбодийн хувьд бидэнд: хүрээ, сэнс, зай, эсс байх ёстой. Эдгээрийг нэгтгэхэд нэлээд хялбар байх болно. Эдгээр хэсгүүд болон аль хэсгүүдийг олж авахыг та энэ линкээр орж үзэх боломжтой. Тэр миний жагсаасан эд анги тус бүрийг худалдаж авах талаар юу мэдэх хэрэгтэйг тайлбарлаж өгсөн. Мөн энэ Youtube видеог үзээрэй. Хэрэв та хэсгүүдийг хооронд нь холбож чадахгүй байгаа бол энэ нь танд туслах болно.

Алхам 2: Физик хэсгүүдийг задлах, дибаг хийх талаархи зөвлөмжүүд

Физик хэсгүүдийг холбох, дибаг хийх талаархи зөвлөмжүүд
Физик хэсгүүдийг холбох, дибаг хийх талаархи зөвлөмжүүд

Сэнс ба мотор

  • Таны сэнс зөв чиглэлд байгаа эсэхийг шалгахын тулд эргүүлэхдээ хөдөлгүүрийн заасан чиглэлд эргүүлэх үед (ихэнх мотор хэрхэн эргэх ёстойг харуулсан сумтай байдаг) сэнсний доор сэвшээ салхи үлээх ёстой..
  • Эсрэг сэнсний шураг ижил өнгөтэй байх ёстой.
  • Хажуугийн сэнсний өнгө ижил байх ёстой.
  • Дээрх зураг дээрх шиг моторыг эргэдэг байдлаар байрлуулсан эсэхээ шалгаарай.
  • Хэрэв та моторын чиглэлийг эргүүлэх гэж байгаа бол эсрэг талын үзүүрт байгаа утсыг солино уу. Энэ нь хөдөлгүүрийн чиглэлийг өөрчлөх болно.

Батерей ба хүч

  • Хэрэв ямар нэгэн шалтгаанаар юмс гялалзаж байгаа бөгөөд яагаад гэдгийг нь олж мэдэхгүй байгаа бол энэ нь эерэг ба сөрөг талууд солигдсонтой холбоотой байж магадгүй юм.
  • Хэрэв та батерейгаа хэзээ цэнэглэхээ сайн мэдэхгүй байгаа бол вольтметр ашиглан хүчдэлийг шалгаж болно. Хэрэв энэ нь батерейны үзүүлэлтээс доогуур байвал цэнэглэх шаардлагатай болно. Батерейгаа цэнэглэх талаар энэ линкээс үзнэ үү.
  • Ихэнх LIPO батерей нь батерей цэнэглэгчтэй байдаггүй. Та тэдгээрийг тусад нь худалдаж аваарай.

Алхам 3: Arduino хянагч

Arduino хянагч
Arduino хянагч

Энэ бол бүхэл бүтэн төслийн хамгийн хэцүү хэсэг юм. Бүрэлдэхүүн хэсгүүдийг дэлбэлэх нь маш амархан бөгөөд хэрэв та юу хийж байгаагаа мэдэхгүй бол дибаг хийх нь маш их урам хугарах болно. Мөн энэ төсөлд би bluetooth болон хэрхэн бүтээхийг үзүүлэх програмыг ашиглан дроноо удирдаж байсан. Энэ нь төслийг улам хүндрүүлсэн, учир нь тэнд байгаа хичээлүүдийн 99% нь радио хянагч ашигладаг (энэ бол хоосон зүйл биш), гэхдээ би таны бухимдлыг туулсан гэж бүү санаа зов.

Энэхүү аялалд гарахаас өмнө өгөх зөвлөмжүүд

  • ПХБ дээр төхөөрөмжөө дуусгахаасаа өмнө талхны самбар ашиглана уу. Энэ нь танд өөрчлөлтийг хялбархан хийх боломжийг олгоно.
  • Хэрэв та бүрэлдэхүүн хэсгийг өргөн хүрээнд туршиж үзсэн бөгөөд энэ нь ажиллахгүй байгаа бол энэ нь ажиллахгүй байж магадгүй юм!
  • Төхөөрөмжийг залгахаасаа өмнө хүчдэлийг анхаарч үзээрэй.

    • Arduino нь 6 -аас 20 В хүртэл ажиллах чадвартай боловч үүнийг тэсэлгээ хийхгүйн тулд 12 В -оос хязгаарлахыг хичээгээрэй. Та түүний онцлог шинж чанаруудын талаар эндээс илүү ихийг уншиж болно.
    • HC-05 нь 5V хүртэл ажиллах чадвартай боловч зарим тээглүүр нь 3.3V-т ажилладаг тул үүнийг анхаарч үзээрэй. Энэ тухай дараа ярих болно.
    • IMU (GY-521, MPU-6050) нь мөн 5V дээр ажилладаг.
  • Бид програмаа бүтээхдээ RemoteXY -ийг ашиглах болно. Хэрэв та үүнийг iOS төхөөрөмж дээр бүтээхийг хүсвэл өөр Bluetooth модулийг ашиглах хэрэгтэй (HM-10). Та RemoteXY вэбсайтаас энэ талаар илүү ихийг мэдэх боломжтой.

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

Алхам 4: MPU-6050

MPU-6050
MPU-6050

Энэ төхөөрөмж нь гироскоп ба акселерометртэй тул үндсэн чиглэлд (X, Y, Z) хурдатгал болон тэдгээр чиглэлийн өнцгийн хурдатгалыг хэлж өгдөг.

Үүнийг шалгахын тулд бид энэ хичээлийг ашиглан Arduino вэбсайт дээрх энэ хичээлийг ашиглаж болно. Хэрэв энэ нь ажиллах юм бол та хазайлт, эргэлт, тохиргоог хурдасгахад өөрчлөгдөж буй акселерометр ба гироскопын утгыг авах ёстой. Түүнчлэн, юу болж байгааг мэдэхийн тулд кодыг өөрчилж, өөрчилж үзээрэй.

Алхам 5: HC-05 Bluetooth модуль

HC-05 Bluetooth модуль
HC-05 Bluetooth модуль
HC-05 Bluetooth модуль
HC-05 Bluetooth модуль
HC-05 Bluetooth модуль
HC-05 Bluetooth модуль

Та энэ хэсгийг хийх шаардлагагүй боловч модулийн тохиргоог өөрчлөх шаардлагатай тул AT горимд (тохиргооны горим) орох боломжтой байх нь чухал юм. Энэ бол энэ төслийн хамгийн их урам хугарсан хэсгүүдийн нэг байсан. Миний төхөөрөмж миний тушаалд хариу өгөхгүй байгаа тул би модулийг AT горимд хэрхэн оруулах талаар маш их судалгаа хийсэн. Миний модуль эвдэрсэн гэж дүгнэхэд 2 хоног зарцуулсан. Би өөр нэгийг захиалсан бөгөөд энэ нь ажилласан. AT горимд орох тухай энэ хичээлийг үзнэ үү.

HC-05 нь янз бүрийн хэлбэрээр ирдэг, зарим нь товчлууртай, зарим нь байхгүй, бүх төрлийн дизайны хувьсагч байдаг. Тогтмол байдаг нэг зүйл бол тэд бүгд "34 -р зүү" -тэй байдаг. Энэ гарын авлагыг үзээрэй.

Таны мэдэх ёстой зүйлүүд

  • AT горимд шилжихийн тулд та хүчийг холбохын өмнө bluetooth модулийн 34 -р зүүг холбохын тулд 5V -ийг дарахад л хангалттай.
  • Боломжит хуваагчийг модулийн RX зүү 3.3V дээр ажилладаг тул холбоно уу. Та үүнийг 5V -д ашиглаж болно, гэхдээ ямар нэг зүйл буруу болвол энэ зүүг шарах болно.
  • Хэрэв та Pin 34 -ийг ашиглавал (товчлуур эсвэл онлайнаар олсон өөр хэлбэрийн оронд) модуль нь bluetooth -ийн дамжуулах хурдыг 38400 болгож тохируулах болно. Ийм учраас дээрх хичээлийн линк дээр кодын мөр байна.

BTSerial.begin (38400); // AT командын HC-05 анхдагч хурд

Хэрэв модуль "OK" гэсэн хариу өгөхгүй хэвээр байгаа бол tx ба rx тээглүүрийг сольж үзээрэй. Энэ нь байх ёстой:

Bluetooth => Arduino

RXD => TX1

TDX => RX0

Хэрэв энэ нь ажиллахгүй хэвээр байгаа бол код дахь зүүг бусад Arduino тээглүүрээр солихыг сонгоно уу. Туршилт, хэрэв энэ нь ажиллахгүй бол tx ба rx зүүгээ сольж, дараа нь дахин туршина уу

SoftwareSerial BTSerial (10, 11); // RX | TX

Дээрх мөрийг өөрчилнө үү. Та RX = 2, TX = 3 эсвэл бусад хүчин төгөлдөр хослолыг туршиж үзээрэй. Та дээрх зураг дээрх Arduino зүү дугаарыг харж болно.

Алхам 6: эд ангиудыг холбох

Эд ангиудыг холбох
Эд ангиудыг холбох

Одоо бид бүх зүйл үр дүнтэй гэдэгт итгэлтэй байгаа тул тэдгээрийг нэгтгэж эхлэх цаг болжээ. Та хэсгүүдийг схемд үзүүлсэн шиг холбож болно. Би үүнийг Electronoobs дээрээс авсан. Тэр надад энэ төсөлд үнэхээр тусалсан. Түүний төслийн хувилбарыг эндээс үзээрэй. Хэрэв та энэ гарын авлагыг дагаж байгаа бол хүлээн авагчийн холболтын талаар санаа зовох хэрэггүй болно: input_Yaw, input_Pitch гэх мэт. Энэ бүхэн bluetooth -тэй зохицуулагдах болно. Мөн bluetooth -ийг өмнөх хэсэгт хийсэн шиг холбоно уу. Миний tx ба rx зүү надад жаахан асуудал үүсгэж байсан болохоор би Arduino -г ашигласан.

Ердийн тээглүүрийн оронд RX -ийг 2, TX -ийг 3 болгоно. Дараа нь бид эцсийн бүтээгдэхүүн авах хүртлээ сайжруулсаар байх энгийн апп бичих болно.

Алхам 7: RemoteXY -ийн гоо үзэсгэлэн

RemoteXY -ийн гоо үзэсгэлэн
RemoteXY -ийн гоо үзэсгэлэн

Удаан хугацааны турш би нисгэгчгүй онгоцыг удирдах боломжийг олгодог алсын зайн програм бүтээх хялбар аргыг бодож байсан. Ихэнх хүмүүс MIT App Inventor -ийг ашигладаг боловч UI нь миний хүссэн шиг үзэсгэлэнтэй биш, би бас зургийн програмчлалын шүтэн бишрэгчид биш юм. Би үүнийг Android Studio ашиглан зохион бүтээх боломжтой байсан ч энэ нь хэтэрхий их ажил болно. Би RemoteXY -ийг ашиглах заавар олж хараад маш их баяртай байсан. Энд вэбсайтын холбоос байна. Үүнийг ашиглахад маш хялбар бөгөөд бичиг баримт нь маш сайн. Бид нисгэгчгүй онгоцондоо зориулж энгийн UI үүсгэх болно. Та өөрийн хүссэнээр хүссэнээрээ өөрчилж болно. Та юу хийж байгаагаа мэдэж байгаа эсэхээ шалгаарай. Энд байгаа зааврыг дагана уу.

Та үүнийг хийсний дараа бид кодыг засварлаж, нисдэг тэрэгний тохируулагчийг өөрчилж болно. Кодондоо / **** хийх ёстой зүйлүүд, яагаад *** / гэсэн мөрүүдийг нэмээрэй.

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

/////////////////////////////////////////////////////////////// RemoteXY орно. номын сан // ///////////////////////////////////////////////

// RemoteXY холболтын горимыг сонгоод номын санг оруулна уу

#REMOTEXY_MODE_HC05_SOFTSERIAL -ийг тодорхойлох

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

// RemoteXY холболтын тохиргоо

#REMOTEXY_SERIAL_RX 2 -г тодорхойлох #REMOTEXY_SERIAL_TX 3 -ийг тодорхойлох #REMOTEXY_SERIAL_SPEED 9600

// Сэнс

Servo L_F_prop; Servo L_B_prop; Servo R_F_prop; Servo R_B_prop;

// RemoteXY тохируулах

#pragma pack (push, 1) uint8_t RemoteXY_CONF = {255, 3, 0, 0, 0, 61, 0, 8, 13, 0, 5, 0, 49, 15, 43, 43, 2, 26, 31, 4, 0, 12, 11, 8, 47, 2, 26, 129, 0, 11, 8, 11, 3, 17, 84, 104, 114, 111, 116, 116, 108, 101, 0, 129, 0, 66, 10, 7, 3, 17, 80, 105, 116, 99, 104, 0, 129, 0, 41, 34, 6, 3, 17, 82, 111, 108, 108, 0}; // энэ бүтэц нь таны хяналтын интерфейсийн бүтцийн бүх хувьсагчийг тодорхойлдог {

// оролтын хувьсагч

int8_t Joystick_x; // -100..100 x координатын джойстик байрлал int8_t Joystick_y; // -100..100 y -координатын джойстик байрлал int8_t ThrottleSlider; // 0..100 гулсагчийн байрлал

// өөр хувьсагч

uint8_t connect_flag; // = 1 утас холбогдсон бол өөр = 0

} RemoteXY;

#прагма багц (поп)

/////////////////////////////////////////////

// END RemoteXY нь // /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /

/********** тохируулагчийн утгыг хадгалахын тулд энэ мөрийг нэмнэ үү **************/

int input_THROTTLE;

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

RemoteXY_Init ();

/********** Моторыг зүүгээр холбоно уу. Үнэ цэнийг өөрт тохируулан өөрчлөх **************/

L_F_prop.attach (4); // зүүн урд мотор

L_B_prop.attach (5); // зүүн арын мотор R_F_prop.attach (7); // баруун урд мотор R_B_prop.attach (6); // баруун арын мотор

/************* Esc програмчлалын горимд орохоос сэргийлэх ********************/

L_F_prop.writeMicroseconds (1000); L_B_prop.writeMicroseconds (1000); R_F_prop.writeMicroseconds (1000); R_B_prop.writeMicroseconds (1000); саатал (1000);

}

void loop () {

RemoteXY_Handler ();

/****** Апп -аас авсан тохируулагчийн утгыг 1000 ба 2000 он хүртэл газрын зургаар харуулна уу.

input_THROTTLE = газрын зураг (RemoteXY. ThrottleSlider, 0, 100, 1000, 2000);

L_F_prop.writeMicroseconds (input_THROTTLE);

L_B_prop.writeMicroseconds (input_THROTTLE); R_F_prop.writeMicroseconds (input_THROTTLE); R_B_prop.writeMicroseconds (input_THROTTLE); }

Алхам 8: Туршилт

Хэрэв та бүх зүйлийг зөв хийсэн бол тохируулагчийг дээш, доош гулсуулж, машинаа туршиж үзэх боломжтой байх ёстой. Үүнийг гадаа хийж байгаа эсэхийг шалгаарай. Түүнчлэн сэнсийг бүү байлга, учир нь энэ нь нисдэг тэрэг үсрэх болно. Бид кодыг тэнцвэржүүлэхийн тулд хараахан бичээгүй байгаа тул үүнийг ЭРГҮҮЛЭГЧДИЙГЭЭР ТЭРГҮҮЛЭХ нь МУУ САНАА байх болно! Би үүнийг лмао болохоор л хийсэн юм.

Энэхүү жагсаал нь бид тохируулагчийг апп -аас удирдах боломжтой гэдгийг л харуулах зорилготой юм. Моторууд гацаж байгааг та анзаарах болно. Энэ нь ESC -ийг шалгалт тохируулга хийгээгүйтэй холбоотой юм. Үүнийг хийхийн тулд энэ Github хуудсан дээрх зааврыг үзнэ үү. Зааврыг уншаад ESC-Calibration.ino файлыг нээгээд эдгээр зааврыг дагана уу. Хэрэв та юу болж байгааг ойлгохыг хүсч байвал Electronoobs -ийн энэхүү гарын авлагыг үзээрэй.

Хөтөлбөрийг ажиллуулж байхдаа дроныг утсаар уяж байгаа эсэхээ шалгаарай. Мөн сэнс асахгүй байгаа эсэхийг шалгаарай. Би хагас галзуурсан болохоор л өөрийнхөөхийг орхисон. ӨӨРИЙГӨӨЧДИЙГ БҮҮ ХЭРЭГТЭЙ БАЙНА !!! Энэхүү жагсаалыг хоёр дахь видеон дээр үзүүлэв.

Алхам 9: Би код дээр ажиллаж байна. Зааварлах ажлыг хэдхэн хоногийн дотор дуусгах болно

Хэрэв та энэ гарын авлагыг ашиглаж, намайг хүлээж байгаа бол би үүн дээр ажиллаж байгаа гэдгийг нэмж хэлэхийг хүсч байна. Миний амьдралд бас өөр зүйлүүд гарч ирсэн, гэхдээ би бас үүн дээр ажиллаж байна, гэхдээ удахгүй оруулах болно гэж санаа зовох хэрэггүй. Хамгийн сүүлд 2019 оны 8 -р сарын 10 гэхэд хэлье.

8 -р сарын 10 -ны шинэчлэлт: Таныг дүүжлэн орхихыг хүсээгүй. Харамсалтай нь өнгөрсөн долоо хоногт төсөл дээр ажиллах цаг надад байгаагүй. Бусад зүйлд маш завгүй байсан. Би чамайг хөтлөхийг хүсэхгүй байна. Би ойрын ирээдүйд зааварчилгаа өгөх болно гэж найдаж байна. Хэрэв танд ямар нэгэн асуулт эсвэл тусламж хэрэгтэй байгаа бол доорх сэтгэгдлийг нэмж бичиж болно, би тантай эргэж холбогдох болно.

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