Talaan ng mga Nilalaman:

Ang Gabay na Inaasahan kong Mayroon Ako sa Pagbuo ng isang Arduino Drone: 9 Mga Hakbang
Ang Gabay na Inaasahan kong Mayroon Ako sa Pagbuo ng isang Arduino Drone: 9 Mga Hakbang

Video: Ang Gabay na Inaasahan kong Mayroon Ako sa Pagbuo ng isang Arduino Drone: 9 Mga Hakbang

Video: Ang Gabay na Inaasahan kong Mayroon Ako sa Pagbuo ng isang Arduino Drone: 9 Mga Hakbang
Video: Homelab Cooling Tips: Solar Screens, Massive Insulation and more! (Top 10 Ways to reduce heat) 2024, Hulyo
Anonim
Ang Patnubay na Inaasahan kong Mayroon Ako sa Pagbuo ng isang Arduino Drone
Ang Patnubay na Inaasahan kong Mayroon Ako sa Pagbuo ng isang Arduino Drone

Ang dokumentong ito ay isang uri ng dokumentasyong slash na "Paano gabayan" na dumaan sa proseso na kinuha sa akin upang maunawaan ang mga konsepto upang makamit ang aking layunin na bumuo ng isang simpleng quadcopter na maaari kong makontrol mula sa aking mobile phone.

Upang gawin ang proyektong ito nais kong makakuha ng isang ideya kung ano talaga ang isang drone, sa aking kaso isang quadcopter, kaya nagsimula akong gumawa ng ilang pagsasaliksik. Nanood ako ng maraming mga video sa YouTube, nagbasa ng maraming mga artikulo at Hindi maiuugnay na mga pahina at ito ang nakuha ko.

Mahalaga na maaari mong hatiin ang isang drone sa dalawang bahagi. Tinawag ko itong "Physical" at ang "Controller". Mahalaga ang Physical ang lahat na may kinalaman sa mga mekaniko na nagpapalipad ng drone. Ito ang mga bagay tulad ng motor, frame, baterya, propeller at bawat iba pang bagay na pisikal na nagbibigay sa drone ng kakayahang lumipad.

Mahalaga ang Controller ang flight controller. Ano ang kumokontrol sa pisikal upang ang drone ay maaaring lumipad bilang isang buong yunit nang hindi nahuhulog. Mahalaga ang microcontroller, ang software na nakalagay dito at ang mga sensor na makakatulong sa triangulate na ito ng mga bearings. Kaya't sa lahat upang magkaroon ng isang drone, kailangan ko ng isang Controller, at isang pangkat ng mga pisikal na bahagi para ang kontrolado ng 'controller'.

Mga gamit

Badyet para sa proyekto: $ 250

Time Frame: 2 linggo

Mga bagay na bibilhin:

  • Physical Frame na $ 20
  • Mga Blades $ 0 (Ay may frame)
  • Battery Pack na $ 25
  • ESC (Mga kumokontrol sa bilis ng electronic) $ 0 (May mga motor)
  • Mga Motors na $ 70

Flight Controller

  • Arduino nano $ 20
  • Arduino USB Cable $ 2
  • Bluetooth Module (HC-05) $ 8
  • 3mm LED at 330 Ohm resistors at wires na $ 13
  • GY-87 (Accelerometer, Gyroscope) $ 5
  • Prototype Board $ 10
  • Mga header ng Lalaki at Babae $ 5

Iba pa

  • Kit ng paghihinang na $ 10
  • Multimeter na $ 20

Nais kong masiyahan sa pagbuo ng proyektong ito bilang isang Engineer, kaya bumili ako ng iba pang mga bagay na hindi ko na kailangan.

Kabuuan: $ 208

Hakbang 1: Ang Aking Paunang Karanasan

Matapos bilhin ang lahat ng aking mga bahagi, pinagsama ko ang lahat at pagkatapos ay sinubukan upang ilunsad ang drone, gamit ang Multiwii (ang go sa software na maraming ginagamit ng komunidad ng DIY drone na komunidad), subalit mabilis kong napagtanto na hindi ko lubos na nauunawaan kung ano ang aking ginagawa dahil maraming mga error at wala akong ideya kung paano ayusin ang mga ito.

Pagkatapos nito ay napagpasyahan kong ihiwalay ang drone at maunawaan ang bawat bahagi ng piraso at muling itayo ito sa isang paraan na lubos kong mauunawaan ang lahat ng nangyayari.

Sa mga sumusunod na seksyon ay dadaan ako sa proseso ng pagdidikit ng puzzle nang magkakasama. Bago iyon kumuha tayo ng isang mabilis na pangkalahatang ideya.

Pisikal

Para sa pisikal, dapat mayroon kaming: ang frame, ang mga propeller, ang baterya at ang mga esc. Ang mga ito ay magiging medyo madaling magkasama. Upang maunawaan ang mga bahaging ito at kung alin sa dapat mong makuha ay maaari mong bisitahin ang link na ito. Ipinapaliwanag niya kung ano ang kailangan mong malaman tungkol sa pagbili ng bawat bahagi na aking nakalista. Panoorin din ang video sa Youtube na ito. Ito ay makakatulong sa iyo kung ikaw ay natigil sa pagdidikit ng mga bahagi nang magkasama.

Hakbang 2: Mga Tip sa Pag-piecing at Pag-debug sa Mga Physical na Bahagi

Mga tip sa Piecing at Pag-debug sa Mga Physical na Bahagi
Mga tip sa Piecing at Pag-debug sa Mga Physical na Bahagi

Mga Propeller at Motors

  • Upang suriin kung ang iyong mga propeller ay nasa tamang oryentasyon (Binaligtad o hindi), kapag pinaikot mo ang mga ito sa direksyong ipinahiwatig ng mga motor (ang karamihan sa mga motor ay may mga arrow na ipinapakita kung paano sila dapat umiikot), dapat mong maramdaman ang simoy sa ilalim ng mga propeller at hindi sa itaas.
  • Ang mga turnilyo sa tapat ng mga propeller ay dapat na magkatulad na kulay.
  • Ang kulay ng mga katabing propeller ay dapat na pareho.
  • Siguraduhin din na naayos mo ang mga motor sa isang paraan na umiikot sila tulad ng sa imahe sa itaas.
  • Kung sinusubukan mong i-flip ang direksyon ng motor magpalit lamang ng mga wire sa kabaligtaran. Baligtarin nito ang direksyon ng motor.

Baterya at Lakas

  • Kung sa anumang kadahilanan ang mga bagay ay sparking at hindi mo malaman kung bakit, malamang dahil mayroon kang positibo at mga negatibong ipinagpalitan.
  • Kung hindi ka sigurado kung kailan sisingilin ang iyong mga baterya, maaari kang gumamit ng isang voltmeter upang suriin ang boltahe. Kung mas mababa ito kaysa sa mga ispesek na sinasabi sa baterya, kailangan itong singilin. Suriin ang link na ito sa singilin ang iyong mga baterya.
  • Karamihan sa mga baterya ng LIPO ay hindi kasama ng mga charger ng baterya. Hiwalay mo silang binibili.

Hakbang 3: Ang Arduino Controller

Ang Arduino Controller
Ang Arduino Controller

Ito ay walang alinlangan na ang pinaka mahirap na bahagi ng buong proyekto. Napakadali na pasabog ang mga bahagi at ang pag-debug ay maaaring maging lubos na nakakabigo kung hindi mo alam kung ano ang iyong ginagawa. Sa proyektong ito din kinontrol ko ang aking drone gamit ang bluetooth at isang app na ipapakita ko sa iyo kung paano bumuo. Ginagawa nitong partikular na mas mahirap ang proyekto dahil 99% ng mga tutorial diyan ang gumagamit ng mga radio Controller (hindi ito isang katotohanan lol), ngunit huwag magalala na dumaan ako sa pagkabigo para sa iyo.

Mga tip bago ka magsimula sa paglalakbay na ito

  • Gumamit ng isang breadboard bago mo tapusin ang iyong aparato sa isang PCB. Hinahayaan ka nitong gumawa ng mga pagbabago nang madali.
  • Kung nasubukan mo nang malawakan ang isang bahagi at hindi ito gumagana, malamang na hindi ito gumagana!
  • Tingnan ang mga boltahe na maaaring hawakan ng isang aparato bago mo ito mai-plug in!

    • Maaaring hawakan ng Arduino ang 6 hanggang 20V, ngunit subukang i-cap ito sa 12V upang hindi mo ito masabog. Maaari mong basahin ang higit pa tungkol sa mga detalye dito.
    • Ang HC-05 ay maaaring hawakan hanggang sa 5V ngunit ang ilang mga pin ay gumagana sa 3.3V kaya't abangan iyon. Pag-uusapan natin ito mamaya.
    • Gumagana din ang IMU (GY-521, MPU-6050) sa 5V.
  • Gumagamit kami ng RemoteXY upang mabuo ang aming app. Kung nais mong itayo ito sa isang aparato ng iOS kailangan mong gumamit ng ibang module ng Bluetooth (Ang HM-10). Maaari kang matuto nang higit pa tungkol dito sa website ng RemoteXY.

Sana nabasa mo na ang mga tip. Subukan natin ngayon ang bawat bahagi na magiging bahagi ng controller nang magkahiwalay.

Hakbang 4: Ang MPU-6050

Ang MPU-6050
Ang MPU-6050

Ang aparatong ito ay may isang gyroscope at isang accelerometer, kaya mahalagang sinasabi nito sa iyo ang pagpabilis sa isang direksyon (X, Y, Z) at ang angular na pagpabilis sa mga direksyon na iyon.

Upang subukan ito, maaari naming gamitin ang tutorial dito maaari naming magamit ang tutorial na ito sa website ng Arduino. Kung ito ay gumagana, dapat kang makakuha ng isang stream ng mga halaga ng accelerometer at gyroscope na nagbabago habang ikiling, paikutin at pabilisin ang pag-set up. Gayundin, subukang i-tweak at manipulahin ang code upang malaman mo kung ano ang nangyayari.

Hakbang 5: Ang HC-05 Bluetooth Module

Ang HC-05 Bluetooth Module
Ang HC-05 Bluetooth Module
Ang HC-05 Bluetooth Module
Ang HC-05 Bluetooth Module
Ang HC-05 Bluetooth Module
Ang HC-05 Bluetooth Module

Hindi mo kailangang gawin ang bahaging ito ngunit mahalaga na makapunta sa AT mode (setting mode) dahil malamang na baguhin ang isa sa mga setting ng module. Ito ay isa sa mga pinaka nakakainis na bahagi tungkol sa proyektong ito. Napakaraming pagsasaliksik ang ginawa ko upang malaman kung paano makukuha ang aking module sa mode na AT, dahil ang aking aparato ay hindi tumutugon sa aking mga utos. Tumagal ako ng 2 araw upang tapusin na ang aking module ay nasira. Nag-order ako para sa isa pa at gumana ito. Suriin ang tutorial na ito sa pagkuha sa mode na AT.

Ang HC-05 ay may iba't ibang uri, may ilang mga pindutan at ilang wala at lahat ng uri ng mga variable ng disenyo. Isa na ito na pare-pareho bagaman lahat sila ay may "Pin 34". Suriin ang tutorial na ito.

Mga bagay na dapat mong malaman

  • Upang pumunta sa mode na AT, pindutin lamang ang 5V upang i-pin ang 34 ng module ng bluetooth bago mo ikonekta ang lakas dito.
  • Ikonekta ang isang potensyal na divider sa RX pin ng module habang gumagana ito sa 3.3V. Maaari mo pa ring gamitin ito sa 5V ngunit maaaring magprito ng pin na iyon kung may mali.
  • Kung gagamitin mo ang Pin 34 (sa halip na ang pindutan o ibang paraan na nahanap mo sa online), itatakda ng module ang rate ng baud ng bluetooth sa 38400. Iyon ang dahilan kung bakit sa link para sa tutorial sa itaas mayroong isang linya sa code na nagsasabing:

BTSerial.begin (38400); // HC-05 default na bilis sa AT utos pa

Kung ang module ay hindi pa rin tumutugon sa "OK", subukang ilipat ang mga tx at rx pin. Dapat ay:

Bluetooth => Arduino

RXD => TX1

TDX => RX0

Kung hindi pa rin iyon gumana, pinili na palitan ang mga pin sa code sa iba pang mga pin ng Arduino. Subukan, kung hindi ito gumagana palitan ang mga tx at rx pin, pagkatapos ay subukang muli

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

Baguhin ang linya sa itaas. Maaari mong subukan ang RX = 2, TX = 3 o anumang iba pang wastong mga kumbinasyon. Maaari mong tingnan ang mga numero ng pin ng Arduino sa imahe sa itaas.

Hakbang 6: Pagkonekta sa Mga Bahagi

Pagkonekta sa Mga Bahagi
Pagkonekta sa Mga Bahagi

Ngayon na sigurado kaming gumagana ang lahat, oras na upang simulang pagsamahin sila. Maaari mong ikonekta ang mga bahagi tulad ng ipinakita sa circuit. Nakuha ko iyon mula sa Electronoobs. Talagang tinulungan niya ako sa proyektong ito. Suriin ang kanyang bersyon ng proyekto dito. Kung sinusundan mo ang tutorial na ito, hindi mo kailangang mag-alala tungkol sa mga koneksyon ng tatanggap: input_Yaw, input_Pitch, atbp. Lahat ng iyon ay hahawakan sa bluetooth. Gayundin, ikonekta ang Bluetooth sa paraang ginawa namin sa nakaraang seksyon. Ang aking mga tx at rx pin ay nagbibigay sa akin ng kaunting problema, kaya ginamit ko ang Arduino:

RX bilang 2, at TX bilang 3, sa halip na ang normal na mga pin. Susunod, magsusulat kami ng isang simpleng app na magpapatuloy naming pagbutihin hanggang sa magkaroon kami ng pangwakas na produkto.

Hakbang 7: Ang Kagandahan ng RemoteXY

Ang Kagandahan ng RemoteXY
Ang Kagandahan ng RemoteXY

Para sa pinakamahabang oras na nag-iisip ako ng isang madaling paraan upang bumuo ng isang magagamit na Remote na app na hahayaan akong makontrol ang drone. Karamihan sa mga tao ay gumagamit ng MIT App Inventor, ngunit ang UI ay hindi kasing ganda ng nais ko at hindi rin ako isang tagahanga ng programang may larawan. Maaari ko itong idisenyo gamit ang Android Studio ngunit iyon ay magiging labis na trabaho. Labis akong natuwa nang makahanap ako ng isang tutorial na gumagamit ng RemoteXY. Narito ang link sa website. Napakadaling gamitin at ang dokumentasyon ay napakahusay. Lilikha kami ng isang simpleng UI para sa aming drone. Maaari mong ipasadya ang iyo sa paraang gusto mo. Siguraduhin lamang na alam mo kung ano ang iyong ginagawa. Sundin ang mga tagubilin dito.

Kapag nagawa mo na iyon i-e-edit namin ang code upang mabago namin ang throttle sa aming copter. Idagdag ang mga linya na mayroong / **** Bagay na dapat mong gawin at bakit *** / sa iyong code.

Kung hindi ito pag-iipon siguraduhing nai-download ang library. Buksan din ang isang halimbawa ng sketch at ihambing kung ano ang mayroon na hindi sa iyo.

// ///. silid-aklatan // // ///.

// RemoteXY piliin ang mode ng koneksyon at isama ang library

# tukuyin ang REMOTEXY_MODE_HC05_SOFTSERIAL

# isama ang # isama ang # isama

// Mga setting ng koneksyon sa RemoteXY

#define REMOTEXY_SERIAL_RX 2 # tukuyin ang RemOTEXY_SERIAL_TX 3 # tukuyin ang RemOTEXY_SERIAL_SPEED 9600

// Propellers

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

// RemoteXY configurate

#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}; // tinutukoy ng istrakturang ito ang lahat ng mga variable ng iyong interface ng interface ng control {

// variable ng pag-input

int8_t Joystick_x; // -100..100 x-coordinate posisyon ng joystick int8_t Joystick_y; // -100..100 y-coordinate posisyon ng joystick int8_t ThrottleSlider; // 0..100 posisyon ng slider

// iba pang variable

uint8_t kumonekta_flag; // = 1 kung nakakonekta ang wire, iba pa = 0

} RemoteXY;

#pragma pack (pop)

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

// Tapusin ang RemoteXY isama // // ///. ///. /

/ *****

int input_THROTTLE;

walang bisa ang pag-setup () {

RemoteXY_Init ();

/ **** ***** Ilakip ang mga motor sa Pins Baguhin ang mga halaga upang magkasya sa iyo

L_F_prop.attach (4); // left front motor

L_B_prop.attach (5); // left back motor R_F_prop.attach (7); // kanang harapan ng motor R_B_prop.attach (6); // right back motor

/ ************* Pigilan ang esc mula sa pagpasok sa mode ng pagproseso

L_F_prop.writeMicroseconds (1000); L_B_prop.writeMicroseconds (1000); R_F_prop.writeMicroseconds (1000); R_B_prop.writeMicroseconds (1000); pagkaantala (1000);

}

void loop () {

RemoteXY_Handler ();

/ *** Mapa ang halaga ng throttle na nakukuha mo mula sa app hanggang sa 1000 at 2000 na kung saan ay ang mga halagang pinapatakbo ng mga ESC sa ********* /

input_THROTTLE = mapa (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); }

Hakbang 8: Pagsubok

Kung nagawa mo nang tama ang lahat, dapat mong masubukan ang iyong copter sa pamamagitan ng pagdulas ng throttle pataas at pababa. Tiyaking ginagawa mo ito sa labas. Huwag din panatilihin ang mga propeller dahil magiging sanhi ito ng pagtalon ng copter. Hindi pa namin naisusulat ang code upang balansehin ito, kaya't ito ay magiging isang MASAMANG IDEYA UPANG SubokIN ITO SA MGA PROPELLER! Nagawa ko lang ito dahil lmao.

Ang demonstrasyon ay upang ipakita lamang na dapat naming makontrol ang throttle mula sa app. Mapapansin mong nauutal ang mga motor. Ito ay dahil ang mga ESC ay hindi na-calibrate. Upang magawa ito, tingnan ang mga tagubilin sa pahinang Github na ito. Basahin ang mga tagubilin, buksan ang ESC-Calibration.ino file at sundin ang mga tagubiling iyon. Kung nais mong maunawaan kung ano ang nangyayari, tingnan ang tutorial na ito sa pamamagitan ng Electronoobs.

Habang pinapatakbo mo ang programa siguraduhin na itali mo ang drone gamit ang mga string dahil mapupunta ito sa buong throttle. Siguraduhin din na ang mga propeller ay wala. Iniwan ko nalang ang sa akin dahil sa kalahating baliw ako. HUWAG IWAN SA INYONG PROPELLERS !!! Ang demonstrasyong ito ay ipinapakita sa pangalawang video.

Hakbang 9: Gumagawa ako sa Code. Tapusin ang Maituturo sa Ilang Ilang Araw

Nais lamang idagdag na kung ginagamit mo ang tutorial na ito at naghihintay sa akin, ginagawa ko pa rin ito. Ang iba pang mga bagay sa buhay ko ang dumating na pinagtatrabahuhan ko rin, ngunit huwag mag-alala na mai-post ko ito sa lalong madaling panahon. Sabihin nating pinakabagong sa Agosto 10 2019.

August 10 Update: Ayokong iwan kang nabitin. Sa kasamaang palad wala akong oras upang magtrabaho sa proyekto sa nakaraang linggo. Napaka-abala sa iba pang mga bagay. Ayokong pangunahan ka. Sana makumpleto ko ang maituturo sa malapit na hinaharap. Kung mayroon kang anumang mga katanungan o kailangan ng anumang tulong maaari kang magdagdag ng isang puna sa ibaba at babalik ako sa iyo.

Inirerekumendang: