- Mga Materyal na Kinakailangan
- Pag-unawa sa BLDC Motors
- Bakit gumagamit ng mga BLDC Motors ang mga Drone at iba pang mga Multi-copter?
- Bakit kailangan natin ng ESC at ano ang pagpapaandar nito?
- Ang ilang mga karaniwang termino sa BLDC at ESC's:
- Arduino BLDC Motor Control Circuit Diagram
- Programa para sa BLDC Speed Control gamit ang Arduino
- Pagkontrol ng Arduino BLDC Motor
Ang pagbuo ng mga bagay-bagay at pagpapaandar sa kanila, sa paraang gusto namin, ay palaging naging masaya. Habang napagkasunduan, ang pagbuo ng mga bagay na maaaring lumipad ay mapanghimagsik na magbomba ng kaunti pang pagkabalisa sa mga hobbyist at hardware tinkerer. Oo! Pinag-uusapan ko ang tungkol sa Glider, Helicopters, Planes at higit sa lahat mga multi-copter. Ngayon naging napakadali upang bumuo ng isa sa iyong sarili dahil sa magagamit na suporta sa online sa komunidad. Ang isang karaniwang bagay sa lahat ng mga bagay na lumilipad ay ang paggamit nila ng isang BLDC motor, kaya ano ang BLDC motor na ito? Bakit kailangan natin ito upang lumipad ang mga bagay? Ano ang kakaiba dito? Paano bilhin ang tamang motor at i-interface ito sa iyong controller? Ano ang isang ESC at bakit natin ito ginagamit? Kung mayroon kang mga katanungan tulad nito at ang tutorial na ito ang iyong one stop solution.
Kaya karaniwang sa tutorial na ito ay makokontrol namin ang Brushless Motor sa Arduino. Dito ang A2212 / 13T Sensorless BLDC outrunner motor ay ginagamit sa isang 20A Electronic Speed Controller (ESC). Ang motor na ito ay karaniwang ginagamit upang bumuo ng mga drone.
Mga Materyal na Kinakailangan
- A2212 / 13T BLDC Motor
- ESC (20A)
- Pinagmulan ng Kuryente (12V 20A)
- Arduino
- Potensyomiter
Pag-unawa sa BLDC Motors
Ang BLDC Motor ay nangangahulugang Brush Less DC motor, karaniwang ginagamit ito sa mga fan ng kisame at de-kuryenteng sasakyan dahil sa maayos na operasyon nito. Ang paggamit ng mga BLDC motor sa mga de-koryenteng sasakyan ay dating naipaliwanag nang detalyado. Hindi tulad ng iba pang mga motor, ang mga BLDC motor ay may tatlong mga wire na lumalabas sa kanila at ang bawat kawad ay bumubuo ng sarili nitong yugto sa gayon binigyan kami ng isang tatlong yugto ng Motor. Ano nga ulit!!??
Oo, kahit na ang mga BLDC na motor ay itinuturing na DC motors, gumagana ang mga ito sa tulong ng Pulsed waves. Ang Electronic speed controller (ESC) ay nagko-convert ang boltahe ng DC mula sa baterya patungo sa mga pulso at ibinibigay ito sa 3 mga wire ng Motor. Sa anumang naibigay na oras dalawang Phase lamang ng motor ang papalakasin, upang ang kasalukuyang pumapasok sa isang yugto at umalis sa iba. Sa panahon ng prosesong ito, ang likaw sa loob ng motor ay pinalakas at kaya't ang mga magnet sa rotor ay nakahanay mismo sa energized coil. Pagkatapos ang susunod na dalawang wires ay pinalakas ng ESC, ang prosesong ito ay nagpatuloy upang paikutin ang motor. Ang bilis ng motor ay nakasalalay sa kung gaano kabilis ang lakas ng coil at ang direksyon ng motor ay depende sa kung aling pagkakasunud-sunod ang mga coil ay pinalakas. Malalaman pa ang nalalaman tungkol sa ESC sa artikulong ito.
Maraming uri ng mga motor na BLDC na magagamit, tingnan natin ang pinakakaraniwang mga pag-uuri.
In-runner at Out-Runner BLDC motor: Sa runner na BLDC Motors ay gumagana tulad ng anumang iba pang motor. Iyon ang baras sa loob ng motor na umiikot habang ang pambalot ay nananatiling maayos. Habang ang labas ng mga runner na BLDC motor ay nasa tapat lamang, ang Outer casing ng motor ay umiikot kasama ang baras habang ang likaw sa loob ay mananatiling maayos. Ang mga motor ng runner ay napaka-pakinabang sa mga electric bikes dahil ang panlabas na pambalot (ang isa na umiikot) mismo ay ginawang isang Rim para sa mga gulong at samakatuwid ay iwasan ang isang mekanismo ng pagkabit. Gayundin ang mga outner runner motor ay may posibilidad na magbigay ng higit pang metalikang kuwintas kaysa sa mga uri ng runner, kaya't ito ay naging isang perpektong pagpipilian sa EV at Drones. Ang ginagamit namin dito ay isang out runner type din.
Tandaan: Mayroong isa pang uri ng motor na tinatawag na coreless BLDC motors na ginagamit din para sa pocket Drones, mayroon silang iba't ibang prinsipyo sa pagtatrabaho ngunit sa ngayon laktawan natin ito alang-alang sa tutorial na ito.
Sensor at Sensorless BLDC Motor: Para sa isang BLDC motor upang paikutin nang walang anumang haltak ay kinakailangan ng puna. Iyon ang ESC ay dapat malaman ang posisyon at poste ng mga magnet sa rotor upang pasiglahin ang stator ayon. Ang impormasyong ito ay maaaring makuha sa dalawang paraan; ang isa ay ang paglalagay ng sensor ng hall sa loob ng motor. Ang sensor ng hall ay makakakita ng magnet at magpapadala ng impormasyon sa ESC ang ganitong uri ng motor ay tinatawag na isang Sensord BLDC motor at ginagamit sa mga sasakyang Elektriko. Ang pangalawang pamamaraan ay sa pamamagitan ng paggamit ng likod na EMF na nabuo ng mga coil kapag ang mga magnet ay tumawid sa kanila, kinakailangan nito ng hindi karagdagang hardware o wires ang phase wire mismo ay ginagamit bilang isang puna upang suriin para sa pabalik na EMF. Ang pamamaraang ito ay ginagamit sa aming motor at karaniwan para sa mga drone at iba pang mga lumilipad na proyekto.
Bakit gumagamit ng mga BLDC Motors ang mga Drone at iba pang mga Multi-copter?
Mayroong maraming mga uri ng mga cool na drone doon mula sa Quad copter hanggang sa mga helikopter at glider lahat ng bagay ay may isang hardware na pareho. Iyon ang mga motor na BLDC, ngunit bakit? Bakit gumagamit sila ng BLDC motor na medyo mahal kumpara sa DC Motors?
Mayroong ilang mga wastong dahilan para dito, ang isang pangunahing dahilan ay ang metalikang kuwintas na ibinibigay ng mga motor na ito ay napakataas na napakahalaga upang makakuha / maluwag na tulak na mabilis upang mag-landas o mapunta sa isang drone. Gayundin ang mga motor na ito ay magagamit bilang mga runner na muling pinatataas ang thrust ng mga motor. Ang isa pang dahilan para sa napiling BLDC motor ay ang makinis na panginginig ng boses na mas mababa ang operasyon, ito ay napaka perpekto sa aming drone stable sa kalagitnaan ng hangin.
Ang lakas sa timbang na ratio ng isang BLDC motor ay napakataas. Napakahalaga nito dahil ang mga motor na ginamit sa mga drone ay dapat na may mataas na lakas (mataas na bilis at mataas na metalikang kuwintas) ngunit dapat ding mas mababa ang timbang. Ang isang DC motor na maaaring magbigay ng parehong metalikang kuwintas at bilis ng isang BLDC motor ay magiging dalawang beses mas mabigat kaysa sa BLDC motor.
Bakit kailangan natin ng ESC at ano ang pagpapaandar nito?
Tulad ng nalalaman natin na ang bawat BLDC motor ay nangangailangan ng ilang uri ng controller upang i- convert ang boltahe ng DC mula sa baterya patungo sa mga pulso upang mapagana ang mga phase wire ng motor. Ang controller na ito ay tinatawag na isang ESC na nangangahulugang Electronic Speed Controller. Ang pangunahing responsibilidad ng tagakontrol ay upang pasiglahin ang mga wire ng Phase ng mga motor na BLDC sa isang pagkakasunud-sunod upang umiikot ang motor. Ginagawa ito sa pamamagitan ng pag-sensing sa likod ng EMF mula sa bawat kawad at pasiglahin ang likaw nang eksakto kapag ang magnet ay tumatawid sa likid. Kaya't mayroong maraming ningning sa hardware sa loob ng ESC na wala sa saklaw ng tutorial na ito. Ngunit upang banggitin ang ilan mayroon itong speed controller at isang circuit ng tagaalis ng baterya.
Batay sa kontrol ng bilis ng PWM: Maaaring makontrol ng ESC ang bilis ng motor na BLDC sa pamamagitan ng pagbabasa ng signal na PWM na ibinigay sa Orange wire. Gumagawa ito ng halos kapareho sa servo motors, ang ibinigay na signal ng PWM ay dapat magkaroon ng isang panahon ng 20ms at ang cycle ng tungkulin ay maaaring iba-iba upang ibahin ang bilis ng BLDC motor. Dahil ang parehong lohika ay nalalapat din para sa mga motor ng servo upang makontrol ang posisyon na maaari naming gamitin ang parehong library ng servo sa aming programa ng Arduino. Alamin ang paggamit ng Servo kasama ang Arduino dito.
Battery Eliminator Circuit (BEC): Halos lahat ng ESC ay may kasamang circuit ng tagaalis ng baterya. Tulad ng ipinahihiwatig ng pangalan na tinanggal ng circuit na ito ang pangangailangan ng magkakahiwalay na baterya para sa microcontroller, sa kasong ito hindi namin kailangan ng isang hiwalay na supply ng kuryente upang mapatakbo ang aming Arduino; ang ESC mismo ay magbibigay ng isang kinokontrol na + 5V na maaaring magamit na kapangyarihan sa aming Arduino. Mayroong maraming mga uri ng circuit na kinokontrol ang boltahe na ito nang normal na ito ay magiging linear na regulasyon sa mga murang ESC, ngunit maaari mo ring makita ang mga may switching circuit.
Firmware: Ang bawat ESC ay may isang programa ng firmware na nakasulat dito sa pamamagitan ng mga paninda. Malaking natutukoy ng firmware na ito kung paano tumugon ang iyong ESC; ang ilan sa mga tanyag na firmware ay Tradisyunal, Simon-K at BL-Heli. Ang firmware na ito ay nai-program din ng gumagamit ngunit hindi namin makukuha ang marami sa mga ito sa tutorial na ito.
Ang ilang mga karaniwang termino sa BLDC at ESC's:
Kung nagsimula ka lamang magtrabaho kasama ang mga motor ng BLDC kung gayon maaaring nahanap mo ang mga term na tulad ng Braking, Soft start, Motor Direction, Low Voltage, Response time at Advance. Tingnan natin kung ano ang ibig sabihin ng mga term na ito.
Pagpreno: Ang pagpepreno ay ang kakayahan ng iyong motor na BLDC na huminto sa pag-ikot sa sandaling natanggal ang throttle. Ang kakayahang ito ay napakahalaga para sa mga multi-copter dahil kailangan nilang palitan ang kanilang RPM nang mas madalas upang makamaniobra sa hangin.
Soft Start: Ang soft start ay isang mahalagang tampok upang isaalang-alang kapag ang iyong BLDC motor ay naiugnay sa gear. Kapag ang isang motor ay may pinagana na malambot na pagsisimula, hindi ito magsisimulang umikot nang napakabilis, palagi itong babagal ng bilis kahit gaano kabilis ibigay ang throttle. Makakatulong ito sa amin sa pagbawas ng pagkasira ng mga gears na nakakabit sa mga motor (kung mayroon man).
Direksyon ng Motor: Ang direksyon ng motor sa mga motor ng BLDC ay karaniwang hindi binago sa panahon ng operasyon. Ngunit kapag nag-iipon, maaaring kailanganin ng gumagamit na baguhin ang direksyon kung saan umiikot ang motor. Ang pinakamadaling paraan upang baguhin ang direksyon ng motor ay sa pamamagitan lamang ng pagbabago ng anumang dalawang wires ng motor.
Mababang Paghinto ng Boltahe: Kapag na-calibrate lagi naming kailangan ang aming BLDC motor na tumakbo sa parehong partikular na bilis para sa isang partikular na halaga ng throttle. Ngunit ito ay mahirap makamit dahil ang mga motor ay may posibilidad na bawasan ang kanilang bilis para sa parehong halaga ng throttle habang bumababa ang boltahe ng baterya. Upang maiwasan ito, normal naming program ang ESC na huminto sa pagtatrabaho kapag ang boltahe ng baterya ay umabot sa ibaba ng halaga ng threshold ang pagpapaandar na ito ay tinatawag na Mababang Boltahe Itigil at kapaki-pakinabang sa mga drone.
Oras ng pagtugon: Ang kakayahan ng motor na mabilis na mabago ang bilis nito batay sa pagbabago ng throttle ay tinatawag na oras ng pagtugon. Ang mas kaunting oras ng pagtugon ay mas mahusay ang kontrol.
Advance: Advance ay isang problema o higit pa tulad ng isang bug na may mga BLDC motor. Ang lahat ng mga BLDC motor ay may kaunting pagsulong sa kanila. Iyon ay kapag ang mga stator coil ay pinalakas ang rotor ay naaakit patungo dito dahil sa permanenteng magnet na naroroon sa kanila. Matapos maakit ang rotor ay may kaugaliang ilipat nang kaunti pa sa parehong direksyon bago ang coil de-energises at pagkatapos ay ang susunod na energises ng coil. Ang kilusang ito ay tinatawag na "Advance" at lilikha ito ng mga problema tulad ng pag-jitter, pag-init, pag-ingay atbp. Kaya't ito ay isang bagay na dapat iwasan ng isang magandang ESC sa sarili nitong.
Okay, sapat na teorya ngayon ipaalam sa amin na magsimula sa hardware sa pamamagitan ng pagkonekta sa motor sa Arduino.
Arduino BLDC Motor Control Circuit Diagram
Nasa ibaba ang circuit diagram upang Makontrol ang Brushless Motor na may Arduino:
Ang koneksyon para sa interfacing BLDC motor na may Arduino ay medyo tuwid. Ang ESC ay nangangailangan ng mapagkukunan ng kapangyarihan na humigit-kumulang na 12V at 5A na minimum. Sa tutorial na ito ginamit ko ang aking RPS bilang isang mapagkukunan ng kuryente ngunit maaari mo ring gamitin ang isang baterya ng Li-Po upang mapagana ang ESC. Ang tatlong phase wires ng ESC ay dapat na konektado sa tatlong phase wires ng mga motor, walang order upang ikonekta ang mga wire na maaari mong ikonekta ang mga ito sa anumang pagkakasunud-sunod.
Babala: Ang ilang ESC ay walang mga konektor sa kanila, sa kasong iyon tiyakin na ang iyong koneksyon ay solid at protektahan ang mga nakalantad na mga wire gamit ang insulate tape. Dahil magkakaroon ng mataas na kasalukuyang pagdaan sa mga phase ng anumang maikling ay hahantong sa permanenteng pinsala ng ESC at motor.
Ang BEC (Battery Eliminator circuit) sa mismong ESC ay magsasaayos ng isang + 5V na maaaring magamit upang mapalakas ang Arduino Board. Sa wakas upang maitakda ang bilis ng motor na BLDC gumagamit din kami ng isang potensyomiter na konektado sa A0 pin ng Arduino
Programa para sa BLDC Speed Control gamit ang Arduino
Kailangan naming lumikha ng isang signal ng PWM na may iba't ibang cycle ng tungkulin mula 0% hanggang 100% na may dalas na 50Hz. Ang siklo ng tungkulin ay dapat na kontrolin sa pamamagitan ng paggamit ng isang potensyomiter upang makontrol natin ang bilis ng motor. Ang code upang magawa ito ay pareho sa pagkontrol sa mga servo motor dahil nangangailangan din sila ng isang signal na PWM na may dalas ng 50Hz; samakatuwid gumagamit kami ng parehong servo library mula sa Arduino. Ang kumpletong code ay matatagpuan sa ilalim ng pahinang ito nang higit pa sa ibaba ipinaliwanag ko ang code sa maliliit na mga snippet. At kung bago ka sa Arduino o PWM pagkatapos, dumaan muna sa paggamit ng PWM kasama ng Arduino at pagkontrol sa servo gamit ang Arduino.
Ang signal ng PWM ay maaaring mabuo lamang sa mga pin na sumusuporta sa PWM sa pamamagitan ng hardware, ang mga pin na ito ay karaniwang nabanggit na may ~ simbolo. Sa Arduino UNO, ang pin 9 ay maaaring makabuo ng signal ng PWM kaya't ikinonekta namin ang ESC signal pin (orange wire) sa pin 9 binabanggit din namin ang parehong code ng inn sa pamamagitan ng paggamit ng sumusunod na linya
ESC.attach (9);
Kailangan nating makabuo ng PWM signal ng iba't ibang cycle ng tungkulin mula 0% hanggang 100%. Para sa 0% duty cycle ang POT ay maglalabas ng 0V (0) at para sa 100% cycle ng tungkulin ang POT ay maglalabas ng 5V (1023). Narito ang palayok ay konektado sa pin A0, kaya kailangan nating basahin ang analog boltahe mula sa POT sa pamamagitan ng paggamit ng analog read function tulad ng ipinakita sa ibaba
int throttle = analogRead (A0);
Pagkatapos ay kailangan nating baguhin ang halaga mula 0 hanggang 1023 hanggang 0 hanggang 180 dahil ang halaga na 0 ay bubuo ng 0% PWM at ang halagang 180 ay bubuo ng 100% na cycle ng tungkulin. Anumang mga halagang higit sa 180 ay walang katuturan. Kaya nai-map namin ang halaga sa 0-180 sa pamamagitan ng paggamit ng pagpapaandar ng mapa tulad ng ipinakita sa ibaba.
throttle = mapa (throttle, 0, 1023, 0, 180);
Sa wakas, kailangan naming ipadala ang halagang ito sa pagpapaandar ng servo upang maaari itong makabuo ng signal ng PWM sa pin na iyon. Dahil pinangalanan namin ang object ng servo bilang ESC ang code ay magmumukhang ganito sa ibaba, kung saan ang variable throttle ay naglalaman ng halaga mula 0-180 upang makontrol ang cycle ng tungkulin ng signal ng PWM
ESC. Magsulat (throttle);
Pagkontrol ng Arduino BLDC Motor
Gawin ang mga koneksyon alinsunod sa diagram ng circuit at i-upload ang code sa Arduino at i-power up ang ESC. Tiyaking nai-mount mo ang BLDC motor sa isang bagay dahil ang motor ay tatalon sa paligid kapag umiikot. Sa sandaling ang pag-setup ay pinapagana, ang iyong ESC ay gagawa ng isang maligayang tono at magpapanatili ng pag-beep hanggang sa ang signal ng throttle ay nasa loob ng mga limitasyon ng threshold, simpleng dagdagan ang POT mula sa 0V nang paunti-unti at titigil ang tono ng beeping, nangangahulugan ito na nagbibigay kami ngayon ng PWM signal sa itaas ng mas mababang halaga ng threshold at habang dinaragdagan mo ng karagdagang ang iyong motor ay magsisimulang umikot nang dahan-dahan. Ang mas maraming boltahe na ibinibigay mo ay mas maraming bilis na kukunin ng motor, sa wakas kapag naabot ng boltahe sa itaas ng itaas na limitasyon ng threshold ang motor ay titigil. Maaari mo ring ulitin ang proseso.
Ang kumpletong pagtatrabaho ng Arduino BLDC Controller na ito ay maaari ding matagpuan sa link sa video sa ibaba. Kung nahaharap ka sa anumang problema sa pagtatrabaho nito huwag mag-atubiling gamitin ang seksyon ng komento o gamitin ang mga forum para sa higit pang tulong na panteknikal.