Talaan ng mga Nilalaman:

Arduino Robotic Arm: 5 Mga Hakbang
Arduino Robotic Arm: 5 Mga Hakbang

Video: Arduino Robotic Arm: 5 Mga Hakbang

Video: Arduino Robotic Arm: 5 Mga Hakbang
Video: Using 28BYJ-48 Stepper Motor Push button Speed with 8 projects: Ultimate Video Tutorial Lesson 107 2024, Hulyo
Anonim
Image
Image
Arduino Robotic Arm
Arduino Robotic Arm
Arduino Robotic Arm
Arduino Robotic Arm

Dahil ito ang aking unang proyekto pagkatapos ng 15 mga tutorial ng aking Arduino starter kit, ang tunay na layunin nito ay upang makakuha ng ilang mga kritiko, tip, mungkahi, ideya mula sa sinumang may higit na nakakaalam kaysa sa akin.

Ang proyektong ito ay tungkol sa isang robotic arm, na may 4 na dof at isang mahigpit na pagkakahawak. Sa isang disente mababang badyet: ang istraktura ay pinutol ng isang kaibigan, ang 4 servos ay 30 €, ang 2 joysticks 4 €, bolts turnilyo atbp para sa mas mababa sa 10 € at lahat ng natitira (Arduino, wires, gripo's servo atbp.) ay naisama na sa aking starter kit. Para sa isang kabuuang 40-45 € na kung saan ay humigit-kumulang na 45-50 US dolyar (ang parehong presyo ng isang me-arm kit, ngunit hey, masaya na kailangang itayo ko ito nang mag-isa (at guluhin ang isang bagay paminsan-minsan) at hindi pagsunod sa mga tagubilin tulad ng isang makina).

Dahil ito ang aking unang proyekto at Nakagagawa ng Instructable, ipinasok ko ang '' First Time May-akda '' at ilang pares, kaya kung gusto mo ito, iboto ito:)

Hakbang 1: Paglaraw AT PAGTIPON:

Una kailangan ko ng isang istraktura: Ito talaga ang pinakamahabang bahagi. Dahil hindi ko nais na kopyahin at i-paste ang proyekto mula sa ibang tao, kumuha ako ng isang proyekto bilang sanggunian at ako (at isang pares ng higit pang mga bihasang kamag-aral na talagang nag-save sa akin) sinimulang baguhin ito alinsunod sa aming mga pangangailangan (iba't ibang mga servo na may iba't ibang mga metalikang kuwintas, bigat at sukat, atbp.). Kailangan kong itayo ito ng ilang beses, bawat isa sa kanila ay may nahanap akong mali, at kailangan naming ibalik ang ilang piraso at subukang muli. Inilakip ko ang.dxf file kung nais mong gamitin ito. Pagkatapos ay kailangan kong bumili ng electronics: Karamihan sa mga bahagi ay pamantayan, ang mahirap na bahagi ay piliin ang mga servos. Kinakalkula ko ang kinakailangang metalikang kuwintas na may patakaran ng hinlalaki, kalaunan ay sumubok ako ng isang mas tumpak na pagkalkula at nalaman ko na maaaring nasobrahan ko ito ng kaunti. Maliwanag na 6 kg / cm ay sapat na para sa ika-2 servo (mula sa base), at ang minahan ay nagbibigay ng 9-11 kg / cm. Sa gayon, binibigyan ako nito ng kaligtasan at ng pagkakataong makapag-load ng hanggang sa 2kg ng pagkarga (na imposible, ngunit nais ko na maaari ko itong gawin nang teknikal). Maaari rin akong bumili ng iba`t ibang mga servo, na may pagbawas ng metalikang kuwintas habang papalayo sa base, ngunit ang pagbili ng magkatulad na servos mula sa parehong vendor ay ang pinakamura na pagpipilian. Supply ng Power: Ang Arduino ay tiyak na hindi sapat para sa mga servo, dahil sa bawat mg995 na kumukuha 350mA at ang microservo 9g ay kumukuha ng 100mA, para sa isang kabuuang 350 * 4 +100 = 1500mA. Kaya't nag-salvage ako ng isang charger (6V 1.5A) at nag-solder ng dalawang mga jumper wires dito. (Kung ang ilan sa iyo ay maaaring mangailangan ng ilang totoong tagubilin, magtanong lamang sa mga komento, at gagawin ko ang aking makakaya upang lumikha ng isang sunud-sunod na hakbang gabay) Listahan ng mga materyales: - Istraktura- M5x7cm tornilyo x5, m5 bolts x15 (base) - M3x16mm tornilyo x18 * - M3x20mm tornilyo x13 * - M3 bolts x40 * - M3x8cm screw x3 - Clamp (kung hindi man ay mahuhulog ito) - 3 dowels- Arduino (o kung ano pa upang makontrol ito, kailangan itong magkaroon ng hindi bababa sa 5 PWM) - Isang bagay na ibibigay sa 5-6V at hindi bababa sa 1.5A - 3x ps2 na tulad ng mga joystick- 4x TowerPro mg995 servos- 1x TowerPro 9g microservo (para sa mahigpit na pagkakahawak) - Maraming mga wire ng jumper - Breadboard * (Gumamit ako ng mga bolt at turnilyo upang mabilis na makapagtipon at ma-disassemble, kung hindi man ay mapapalitan mo ang halos lahat ng ito ng mga gawa sa kahoy na mga tornilyo)

Hakbang 2: CODE:

Ang ideya ay upang makontrol ang bawat servo na may isa sa dalawang axis ng isang tulad ng ps2 na joystick. Ang bawat joystick ay tila may iba't ibang "mga halaga ng pahinga" (ang halaga sa pagitan ng 0-1023 kapag mayroon pa rin) para sa parehong axis ng y at x. Iyon ay isang problema, dahil ang pagkakaiba ay lahat ngunit maliit (ang isa ay may zero sa y sa 623) at nais kong gamitin ang pagpapaandar ng mapa upang mai-convert mula 0-1023 hanggang degree. Ngunit iniisip ng pagpapaandar ng mapa ang halaga ng pahinga ay 1023/2. Na nagdala sa bawat paglipat ng servo sa sandaling lumipat ako sa Arduino, hindi maganda. Nagawa kong lumibot dito sa pamamagitan ng paghahanap ng mano-mano ang pagkakaiba sa pagitan ng halaga ng pagbabasa at bawat magkakaibang halaga ng pahinga (na kinakalkula ko nang magkahiwalay para sa bawat joystick), pagkatapos ay sa gawing mas maikli at matalino ang code, pinabasa ko sa kanya ang natitirang mga halaga sa pag-andar ng pag-setup at i-save ang mga ito sa ilang mga variable. Ang bagong algorithm ay nakasalalay sa pag-convert ng pagtaas sa mga degree, ngunit nais ko ang isang napakababang halaga ng mga degree para sa aking pagtaas, kaya Kailangan kong hatiin ito para sa isang pare-pareho: Sinubukan ko ang maraming mga halaga, hanggang sa makabuo ako ng huling 200 (Maaari akong magdagdag ng isang potensyomiter upang manu-manong baguhin ang halagang ito sa nais na isa). Ang natitirang code ay medyo pamantayan hulaan ko, kahit na maaaring maging mas matikas na ilagay ang pagkalkula ng pagtaas sa loob ng isang hiwalay na pagpapaandar.

Hakbang 3: Elektroniko:

Elektroniko
Elektroniko

Ang mga kable ay kapareho ng ipinakita sa larawan o ang fritzing file: signal ng servos sa mga pin: 5-6-9-10-11 at axis ng joystick sa mga analogic na pin: A0-A1-A2-A3-A4 Ang pangunahing problema na nasagasaan ko ay ang mga joysticks NA DAPAT MAAARING ibigay ng Arduino, HINDI ng charger na ginagamit ko para sa mga servo. Kung hindi man ang servo ay mababaliw na gumagalaw nang sapalaran pabalik-balik. Sa palagay ko ay maaaring dahil, kung bibigyan ko sila ng charger, hindi masasabi ng Arduino na tiyak ang potensyal na pagkakaiba kapag inilipat ko sila, ngunit muli: Napaka bago ko sa electronics kaya't hulaan lamang ito. Ang pagkonekta sa Arduino ground at charger ground sa pamamagitan ng breadboard ay nakatulong sa pagpigil sa mga random at hindi inaasahang paggalaw, para sa isang katulad na dahilan ng supply ng mga joystick na inaakala ko.

Hakbang 4: KASALUKUYANG MAGPAPAYO:

Kasalukuyang Pupunta sa Pagpapabuti
Kasalukuyang Pupunta sa Pagpapabuti

Dahil ang bawat joystick ay maaaring makontrol ang 2 servos (1 bawat axis), kailangan ko ng 3 servos upang makontrol ang buong braso, ngunit sa kasamaang palad mayroon lamang akong 2 thumbs. Kaya naisip ko na, sa halip na kontrolin ang bawat servo, makokontrol ko lamang ang xyz na posisyon ng mahigpit na pagkakahawak at buksan-sarado ang mahigpit na pagkakahawak, para sa isang kabuuang 4 na axis, 2 mga joystick at 2 mga hinlalaki! Nalaman ko na ang problemang iyon ay kilala bilang Inverse Kinematics, nalaman ko rin na lahat ay madali. Ang ideya ay magsulat (hindi linya Hindi ito dapat maging napakahirap, kailangan kong basahin ang mga joystick, gamitin ang kanilang mga pagbasa upang mabago ang mga xyz coordinate ng mahigpit na pagkakahawak, at pagkatapos ay bigyan sila sa aking mga equation, kalkulahin ang mga anggulo ng servos at isulat ang mga ito.

Hakbang 5: Hinaharap na Mga Pagpapabuti:

Kaya, medyo nasiyahan ako sa kinalabasan nito at isinasaalang-alang na ganap akong bago sa electronics na hindi humihihip ng isang bagay o sa aking sarili ay isang malaking tagumpay. Tulad ng sinabi ko sa simula, ang anumang ideya para sa mga pagpapabuti sa hinaharap, parehong software at Ang hardware, ay higit pa sa maligayang pagdating! Sa ngayon naisip ko ang tungkol sa: 1. Ang potensyomiter upang mabago ang "sensibility" ng mga joystick.2. Bagong code upang siya ay "magrekord" ng ilang mga paggalaw at gawin itong muli (maaaring mas mabilis at mas maikli kaysa sa input ng tao) 3. Ang ilang mga uri ng visual / distansya / boses na pag-input at nakakakuha ng mga bagay nang walang isang taong gumagamit ng mga joystick4. Ang kakayahang gumuhit ng mga geometrical figure Na may iba pang ideya? Mangyaring huwag mag-atubiling magbigay ng puna sa anumang mga mungkahi. Salamat

Inirerekumendang: