Përmbajtje:

[WIP] Krijimi i një Drawbot të kontrolluar nga një shirit shiriti Myo: 11 hapa
[WIP] Krijimi i një Drawbot të kontrolluar nga një shirit shiriti Myo: 11 hapa

Video: [WIP] Krijimi i një Drawbot të kontrolluar nga një shirit shiriti Myo: 11 hapa

Video: [WIP] Krijimi i një Drawbot të kontrolluar nga një shirit shiriti Myo: 11 hapa
Video: Learn French While You Sleep - A2 - French Conversation 2024, Shtator
Anonim
[WIP] Krijimi i një Drawbot të kontrolluar nga një shirit shiriti Myo
[WIP] Krijimi i një Drawbot të kontrolluar nga një shirit shiriti Myo

Përshëndetje të gjithë!

Disa muaj më parë, ne vendosëm të përpiqemi të trajtojmë idenë e ndërtimit të një shortbot me kornizë të hapur, e cila përdori vetëm një grup Myo për ta kontrolluar atë. Kur filluam për herë të parë në projekt, e dinim që do të duhej të ndahej në disa faza të ndryshme. Faza jonë e parë kryesore ishte të përpiqeshim të mbështillnim kokën rreth një modeli me kornizë të hapur për botin tonë të tërheqjes. Ky është një konfigurim jo standard, dhe ne donim të shihnim cilat ishin përfitimet e këtij dizajni.

Së dyti, ne e dinim që ndërtimi i këtij prototipi do të ishte i dobishëm vetëm për veten tonë. Dizajni dhe plani ynë ishte të kalonim kornizën tonë përfundimtare në metal, dhe duke përdorur një arduino, të merrnim pozicionin tonë nga përshpejtuesi dhe xhiroskopi i ndërtuar në brezin Myo. Ky informacion do t'i dërgohej motorëve dhe do të përsëriste lëvizjen e përdoruesit. Ne e dinim që kjo do ta bënte fazën tonë të dytë të shpërthente në tre aspekte kryesore:

  1. programimi nga Myo tek motorët, përmes Arduino
  2. dizajn elektrik për të përkthyer të dhënat tona në lëvizje
  3. dizajn mekanik për të krijuar një kornizë me madhësi të arsyeshme që do të lehtësojë lëvizjen tonë

Secili anëtar në ekipin tonë ndihej më komod me një pjesë unike të procesit tonë të projektimit, kështu që ne vendosëm të ndanim punën tonë midis secilit person. Ne gjithashtu mbajtëm një blog gjatë gjithë procesit tonë të projektimit për të ndjekur mendimet tona nga dita në ditë, në krahasim me një pamje më globale.

Hapi 1: Çfarë kemi planifikuar të bëjmë

Image
Image

Qëllimi ynë ishte të kombinonim këto dy produkte në një mënyrë që nuk e kemi parë as të përdorur më parë. Ne u nisëm për të bërë një stafetë të drejtpërdrejtë midis shiritit tonë Myo dhe versionit tonë të një modeli të frymëzuar nga AxiDraw i Evil Mad Scientist.

Hapi 2: Lista e Përbërësve Prototip

2 dërrasa druri 2 2 x 1 Rrip ose zinxhir matës> = 65”4 gozhdë druri 3 Ingranazhe me dhëmbë që i përshtaten rripit ose zinxhirit 4 pllaka të shpuara 3 3 x 8 vex 30 ⅜” Ndarëse gome 8 rondele me diametër 1 1”diametër prej druri 1 kunj 1 'i gjatë 8 Vida Vex 1”8 ½” Vex Vex 8 2”Vex Vex 8 ¼” Ndarës gome 48 Arra Vex 1 Kravatë e vogël me zinxhir

Hapi 3: [Prototipi] Prerja e drurit Armët tona dhe brendësia e karrocës

[Prototipi] Përpunimi i drurit Armët tona dhe karroca të brendshme
[Prototipi] Përpunimi i drurit Armët tona dhe karroca të brendshme

Ne kapëm dy 2x4 dhe i shkurtuam në gjatësi të barabarta (33 ¼ )

Duke përdorur një sharrë tavoline ne kemi bërë një nivel përgjatë pjesës së ngushtë të dërrasave ¼”të thellë dhe wide” të gjerë në mes

Pritini kunjin në 4 copë 2 "dhe shponi një vrimë në mes të kunjit në diametër rreth ¼" duke përdorur një stërvitje

Hapi 4: [Prototipi] Bërja e Transportit Tonë

[Prototipi] Bërja e Transportit Tonë
[Prototipi] Bërja e Transportit Tonë
[Prototipi] Bërja e Transportit Tonë
[Prototipi] Bërja e Transportit Tonë
[Prototipi] Bërja e Transportit Tonë
[Prototipi] Bërja e Transportit Tonë

Në mënyrë ideale, ne do të përdorim dy copa çeliku të shpuar 7x7, por gjithçka që kishim në dispozicion ishin shiritat 2x7, kështu që i lidhëm së bashku në një konfigurim "X"

Grumbulloni 5 ndarës gome ⅜”dhe siguroni qoshet e pllakave vex me njëri -tjetrin

Siguroni lirshëm shufrat prej druri siç tregohet në figurën 1 në mënyrë që ato të rrotullohen lirshëm me rreth 2”hapësirë mes tyre, përdorni figurën për të parë se ku duhet të vendosen ingranazhet në këtë pikë që përdorëm rondele, por më vonë u zbulua se ingranazhet e vogla plastike vex punojnë më mirë Me

Duke përdorur vida "vex, ndarës gome" dhe rondele me diametër 1 "siguroni rondelet në një pozicion të ngritur siç tregohet në figurën 1 (ne përdorëm ingranazhe plastike jeshile sepse nuk gjetëm rondelet e duhura) sigurohuni që rondelet të jenë në gjendje të rrotullohet lehtë dhe të përshtatet në vrimat e tabelës.

Hapi 5: [Prototipi] Vendosja e të gjitha së bashku

[Prototipi] Vendosja e të gjitha së bashku
[Prototipi] Vendosja e të gjitha së bashku
[Prototipi] Vendosja e të gjitha së bashku
[Prototipi] Vendosja e të gjitha së bashku
[Prototipi] Vendosja e të gjitha së bashku
[Prototipi] Vendosja e të gjitha së bashku
[Prototipi] Vendosja e të gjitha së bashku
[Prototipi] Vendosja e të gjitha së bashku

Vendosni një dërrasë në një sipërfaqe dhe rrëshqisni karrocën në mes në mënyrë që rondelet ta mbajnë karrocën mbi dërrasë dhe në të dyja anët e dërrasës të gozhdojnë ingranazhet poshtë në mënyrë që të rrotullohen lirshëm. Mbërtheni një ingranazh në njërin skaj të tabelës së dytë duke u siguruar që është në qendër dhe rrëshqiteni atë mbi karrocë pingul me tabelën e parë.

Tani rripi duhet të lakohet përmes sistemit siç tregohet, kushtojini vëmendje mënyrës se si janë shufrat në pjesën e jashtme të rripit dhe si nuk ka asgjë në qendër të shasisë që mund të pengojë rripin ndërsa lëviz.

Tani rripi duhet të fiksohet në anën e bordit që nuk ka një ingranazh. Ne përdorëm një gozhdë shtesë dhe zinxhir për të lidhur tonën. Por metoda e përdorur nuk ka rëndësi përderisa rripi është i ankoruar në atë vend

Hapi 6: [Prototipi] Përfunduar dhe Lëviz

Image
Image

Kjo duhet të jetë, tërhiqeni rripin në kombinime të ndryshme dhe shihni efektet e ndryshme që ka në krah!

Hapi 7: Përkthimi i modelit tonë në modelin tonë të përfunduar

Përkthimi i modelit tonë në modelin tonë të përfunduar
Përkthimi i modelit tonë në modelin tonë të përfunduar
Përkthimi i modelit tonë në modelin tonë të përfunduar
Përkthimi i modelit tonë në modelin tonë të përfunduar

Pasi përfunduam prototipin tonë, ne ishim në ekstazë. Asnjë nga ne nuk ishte i sigurt se si funksiononte sistemi para montimit. Por, pasi pjesët tona u bashkuan, ne shpejt zbuluam atë që na pëlqente dhe si do ta përmirësonim kur krijonim modelin përfundimtar. Ankesat tona kryesore me sistemin për t'u zgjidhur ishin:

  1. Shkallë

    1. Prototipi ynë ishte masiv dhe i pakëndshëm, gjë që e bëri atë të prirur të përmbyset në skajin e krahëve tanë
    2. Karroca ishte shumë më e madhe seç ishte e nevojshme dhe kishte shumë hapësirë të humbur
    3. Rripi ynë (një shkelm i depozitës së depozitës) ishte shumë më i madh seç ishte e nevojshme, gjë që futi hapësirë të tepërt midis krahëve
  2. Fërkime

    1. Shkeljet tona vex nuk kaluan lehtë mbi rrotullat prej druri të kunjave në të gjitha pikat
    2. Plastika në dru e bëri karrocën të mos donte të lëvizte në shumë raste
  3. Duke motorizuar

    Ne kishim nevojë për ta bërë sistemin të fuqishëm

Me këto gjëra në mendje, ne vizatuam planet tona për modelin përfundimtar. Ne donim që pika e tërheqjes të kontrollohej me një Myo përmes një arduino, dhe ne donim ta bënim kornizën prej alumini dhe më të vogël.

Për ta bërë këtë, ne morëm një përqindje të prototipit tonë origjinal dhe u nisëm për të punuar nga ajo madhësi. Duke përdorur fletë metalike që do të përpunoheshin për të pasur kanale mjaft të gjera për të kaluar një kushinetë të mbrojtur, ne do të kishim një dizajn të lehtë por të fuqishëm që do të kishte tolerancë më të lartë të përdorimit.

Prototipi ynë na lejoi gjithashtu, në vetëm pak minuta, të përcaktonim se si rrotullimi i motorit ndikoi në kokën e shiritit tonë të tërheqjes. Kjo na bën të kuptojmë se modeli ynë i kontrollit do të ishte më i thjeshtë nga sa kishim parashikuar. Me një inspektim më të afërt, kuptuam se lëvizja e motorit është shtesë! Kjo do të thotë që secili motor ka një efekt të pavarur të dëshiruar mbi lëvizjen tonë, por kur i kombinojmë së bashku, ata fillojnë të anulohen.

Për shembull, nëse konsiderohet si një plan koordinativ, motori i vendosur në ekstremitetin negativ x gjithmonë do të priret të tërheqë sirtarin tonë në kuadrantet e dytë dhe të katërt. Anasjelltas, motori i shtrirë në ekstremitetin pozitiv x gjithmonë do ta tërheqë sirtarin në kuadrantin e parë dhe të tretë. Nëse kombinojmë lëvizjen e motorëve tanë, ai do të anulojë pjesët e drejtimit të atij konflikti dhe do të amplifikojë pjesët që bien dakord.

Hapi 8: Kodimi

Ndërsa punoja mjaft gjerësisht në C disa vjet më parë, nuk kisha përvojë me lua ose C ++, dhe kjo do të thoshte se më duhej të kaloja një kohë të konsiderueshme duke kërkuar dokumentacionin. Unë e dija se detyra e përgjithshme që do të përpiqesha të realizoja ishte marrja e pozicionit të përdoruesit në intervale kohore dhe pastaj kalimi i tij tek motorët. Vendosa ta ndaj detyrën për veten time për të tretur më mirë pjesët që do të më duheshin.

1. Merrni të dhëna nga Myo (lua)

E dija që më duhej të gjeja një mënyrë për të mbledhur informacionin nga Myo. Kjo ishte pjesa e parë e sfidës që doja t'i afrohesha. Për ta bërë këtë, doja që përdoruesi të kalibronte madhësinë e kanavacës para se të fillonte të vizatonte. Kjo do të më lejonte të kisha një kufi për të punuar. Unë pastaj mund të normalizoj programin midis përdoruesve të ndryshëm thjesht duke marrë një përqindje të kanavacës maksimale pasi të dhënat e mia të kalojnë. Vendosa të kem një ngjarje të shkruar që do të bënte një kontroll të orientimit çdo gjysmë të sekondës, pasi do të lejonte që kontrollet të mos kryenin asnjëherë një kërcim të egër nga i cili do të kishit nevojë të merreni me mend (për shembull, nëse përdoruesi po kthehej ashpër mbrapa dhe me radhë)

Kjo bëri bllokimin e parë të rrugës që godita. Zbulova një kufizim shumë të madh të lua, dhe se nuk do të më lejonte të prisja para se të vazhdoja skenarin. Mënyra e vetme për të kryer këtë veprim ishte ose të ndërprisni CPU -në (e cila do ta ndalonte atë globalisht, madje edhe duke mbajtur orën e sistemit), ose të përdorni komandat specifike të OS. Në kodin tim shembullor, lashë në kontrollimin origjinal të OS që kam kryer (komentuar). Kjo ndodhi pasi bëri një sasi të madhe kërkimesh në dokumentacionin e lua, dhe u bë duke kontrolluar formatimin e rrugës së sistemit. Kjo ishte kur vendosa se duhej të shikoja dokumentacionin për projektet që ishin botuar më parë. Kuptova menjëherë sa kohë humba dhe u çova menjëherë në ndryshoren e platformës. Me të, unë isha në gjendje të zbatoja komandat specifike të pritjes për OS pothuajse menjëherë, në krahasim me ditët që më duheshin për të kapur së bashku zgjidhjen time të mëparshme.

Ishte rreth kësaj kohe të projektimit që filloi puna në aspektin elektrik, dhe unë pezullova punën në këtë aspekt të kodit. Qëllimi është të mësojmë se si motorët tanë u ndërlidhën me arduino.

2. Duke punuar rreth Arduino (C ++)

Ndërsa puna me tabelën tonë të bukës u bë gjithnjë e më komplekse, mësova se arduino nuk ishte në gjendje të lexonte shumë tema. Ky ishte një pikëllim i madh në hartimin tim të kodit origjinal, dhe pasi lexova më shumë rreth kufizimeve të paraqitura me kontrolluesin tonë, zbulova se do të më duhej të programoja se si do të kalonte arduino midis të dyve. Ky u bë fokusi i përpjekjeve të mia kur afrohej afati ynë. Më duhej të hiqja pjesë të mëdha të skenarit tim origjinal pasi ato ishin krijuar për të shkruar të dhëna në një skedar në mënyrë sinkronike me kontrolluesin motorik që lexonte skedarin. Kjo do të lejonte një funksion në radhë për t'u siguruar që edhe nëse përdoruesi ishte përpara sirtarit tonë, nuk do të prishë projektin.

Vendosa që funksioni i radhës duhet të ruhet, nëse nuk zbatohet në të njëjtën mënyrë si më parë. Për ta bërë këtë, unë krijova një vektor të vargjeve. Kjo më lejoi që jo vetëm ta mbaja frymën e modelit tim të mëparshëm relativisht të paprekur, por gjithashtu do të thoshte se nuk më duhej të mbaja shënime për vendin tim në skedar për të lexuar ose shkruar. Në vend të kësaj, tani gjithçka që duhej të bëja ishte thjesht të shtoja një vlerë të re në vektorin tim nëse përdoruesi lëvizte (testimi paraprak ishte më pak se 1% i diferencës së madhësisë së kanavacës si në x ashtu edhe në y nga pozicioni i fundit i regjistruar nuk rezultoi në regjistrim të të dhënave) Me Unë pastaj mund të marr vlerën më të vjetër në vektorin tim dhe me një lëvizje, ta dërgoj te kontrolli motorik, ta shkruaj në skedarin tonë dhe pastaj ta heq atë nga vektori im. Kjo pastroi shumë shqetësimet e mia në lidhje me rrjedhën e vazhdueshme të IO -ve.

Hapi 9: Elektrik

Image
Image
Elektrike
Elektrike

Ndërsa kam marrë një klasë elektronike në të kaluarën, dhe kam punuar një sasi të drejtë me arduinos. Asnjëherë nuk jam zhytur thellë në bërjen që arduino të marrë informacion nga një burim i jashtëm (myo), kam vetëm përvojë që nxjerr informacion përmes arduino. Sidoqoftë, fillova të instaloj motorët në shiritin tonë tërheqës dhe të punoj në kod që ata të jenë në gjendje të punojnë me kodin myo.

Materialet që kam përdorur:

2 x motorë Stepper

1 x Breadboard

1 x Arduino (Uno)

2 x Shofer IC L293DE

40 x tela bluzë

2 x Tifozë

1. Lidhja e Stepper Motors dhe Tifozit me Breadboard

Duke ndjekur diagramin e qarkut, ne mund të lidhim një motor stepper tek shoferi në tryezën e bukës. Pastaj, duke ndjekur të njëjtin diagram aplikoni atë për drejtuesin dhe motorin e dytë, megjithatë, telat e kërcyesit do të duhet të lidhen me një grup të ndryshëm kunjash në arduino (pasi motori i parë po zë hapësirën e 4 të tjerëve).

Paralajmërim/Këshillë:

Drejtuesit janë shumë të vegjël dhe kunjat janë shumë afër njëri -tjetrit. Do të ishte e mençur të ndanit dy shoferët në mënyrë që telat të mos ngatërrohen.

Tjetra është lidhja e tifozëve. Kjo është mjaft e thjeshtë, tifozët që kisha në dispozicion ishin tifozë bazë të procesorit të kompjuterit, të cilët kanë një pozitivitet dhe bazë. Futini ato të dyja në kunjat e tyre përkatëse +/- në dërrasën e bukës dhe vendosni secilin në drejtim të secilit drejtues. (Ne zbuluam se për shkak se motorët stepper marrin informacione dhe komanda të shpërthyera për një periudhë të gjatë kohore, drejtuesit priren të mbinxehen dhe të nuhasin. Shtimi i një tifozi për ta ftohur e rregulloi këtë çështje).

2. Kodi Arduino

Kjo është pjesa e lehtë!

Hapni Arduino IDE shkoni te skedari "Skedar", pastaj hidheni në skedën "shembull" e cila do të bjerë edhe më tej dhe do t'ju tregojë një skedë "stepper" Pastaj dëshironi të hapni "Stepper_OneStepAtATime"

Kjo do të ngarkojë paraprakisht një kod shembull që është pothuajse plug-and-play në instalimet elektrike arduino/motorike. Do të na duhet të bëjmë rregullime të vogla sepse do të punojmë me dy motorë, të cilët do t'i tregoj më poshtë. Ju gjithashtu mund të keni nevojë të bëni rregullime të vogla në varësi të kunjave që keni vendosur të përdorni, pasi që Arduino IDE parazgjedhë në kunjat 8-11.

Kodi që kam përdorur për t'i bërë dy motorët të lëvizin në "sinkronizim" është më poshtë:

//#përfshijë

const int hapaPerRevolution = 200;

Stepper myStepper1 (hapatPerRevolution, 9, 10, 11, 12);

Stepper myStepper2 (hapatPerRevolution, 4, 5, 6, 7);

int stepCount = 0;

void setup () {// inicio portin serik: Serial.begin (9600); }

lak void () {

myStepper1.step (1);

Serial.print ("hapat:");

Serial.println (stepCount);

stepCount ++;

vonesë (0.5);

myStepper2.step (1); vonesa (0.5); }

3. Probleme të mundshme

Çështjet me të cilat hasa gjatë këtij procesi nuk ishte përdorimi i shembullit të kodit të duhur, përdorimi i një teli të keq, duke përdorur IC -në e gabuar të shoferit.

Sigurohuni që shoferi juaj që po përdorni është i aftë të kontrollojë një motor

Kontrolloni numrin serik dhe kontrolloni specifikimet e tij

Unë hasa në një problem për të pasur një tela të vdekur, e cila bëri që motorët e mi të rrotulloheshin çuditërisht

Më është dashur të përdor një multimetër për të kontrolluar çdo tel

Dhe gjithmonë kontrolloni dy herë kodin tuaj për gabime të vogla si të mungoni një fund ";" komanda

Hapi 10: Mekanike

Mekanike
Mekanike
Mekanike
Mekanike
Mekanike
Mekanike
Mekanike
Mekanike

1. Materiali

Për modelin e prodhimit të plotë të krahëve rekomandohet që ato të jenë prej materiali të fortë por të lehtë, ne menduam se alumini ishte një përshtatje perfekte.

Ne përdorëm fletë alumini me matës 032 të prera në 9.125 "x 17.5" dhe gjurmuam modelin nga vizatimi i treguar në hapin e mëparshëm.

2. Fabrikimi

Duke përdorur çekiçin (makinën blu) ne shtuam cepat që përballen me drejtime të kundërta në mënyrë që kur copa të thyhet dhe paloset, të dy skajet të bashkohen duke formuar një pjesë të vetme të plotë.

Për kthesat e mëdha ne përdorëm tennismithin, për shkak të saktësisë së tij të lartë.

Tani për kthesat më të vogla, do të dëshironi të përdorni një makinë me një këmbë më të vogël, këtu hyn një makinë si roto-die. Për shkak të këmbës së saj më të vogël, lejon që të bëhen pushime më të vogla, për fat të keq, roto-die në dispozicionin tonë ishte akoma shumë e madhe për hekurudhën tonë dhe ishte deformuar.

** Përndryshe, nëse nuk keni akses në pajisjet ose mjetet e duhura, atëherë mund të bëhet një zëvendësues. **

Në rastin tonë, ne i kemi prerë krahët nga shinat e panelit diellor prej alumini duke përdorur një prestar plazma dhe i bluajmë skajet të lëmuara, pastaj i lidhim ato mbrapa prapa për të bërë një sistem hekurudhor të dyanshëm. Në mënyrë ideale, ne do të donim të bashkonim shinat së bashku, megjithatë, pa qasje në një stacion saldimi ne përkundrazi i shtrënguam shinat dhe i shpuam pastaj i lidhëm ato së bashku. Por nëse merret kjo rrugë, atëherë duhet bërë kujdes i veçantë për të përdorur një arrë bllokuese dhe rondele për të siguruar që pjesa të ketë sa më pak përkulje.

3. Brezi

Për rripat ne përdorëm disa rripa të vjetër të printerit 3D që ishim në gjendje të shpëtonim.

Rripat nuk ishin mjaft të gjatë fillimisht kështu që duke përdorur disa tuba për tkurrjen e nxehtësisë ne kombinuam dy pjesë për të bërë një që do të ishte mjaft e gjatë.

Ingranazhet e gjelbërta dhe kunjat prej druri u zëvendësuan nga kushinetat e diskut me rondele shumë të gjera të përdorura për të mbajtur rripin të mos rrëshqasë jashtë vendit.

4. Transporti

Dhe më në fund karroca ishte bërë nga një fletë 5 "x 5" prej alumini 032, me stërvitje të vrimave të shtypura aty ku vidhat dhe rondelet përkatëse janë menduar të shkojnë. Distanca do të ndryshojë në varësi të asaj se sa e gjerë është shina juaj dhe sa hapësirë keni në rondelet tuaja.

Hapi 11: Reflektime

Fatkeqësisht, çdo anë e projektit tonë hasi në barrikadën kryesore të kohës, dhe ne nuk ishim në gjendje të përfundonim projektin tonë deri në datën e synuar. Secili anëtar i ekipit tonë përfundoi duke bashkëpunuar në çdo aspekt tjetër të dizajnit tonë të paktën në një farë mase, duke çuar në një zhytje të kohës së kurbës së mësimit. Kjo, e shoqëruar me dëshirën për të hartuar një produkt me sa më pak burime të jashtme të jetë e mundur (pasi të gjithë donim të krijonim pjesët tona përkatëse nga e para), çoi në një sasi të madhe të rrotave të rizbuluara.

Të gjithë ata që punuan në projekt mësuan më shumë për aspektet e tjera të projektit. Oneshtë një gjë të bësh softuer të bëjë një veprim specifik, pastaj të bësh që softveri të punojë së bashku me harduerin është një gjë tjetër. Unë do të thoja se është e rëndësishme që kushdo që po punon në aspektin e kodimit të këtij projekti, të jetë po aq i njohur sa edhe koduesi ynë i projektit.

Në përgjithësi, ne nuk ishim në gjendje të arrinim pikërisht atë që donim. Sidoqoftë, unë mendoj se ne ishim në rrugën e duhur dhe të gjithë zbuluam dhe mësuam koncepte të reja që do të jemi në gjendje t'i zbatojmë në projektet e ardhshme.

Recommended: