Talaan ng mga Nilalaman:

Walking Strandbeest, Java / Python at App Controlled: 4 Hakbang (na may Mga Larawan)
Walking Strandbeest, Java / Python at App Controlled: 4 Hakbang (na may Mga Larawan)

Video: Walking Strandbeest, Java / Python at App Controlled: 4 Hakbang (na may Mga Larawan)

Video: Walking Strandbeest, Java / Python at App Controlled: 4 Hakbang (na may Mga Larawan)
Video: Strandbeest Initial Steps 2024, Hulyo
Anonim

Sa pamamagitan ng arrowlikeFollow Higit Pa mula sa may-akda:

Pang-eksperimentong Pag-aaral ng Simple Harmonic Motion
Pang-eksperimentong Pag-aaral ng Simple Harmonic Motion
Pang-eksperimentong Pag-aaral ng Simple Harmonic Motion
Pang-eksperimentong Pag-aaral ng Simple Harmonic Motion

Ang Strandbeest kit na ito ay isang gawaing DIY batay sa Strandbeest na naimbento ni Theo Jansen. Namangha sa disenyo ng henyo ng henyo, nais kong bigyan ito ng buong kadaliang mapakilos, at sa susunod, katalinuhan sa computer. Sa itinuturo na ito, nagtatrabaho kami sa unang bahagi, kakayahang mapakilos. Sinasaklaw din namin ang istrakturang mekanikal para sa laki ng credit card na computer, upang makapaglaro kami sa computer vision at pagproseso ng AI. Upang gawing simple ang gawaing gusali at pag-iisip, hindi ako gumamit ng arduino o katulad na mai-program na computer, sa halip, bumubuo ako ng isang bluetooth hardware controller. Ang tagakontrol na ito, na nagtatrabaho bilang terminal na nakikipag-ugnay sa robotic hardware, ay kinokontrol ng mas malakas na system, tulad ng isang android phone app o RaspberryPi, atbp. Ang kontrol ay maaaring kontrol sa alinman sa mobile phone UI, o programmable control sa python o Java na wika. Ang isang SDK para sa bawat wika ng programa ay bukas na mapagkukunan na ibinigay sa

Dahil ang manwal ng mini-Strandbeest na gumagamit ay medyo malinaw sa pagpapaliwanag ng mga hakbang sa pagbuo, sa itinuturo na ito, magtutuon kami sa mga piraso ng impormasyon na hindi karaniwang sakop sa manwal ng gumagamit, at mga bahagi ng elektrikal / elektronikong bahagi.

Kung kailangan namin ng mas madaling maunawaan na ideya sa pagpupulong ng mekanikal ng kit na ito, maraming magagandang mga video sa paksa ng pagpupulong ang magagamit, tulad ng

Mga gamit

Upang maitayo ang bahaging mekanikal at gawin ang lahat ng koneksyon sa kuryente ng Strandbeest na ito, dapat tumagal ng mas mababa sa 1 oras upang makumpleto kung ang bilang ng paghihintay para sa 3D print ay hindi binibilang. Kinakailangan nito ang mga sumusunod na bahagi:

(1) 1x karaniwang Strandbeest kit (https://webshop.strandbeest.com/ordis-parvus)

(2) 2x DC motor na may Gear Box (https://www.amazon.com/Greartisan-50RPM-Torque-Re…)

(3) 1x Bluetooth controller (https://ebay.us/Ex61kC?cmpnId=5338273189)

(4) 1x LiPo Battery (3.7V, ang iyong pagpipilian ng kapasidad sa mAh)

(5) 12x M2x5.6mm kahoy na mga tornilyo

(6) 2mm diameter Carbon o kawayan na kawayan

3D print ang mga sumusunod na bahagi:

(1) 1x robotics pangunahing katawan

(3D file na disenyo ng pag-print na may pag-download lamang ng bluetooth controller)

(3D file na disenyo ng pag-print na may karagdagang pag-download ng OrangePi Nano)

(2) 2x Drive shaft flange (Pag-download ng file ng disenyo ng 3D print)

(3) Fix system ng 2x kapangyarihan (Pag-download ng 3D file na disenyo ng pag-print)

Iba pa:

Android mobile phone. Pumunta sa Google playstore, mangyaring maghanap ng M2ROBOTS at i-install ang control App.

Kung sakaling mahirap ma-access ang Google playstore, bisitahin ang aking personal na homepage para sa alternatibong pamamaraan ng pag-download ng app

Hakbang 1: Mga Bahagi ng Organisasyon

Bahagi ng Organisasyon
Bahagi ng Organisasyon
Bahagi ng Organisasyon
Bahagi ng Organisasyon
Bahagi ng Organisasyon
Bahagi ng Organisasyon
Bahagi ng Organisasyon
Bahagi ng Organisasyon

Sa hakbang na ito, aayusin namin ang lahat ng mga bahagi na tipunin. Fig.1. ipinapakita ang lahat ng mga bahagi ng plastik na labas sa kahon na ginagamit namin upang mabuo ang modelo ng Strandbeest. Ginagawa ang mga ito sa pamamagitan ng paghuhulma ng iniksyon, na napakataas ng husay, kumpara sa iba pang mga pamamaraan ng pagmamanupaktura ng machining tulad ng 3D print o paggiling. Iyon ang dahilan kung bakit nais naming samantalahin ang karamihan ng produktong gawa ng masa, at ipasadya lamang ang pinakamaliit na halaga ng mga bahagi.

Tulad ng ipinakita sa Fig.2, ang bawat piraso ng plastic board ay may label na alpabeto, ang indibidwal na bahagi ay walang label. Kapag na-hiwalay na sila, wala nang pag-label. Upang malutas ang problemang ito, maaari kaming maglagay ng mga bahagi ng parehong uri sa iba't ibang mga kahon, o markahan lamang ang maraming mga lugar sa isang piraso ng papel at maglagay ng isang uri ng mga bahagi sa isang lugar, tingnan ang Larawan 3.

Upang maputol ang bahagi ng plastik sa mas malaking board ng plastik na pagpupulong, ang gunting at kutsilyo ay maaaring hindi kasing epektibo at kasing ligtas ng plier na ipinakita sa Larawan 4 at 5.

Ang lahat dito ay gawa sa plastik, maliban sa materyal ng mga daliri sa paa ay goma, tingnan ang Larawan 6. Maaari naming i-cut ayon sa paunang ginawa na pagbawas. Ang malambot na likas na katangian ng goma na materyal ay nagbibigay ng mas mahusay na mahigpit na pagganap ng strandbeest. Partikular na totoo ito kapag umaakyat sa isang libis. Sa mga susunod na paksa, maaari nating subukan ang kakayahang umakyat sa iba't ibang anggulo ng slope, na mayroon at walang mga daliri ng goma. Kapag walang slip, ito ay tinatawag na static na alitan. Kapag nawala ito sa mahigpit na pagkakahawak, ito ay nagiging kinetic friction. Ang koepisyent ng alitan ay nakasalalay sa mga materyales na ginamit, kaya't mayroon kaming mga daliri ng goma. Paano mag-disenyo ng isang eksperimento, itaas ang iyong kamay at magsalita.

Naglalaman ang huling Larawan ng "ECU", "Power train", at chassis ng modelong ito na Strandbeest.

Hakbang 2: Mga Puntong Karapat-dapat sa Atensyon Sa panahon ng Pagpupulong sa Mekanikal

Mga Puntong Karapat-dapat pansinin Sa panahon ng Pagpupulong sa Mekanikal
Mga Puntong Karapat-dapat pansinin Sa panahon ng Pagpupulong sa Mekanikal
Mga Puntong Karapat-dapat pansinin Sa panahon ng Pagpupulong sa Mekanikal
Mga Puntong Karapat-dapat pansinin Sa panahon ng Pagpupulong sa Mekanikal
Mga Puntong Karapat-dapat pansinin Sa panahon ng Pagpupulong sa Mekanikal
Mga Puntong Karapat-dapat pansinin Sa panahon ng Pagpupulong sa Mekanikal

Ang mini-Strandbeest ay may isang medyo mahusay na manwal ng gumagamit. Ito ay dapat na isang madaling trabaho upang sundin ang manu-manong at kumpletuhin ang pagpupulong. Lalaktawan ko ang nilalamang ito at i-highlight ang ilang mga kagiliw-giliw na puntong karapat-dapat sa aming pansin.

Sa Fig.1, ang isang gilid ng puwang na may hawak na goma ay 90-deg na sulok, samantalang ang kabilang panig ay may 45-deg slope, na opisyal na tinawag na chamfer. Ang nasabing slope ay gumagabay sa rubber toe upang magkasya sa plastic paa. Subukang i-install ang mga daliri ng paa mula sa gilid na may chamfer, tingnan ang Fig.2, pagkatapos ay subukan ang kabilang panig. Napapansin ang pagkakaiba. Ang kanang bahagi ng Fig.3 ay ang crank sa aming Stranbeest. Ito ay halos kapareho sa crank sa isang engine, engine ng kotse, engine ng motorsiklo, lahat ay nagbabahagi ng parehong istraktura. Sa isang Strandbeest, kapag ang pihitan ay lumiliko, hinihimok nito ang mga paa upang gumalaw. Para sa isang makina, ito ay ang paggalaw ng piston na nagmamaneho ng pihitan upang paikutin. Ang nasabing paghihiwalay na 120-deg sa isang bilog ay humahantong din sa isang tatlong yugto ng motor o generator, ang kuryenteng elektrikal ay 120-deg ang pagitan, na ipinakita sa Fig.4. Sa sandaling mayroon kaming mga bahagi ng mekanikal para sa kaliwa at kanang bahagi ng katawan na nagtipon, nagsisimula na kaming magtrabaho sa mga bahagi na idinagdag namin sa Strandbeest, tingnan ang Larawan 5. Ang Fig.6 ay ang hakbang na ginagamit namin ang 3-D naka-print na motor clamp upang ikabit ang motor sa 3-D na naka-print na chassis. Sa hakbang na ito, ang bilis ng kamay ay wala sa mga tornilyo na dapat higpitan bago ang posisyon ng motor ay naayos upang ang gilid na ibabaw ng tsasis ay kapareho ng ibabaw ng motor. Kapag nasiyahan kami sa pagkakahanay, maaari naming higpitan ang lahat ng mga turnilyo. Lumipat sa Fig.7, nagtatrabaho kami sa pag-install ng flange coupling, pagkonekta sa output ng motor sa crank. Ang panig ng motor ay mas mahirap i-install kaysa sa koneksyon ng pihitan na bahagi, tingnan ang Fig.8. Samakatuwid ikinonekta muna namin ang flange ng motor. Kapag na-install ang flange coupling para sa parehong mga motor, tulad ng ipinakita sa Fig.9, gumagamit kami ng dalawang piraso ng 2mm diameter na mga rod ng carbon upang ikonekta ang chassis at kaliwa / kanang istraktura ng paglalakad. Nangyayari iyon sa FIg.10. Sa kabuuan, gumagamit kami ng 3 piraso ng carbon rods upang ikonekta ang mga nilalang na ito. Ngunit sa hakbang na ito, kumokonekta lamang kami sa dalawa sa mga ito, dahil kailangan naming buksan ang crank at magkasya ang koneksyon sa pagitan ng flange at crank. Kung may 3 piraso ng mga carbon rod na nakalagay, mas mahirap na ayusin ang posisyon ng kamag-anak at ikonekta ang mga ito. Sa wakas, mayroon kaming huling pinagsamang mekanikal na sistema, sa Fig.11. Susunod na hakbang, magtrabaho tayo sa electronics.

Hakbang 3: Koneksyon sa Elektrisiko

Koneksyon sa Elektrikal
Koneksyon sa Elektrikal
Koneksyon sa Elektrikal
Koneksyon sa Elektrikal
Koneksyon sa Elektrikal
Koneksyon sa Elektrikal

Ang lahat ng mga elektronikong sistema ay nangangailangan ng suplay ng kuryente. Maaari kaming maglagay ng isang 1-cell na baterya sa isang lugar na maginhawa, halimbawa, sa ilalim ng circuitry board sa Fig.1. Ang polarity ng supply ng kuryente ay kritikal na nararapat sa isang nakatuong pigura upang talakayin. Itinatampok ng Fig.2 ang koneksyon ng baterya. Sa board ng controller, ang polarity ay minarkahan ng "+" at "GND", tingnan ang Fig.3. Kapag naubusan ng juice ang baterya, ginagamit ang isang USB cable upang muling magkarga ng baterya, tingnan ang Larawan 4. Ang LED na nagpapahiwatig ng "recharge in process" ay awtomatikong papatayin kapag ang baterya ay napuno na ulit. Ang huling hakbang ay upang ikonekta ang mga outlet ng motor sa mga konektor ng motor sa board ng controller. Mayroong 3 mga konektor ng motor, na may label na bilang 16 sa Fig.3. Sa Fig.5, ang kaliwang motor ay konektado sa kaliwang konektor na may label na PWM12, at ang kanang motor ay konektado sa gitnang konektor. Sa kasalukuyan, ang pag-ikot sa isang tanke (kaugalian sa pagmamaneho ng sasakyan) na kaliwa ay mahirap na naka-code bilang pagbawas ng lakas ng pag-input ng motor na konektado sa PWM12 motor port. Samakatuwid ang motor na konektado sa port ng PWM12 ay dapat na magmaneho ng kaliwang paa. Sa paglaon ay i-convert ko ang lahat ng pag-andar ng paghahalo upang ma-configure ng gumagamit. tulad ng Sa pamamagitan ng pagpapalit ng pagpipilian ng motor konektor, o baligtarin ang direksyon ng motor konektor, maaari nating ayusin ang problema tulad ng Strandbeest na paatras kapag inuutos na sumulong, pag-on ng maling direksyon, tandaan na binago ng DC motor ang direksyon ng pag-ikot kung ang input wire ay konektado sa control power sa baligtad na order.

Hakbang 4: Mga Setting ng App at Pagpapatakbo

Mga Setting ng App at Pagpapatakbo
Mga Setting ng App at Pagpapatakbo
Mga Setting ng App at Pagpapatakbo
Mga Setting ng App at Pagpapatakbo
Mga Setting ng App at Pagpapatakbo
Mga Setting ng App at Pagpapatakbo
Mga Setting ng App at Pagpapatakbo
Mga Setting ng App at Pagpapatakbo

Una kaming nag-download ng isang android app mula sa Google Play Store, tingnan ang Fig.1. Ang app na ito ay may maraming iba pang mga pagpapaandar na hindi namin maaaring sakupin sa itinuro na ito, magtutuon lamang kami sa mga direktang nauugnay na mga paksa para sa Strandbeest.

I-on ang hardware bluetooth controller, lalabas ito sa listahan ng mga aparato ng pagtuklas. Dadalhin kami ng mahabang pag-click sa tampok na pag-download na over-the-air upang maging "may kakayahang turuan" sa paglaon. Bago kami mag-click at simulan ang kontrol, gumawa muna tayo ng ilang mga pagsasaayos sa pamamagitan ng pag-click sa kanang sulok sa itaas na "Mga Setting". Sa Fig.2, nakatago ito sa ilalim ng… icon. Ipinapakita ng Fig.3 ang maraming kategorya ng setting. Ang mga setting na ito, na naka-configure sa App, ay inilalagay sa pagkilos sa tatlong paraan: 1) ang ilang mga setting ay nakakaapekto lamang sa pagpapatakbo ng App, tulad ng mga aritmetika upang makuha ang utos ng kontrol ng kuryente ng bawat motor mula sa iyong pagpipiloto at throttle command. Nakatira sila sa App. Sa ilang mga mamaya na itinuturo, ipapakita namin kung paano namin papalitan ang mga ito ng aming mga programa sa Python / Java. 2) ang ilang setting ay ipinadala sa hardware bilang bahagi ng control protocol sa hangin, tulad ng switch sa pagitan ng direktang kontrol (ang servo ay lumiliko nang eksakto ang anggulo na iniutos) at lumipad sa pamamagitan ng wire control (ang built in autonomous controller function module ay nagpapatakbo ng servo channel ayon sa utos ng gumagamit at kasalukuyang pag-uugali) 3) ang ilang mga setting ay ipapadala sa Non-pabagu-bago Memorya sa hardware controller. Samakatuwid susundan ng hardware ang mga setting na ito sa tuwing nakabukas ito nang hindi na-configure. Ang isang halimbawa ay ang pangalan ng bluetooth broadcast ng aparato. Ang ganitong uri ng mga setting ay nangangailangan ng isang power-cycle upang magkabisa. Ang unang kategorya na sinisid namin ay ang "Pangkalahatang Mga Setting" sa Larawan 4. Ang "Pag-andar ng kontrol ng app" sa Fig.5 ay tumutukoy sa kung anong papel ang ginagampanan ng app na ito, isang tagapamahala para sa aparato ng hardware sa direktang koneksyon sa bluetooth; isang tulay sa paglipas ng intranet / internet para sa kontrol sa telepresence; at iba pa Susunod, ang pahina ng "HW type" sa Fig.6 ay nagsasabi sa app na nagtatrabaho ka sa isang kaugalian na pagmamaneho ng sasakyan, kaya't kailangang piliin ang mode na "tank". Mayroon kaming 6 PWM output na magagamit sa kabuuan. Para sa Strandbeest, kailangan naming i-configure ang channel 1 hanggang 4 ayon sa Fig.7. Ang bawat PWM channel ay pinamamahalaan sa isa sa mga sumusunod na mode: 1) normal na servo: RC servo na kinokontrol ng 1 hanggang 2ms PWM signal 2) servo reverse: babaligtarin ng controller ang kontrol ng gumagamit para sa output nito 3) DC motor duty cycle: isang DC motor o ilang aparato na de-koryenteng kuryente, maaaring mapatakbo sa mode ng cycle ng tungkulin, 0% ay patayin, 100% ay laging nasa. 4) DC motor duty cycle reverse: muli ang controller ay ibabalik ang kontrol ng gumagamit para sa output nito Dahil gumagamit kami ng DC motor at alagaan ang direksyon ng pag-ikot ng motor sa pamamagitan ng order ng mga kable ng hardware, pipiliin namin ang "DC motor duty cycle" para sa channel 1 hanggang 4, tingnan ang Fig.8. Kailangan din nating pagsamahin ang 2 mga channel ng PWM sa 1 H-tulay, upang paganahin ang bi-directional control. Ang hakbang na ito ay ipinapakita sa Fig.9. Sa mode na "2 PWM sa 1 H-bridge" mode, ginagamit ang channel 1, 3, at 5 upang makontrol ang magkaugnay na channel. Ipinakikilala nito ang isang pangangailangan upang muling gawin ang control ng throttle, pataas na kontrol ng joystick mula sa default na channel 2 nito sa channel 3. Nakamit ito sa mga setting ng Fig.10. Tulad ng ipinakita sa Fig.11, ang bawat channel ay naka-configure upang kumuha ng isang di-makatwirang mapagkukunan ng pag-input.

Ang bingo, ngayon nakumpleto na namin ang minimum na kinakailangang pagsasaayos, at makakabalik kami sa pahina na nagpapakita ng nakikitang bluetooth device at makakonekta ito. Sa Fig.12, subukang i-play ang joystick, at maaari kaming magsaya sa Strandbeest na ito. Subukan ang pag-akyat ng ilang dalisdis, alalahanin ang pagtatasa ng alitan sa pagitan ng mga uri ng materyal, at basahin ang tinatayang pag-uugali ng flight controller, na ipinakita sa hilera na may label na "RPY (deg)", ang apat na mga entry sa hilera na ito ay roll, pitch, yaw anggulo tinantya ng gyroscope at accelerometer onboard; ang huling pagpasok ay ang ikiling-bayad na output ng compass.

Gawain sa hinaharap: sa mga sumusunod na instrumental, unti-unti naming sasaklawin ang interface ng programa nito, pipiliin ang iyong paboritong wika na Java o Python upang makipag-ugnay sa Strandbeest, at hindi na binabasa ang katahimikan na strandbeest mula sa screen ng mobile phone. Sisimulan din namin ang pag-program sa RaspberryPi na uri ng linux computer para sa mas advanced na mga paksa sa programa, tingnan ang huling Larawan. Checkout https://xiapeiqing.github.io/doc/kits/strandbeest/roboticKits_strandbeest/ para sa mga naka-print na 3D na bahagi ng mekanikal at https://github.com/xiapeiqing/m2robots.git para sa SDK at halimbawa ng code kung nais mong magsimula kaagad. Ipaalam sa akin kung ano ang nais mong wika sa pagprograma kung hindi ang Java o Python, maaari akong magdagdag ng bagong bersyon ng SDK.

Magsaya sa pag-hack at manatiling nakasubaybay para sa mga sumusunod na itinuturo.

Inirerekumendang: