Sisällysluettelo:

[WIP] Drawbotin luominen Myo -käsivarsinauhalla: 11 vaihetta
[WIP] Drawbotin luominen Myo -käsivarsinauhalla: 11 vaihetta

Video: [WIP] Drawbotin luominen Myo -käsivarsinauhalla: 11 vaihetta

Video: [WIP] Drawbotin luominen Myo -käsivarsinauhalla: 11 vaihetta
Video: Top 10 Coen Brothers Movies 2024, Heinäkuu
Anonim
[WIP] Drawbotin luominen Myo -käsivarsinauhan ohjaamana
[WIP] Drawbotin luominen Myo -käsivarsinauhan ohjaamana

Hei kaikki!

Muutama kuukausi sitten päätimme yrittää käsitellä ajatusta rakentaa avoimen kehyksen vetolaite, joka käytti vain Myo-bändiä sen hallintaan. Kun aloitimme projektin, tiesimme, että se on jaettava pariin eri vaiheeseen. Ensimmäinen päävaiheemme oli yrittää kääriä päämme avoimen kehyksen ympärille piirtobottiimme. Tämä on epätyypillinen kokoonpano, ja halusimme nähdä, mitä hyötyä tästä suunnittelusta oli.

Toiseksi tiesimme, että tämän prototyypin rakentaminen osoittautuu hyödylliseksi vain meille itsellemme. Suunnittelumme ja suunnitelmanamme oli siirtää viimeinen runko metalliksi ja saada arduinon avulla asema Myo -kaistalle rakennetusta kiihtyvyysmittarista ja gyroskoopista. Nämä tiedot lähetetään sitten moottoreille ja toistetaan käyttäjän liike. Tiesimme, että tämä tekisi toisen vaiheemme kolmeksi pääpiirteeksi:

  1. ohjelmointi Myosta moottoreihin Arduinon kautta
  2. sähköisen suunnittelun avulla datamme voidaan muuttaa liikkeeksi
  3. mekaanisella suunnittelulla luoda kohtuullisen kokoinen runko, joka helpottaa liikettämme

Jokainen tiimimme jäsen tunsi olonsa mukavaksi ainutlaatuisen osan suunnitteluprosessissamme, joten päätimme jakaa työmme jokaisen henkilön kesken. Pidimme myös blogia koko suunnitteluprosessimme aikana seurataksemme päivittäistä ajattelua, toisin kuin globaalimpi ilme.

Vaihe 1: Mitä me suunnittelimme

Image
Image

Tavoitteenamme oli yhdistää nämä kaksi tuotetta tavalla, jota emme ole aiemmin nähneet käytettynä. Päätimme tehdä live -viestin Myo -käsivarsinauhamme ja oman versioni välillä Evil Mad Scientistin AxiDrawin innoittamasta mallista.

Vaihe 2: Prototyyppien ainesosaluettelo

2 2 x 4 puulevyä 1 Hihnan tai ketjun mittaus> = 65”4 Puukynnet 3 Hammaspyörät, jotka sopivat hihnaan tai ketjuun 4 3 x 8 vex rei'itetty levy 30 ⅜” Kumivälikkeet 8 1”halkaisijaltaan aluslevyt 1 1” puinen tappi 1 'pitkä 8 Vex -ruuvit 1 "8 ½" Vex -ruuvit 8 2 "Vex -ruuvit 8 ¼" Kumiset välikappaleet 48 Vex -mutterit 1 Pieni vetoketju

Vaihe 3: [Prototyyppi] Puunkäsittely aseistamme ja kuljetusvaunumme sisäpuolelta

[Prototyyppi] Puunkäsittely aseistamme ja kuljetusvaunumme sisäpuolelta
[Prototyyppi] Puunkäsittely aseistamme ja kuljetusvaunumme sisäpuolelta

Otimme kaksi 2x4: ää ja leikkasimme ne yhtä pitkiksi (33 ¼ )

Pöytäsahalla teimme loven levyjen kapeaa osaa pitkin ¼”syvältä ja ⅛” leveältä keskeltä

Leikkaa tappi 4 2 tuuman palasiksi ja poraa tapin keskelle reikä, jonka halkaisija on noin ¼”porakoneella

Vaihe 4: [Prototyyppi] Kuljetuksemme valmistaminen

[Prototyyppi] Kuljetuksemme tekeminen
[Prototyyppi] Kuljetuksemme tekeminen
[Prototyyppi] Kuljetuksemme tekeminen
[Prototyyppi] Kuljetuksemme tekeminen
[Prototyyppi] Kuljetuksemme tekeminen
[Prototyyppi] Kuljetuksemme tekeminen

Ihannetapauksessa käytämme kahta 7x7 kappaletta kuohkeaa rei'itettyä terästä, mutta meillä oli käytettävissä vain 2x7 nauhaa, joten ruuvimme ne yhteen X -kokoonpanossa

Pinoa ⅜”kumiset välikappaleet ja kiinnitä vex -levyjen kulmat toisiinsa

Kiinnitä puiset vaarnat löysästi kuvan 1 mukaisesti niin, että ne pyörivät vapaasti ja niiden välissä on noin 2 tuumaa tilaa. Käytä kuvaa nähdäksesi, mihin hammaspyörät tulisi sijoittaa tässä vaiheessa, käytimme aluslevyjä, mutta huomasimme myöhemmin, että pienet muoviset hammaspyörät toimivat paremmin.

Kiinnitä aluslevyt ½”kuusioruuveilla, ¼” kumivälikkeillä ja halkaisijaltaan 1 tuuman aluslevyillä korotettuun asentoon kuvan 1 mukaisesti (käytimme vihreitä muovivaihteita, koska emme löytäneet oikeita aluslevyjä) ja varmista, että aluslevyt pystyvät pyörii helposti ja mahtuu levyn loviin.

Vaihe 5: [Prototyyppi] Yhdistä kaikki

[Prototyyppi] Yhdistä kaikki
[Prototyyppi] Yhdistä kaikki
[Prototyyppi] Yhdistä kaikki
[Prototyyppi] Yhdistä kaikki
[Prototyyppi] Yhdistä kaikki
[Prototyyppi] Yhdistä kaikki
[Prototyyppi] Yhdistä kaikki
[Prototyyppi] Yhdistä kaikki

Aseta lauta pinnalle ja liu'uta kelkka keskelle niin, että aluslevyt pitävät kelkkaa laudan yläpuolella ja levyn kummallakin puolella naulat hammaspyörät alas niin, että ne pyörivät vapaasti. Naulaa hammaspyörä toisen laudan toiseen päähän ja varmista, että se on keskellä, ja liu'uta se kelkkaan kohtisuoraan ensimmäiseen lautaan nähden.

Nyt vyö on kierrettävä järjestelmän läpi kuvan osoittamalla tavalla, kiinnitä huomiota siihen, kuinka tapit ovat hihnan ulkopuolella ja ettei rungon keskellä ole mitään, mikä voisi estää hihnaa sen liikkuessa.

Nyt vyö on kiinnitettävä levyn puolelle, jossa ei ole hammaspyörää. Käytimme ylimääräistä naulaa ja vetoketjua kiinnittääksemme omamme. Käytetyllä menetelmällä ei kuitenkaan ole väliä, kunhan vyö on ankkuroitu kyseiseen kohtaan

Vaihe 6: [Prototyyppi] Valmis ja siirtymässä

Image
Image

Sen pitäisi olla, vedä vyö eri yhdistelmissä ja katso eri vaikutukset käsivarteen!

Vaihe 7: Mallimme kääntäminen valmiiksi suunnitteluksi

Käännämme mallimme valmiiksi muotoiluksi
Käännämme mallimme valmiiksi muotoiluksi
Käännämme mallimme valmiiksi muotoiluksi
Käännämme mallimme valmiiksi muotoiluksi

Kun saimme prototyyppimme valmiiksi, olimme innoissamme. Kukaan meistä ei ollut varma järjestelmän toiminnasta ennen kokoonpanoa. Mutta kun osat osuivat yhteen, huomasimme nopeasti, mistä pidimme ja miten parantaisimme sitä lopullisen suunnittelun luomisessa. Tärkeimmät valituksemme järjestelmän ratkaisemiseksi olivat:

  1. Asteikko

    1. Prototyyppimme oli massiivinen ja hankala, minkä vuoksi se oli taipuvainen kaatumaan käsivartemme reunalle
    2. Vaunu oli paljon suurempi kuin tarpeen, ja siinä oli paljon hukkaan heitettyä tilaa
    3. Vyömme (vex -säiliön kulutuspinta) oli paljon suurempi kuin tarpeen, mikä lisäsi ylimääräistä tilaa käsivarsien väliin
  2. Kitka
    1. Vex -kulutuspintamme eivät kulkeneet puisten vaarnarullien yli helposti kaikissa kohdissa
    2. Muovi puussa teki vaunun haluttomaksi liikkua monissa tapauksissa
  3. Moottoroiva

    Meidän piti tehdä järjestelmästä tehollinen

Nämä asiat huomioon ottaen teimme suunnitelmamme lopullisesta suunnittelusta. Halusimme, että vetolaatikkoa ohjataan Myolla arduinon kautta, ja halusimme tehdä kehyksestä alumiinisen ja pienemmän.

Tätä varten otimme prosenttiosuuden alkuperäisestä prototyypistämme ja ryhdyimme työskentelemään tästä koosta. Käyttämällä peltiä, joka työstettäisiin niin, että sen kanavat olisivat riittävän leveitä suojatun laakerin läpi, saisimme kevyen mutta vankan rakenteen, jolla olisi suurempi käyttötoleranssi.

Prototyyppimme ansiosta myös vain muutamassa minuutissa pystyimme määrittämään, kuinka moottorin pyöriminen vaikutti vetopotin päähän. Tämä sai meidät ymmärtämään, että ohjaussuunnittelumme olisi yksinkertaisempi kuin odotimme. Tarkemmin tarkastellessamme huomasimme, että moottorin liike on additiivinen! Tämä tarkoittaa, että jokaisella moottorilla on itsenäinen haluttu vaikutus liikkeeseemme, mutta kun yhdistämme ne yhteen, ne alkavat peruuttaa.

Esimerkiksi jos sitä pidetään koordinaattitasona, negatiivisella x -rajalla oleva moottori pyrkii aina vetämään laatikkomme toiseen ja neljänteen neljännekseen. Päinvastoin, moottori, joka makaa positiivisella x -rajalla, kääntää laatikon aina ensimmäiseen ja kolmanteen neljännekseen. Jos yhdistämme moottoriemme liikkeen, se peruuttaa konfliktin ohjaamisen osat ja vahvistaa sopivia osia.

Vaihe 8: Koodaus

Vaikka työskentelin melko paljon C: ssä muutama vuosi sitten, minulla ei ollut kokemusta luasta tai C ++: sta, ja tämä tarkoitti, että minun piti viettää huomattavan paljon aikaa asiakirjojen selaamiseen. Tiesin, että yleinen tehtävä, jonka yritän saavuttaa, oli saada käyttäjän asema aikavälein ja siirtää se sitten moottoreille. Päätin hajottaa tehtävän itselleni sulattamaan paremmin tarvitsemani osat.

1. Hae tietoja Myosta (lua)

Tiesin, että minun on keksittävä tapa kerätä tiedot Myolta. Tämä oli ensimmäinen osa haastetta, jonka halusin lähestyä. Tätä varten halusin saada käyttäjän kalibroimaan kankaan koon ennen piirtämisen aloittamista. Tämä antaisi minulle rajan työskennellä. Voisin sitten normalisoida ohjelman eri käyttäjien välillä yksinkertaisesti ottamalla tietyn prosenttiosuuden enimmäiskankaasta datapisteiksii. Päätin järjestää komentosarjan tapahtuman, joka suorittaisi getOrientation -tarkistuksen puolen sekunnin välein, koska se antaisi tarkastuksille mahdollisuuden koskaan suorittaa villihyppy, jonka sinun pitäisi arvata (esimerkiksi jos käyttäjä heilui villisti takaisin ja eteenpäin).

Tämä teki ensimmäisen esteeni, johon osuin. Löysin erittäin suuren lua -rajan ja että se ei antaisi minun odottaa ennen käsikirjoituksen jatkamista. Ainoa tapa suorittaa tämä toiminto oli joko keskeyttää suoritin (joka keskeyttäisi sen maailmanlaajuisesti, vaikka pitäisikin järjestelmän kelloa) tai käyttää käyttöjärjestelmäkohtaisia komentoja. Esimerkkikoodissani jätin suorittamani alkuperäisen käyttöjärjestelmän tarkistuksen (kommentoin). Tämä tapahtui sen jälkeen, kun oli tehty paljon tutkimusta luan dokumentaatiosta, ja se tehtiin tarkistamalla järjestelmäpolun muotoilu. Silloin päätin, että minun on tarkasteltava aiemmin julkaistujen hankkeiden asiakirjoja. Tajusin heti, kuinka paljon aikaa hukkasin, ja minut johdettiin heti alustamuuttujaan. Sen avulla pystyin toteuttamaan käyttöjärjestelmäkohtaisia odotuskäskyjä melkein heti, toisin kuin päivät, jotka kesti minun koota yhteen edellisen ratkaisuni.

Suunnitteluajankohtana sähkötyöt alkoivat, ja keskeytin tämän koodin puolen. Tarkoituksena oli oppia, kuinka moottorimme liitettiin arduinoon.

2. Työskentely Arduinon ympärillä (C ++)

Kun työ leipälautamme kanssa muuttui yhä monimutkaisemmaksi, opin, että arduino ei kykene monisäikeiseen. Tämä oli suuri jakoavain alkuperäisessä koodisuunnittelussa, ja kun luin lisää ohjaimemme rajoituksista, huomasin, että minun on ohjelmoitava, miten arduino vaihtaa näiden kahden välillä. Tästä tuli ponnistelujen keskipiste, kun määräaika lähestyi. Minun piti romuttaa suuria osia alkuperäisestä käsikirjoituksestani, koska ne oli suunniteltu kirjoittamaan tietoja tiedostoon synkronisesti tiedoston lukivan moottorin ohjaimen kanssa. Tämän tarkoituksena oli mahdollistaa jonotoiminto sen varmistamiseksi, että vaikka käyttäjä olisi laatikkomme edellä, se ei pilaisi projektia.

Päätin, että jonotoiminto tulisi tallentaa, ellei sitä toteuteta samalla tavalla kuin ennen. Tätä varten olen luonut matriisivektorin. Tämä antoi minulle mahdollisuuden pitää paitsi edellisen suunnitteluni henki suhteellisen ehjänä, myös se, että minun ei tarvinnut seurata sijaintiani tiedostossa lukemista tai kirjoittamista varten. Sen sijaan minun piti nyt vain lisätä uusi arvo vektoriini, jos käyttäjä liikkui (alustava testaus oli alle 1% kankaan koon erosta sekä x: ssä että y: ssä viimeisestä tallennetusta sijainnista, joten tietoja ei tallennettu). Voisin sitten ottaa vektorini vanhimman arvon ja yhdellä iskulla lähettää sen moottorin ohjaimelle, kirjoittaa sen tiedostoomme ja poistaa sen sitten vektoristani. Tämä siivosi monet huolenaiheeni jatkuvan IO -virran käynnistämisestä.

Vaihe 9: Sähkö

Image
Image
Sähköinen
Sähköinen

Vaikka olen aiemmin käynyt elektroniikkatunteja ja työskennellyt kohtuullisen paljon arduinoiden kanssa. En ole koskaan syventynyt siihen, että arduino saisi tietoja ulkopuolisesta lähteestä (myo), minulla on vain kokemusta tietojen lähettämisestä arduinon kautta. Kuitenkin jouduin kytkemään moottorit vetolaitteeseemme ja työskentelemään koodin kanssa, jotta he voivat työskennellä myo -koodin kanssa.

Materiaalit joita käytin:

2 x askelmoottorit

1 x leipälauta

1 x Arduino (Uno)

2 x ohjain IC L293DE

40 x hyppyjohdinta

2 x tuulettimet

1. Askelmoottorien ja tuulettimen liittäminen leipälevyyn

Kytkentäkaavion mukaisesti voimme kytkeä yhden askelmoottorin leipälevyn kuljettajaan. Sitten, noudattaen samaa kaaviota, joka koskee toista ohjainta ja moottoria, hyppyjohtimet on kuitenkin kytkettävä eri arduinon nastoihin (koska ensimmäinen moottori vie tilaa 4 muulle).

Varoitus/vinkki:

Ajurit ovat hyvin pieniä ja nastat ovat hyvin lähellä toisiaan. Olisi viisasta erottaa kaksi ohjainta, jotta johdot eivät mene sekaisin.

Seuraavaksi puhaltimien johdotus. Tämä on melko yksinkertaista, tuulettimet, jotka minulla oli käytettävissä, olivat perusprosessorituulettimia, joilla on positiivinen ja pohja. Liitä nämä kaksi leipälevyn +/- nastoihin ja kallista kukin kuljettajaa kohti. (Huomasimme, että koska askelmoottorit saavat tietoa ja komentoja pitkän ajanjakson aikana, ohjaimet yleensä ylikuumenevat ja haisevat. Tuulettimen lisääminen sen jäähdyttämiseksi korjasi tämän ongelman).

2. Arduino -koodi

Tämä on helppo osa!

Avaa Arduino IDE, siirry "Tiedosto" -välilehteen ja pudota sitten "esimerkki" -välilehdelle, joka pudotetaan vielä pidemmälle ja näyttää "askel" -välilehden. Sitten haluat avata "Stepper_OneStepAtATime"

Tämä lataa esimerkkikoodin, joka on lähes plug-and-play arduino/moottorin johdotukseen. Meidän on tehtävä pieniä säätöjä, koska käytämme kahta moottoria, jotka näytän alla. Sinun on ehkä myös tehtävä pieniä säätöjä sen mukaan, mitä tappeja olet päättänyt käyttää, koska Arduino IDE on oletusarvoisesti nastat 8-11.

Koodi, jota olen käyttänyt kahden moottorin siirtämiseen "synkronoituna", on alla:

//#sisältää

const int stepsPerRevolution = 200;

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

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

int stepCount = 0;

void setup () {// alustetaan sarjaportti: Serial.begin (9600); }

void loop () {

myStepper1.vaihe (1);

Serial.print ("steps:");

Serial.println (stepCount);

stepCount ++;

viive (0,5);

myStepper2.vaihe (1); viive (0,5); }

3. Mahdolliset ongelmat

Ongelmat, joihin törmäsin tämän prosessin aikana, eivät käyttäneet oikeaa koodiesimerkkiä, käyttivät huonoa hyppyjohtoa ja käyttivät väärää ohjainpiiriä.

Varmista, että käyttämäsi ohjain pystyy hallitsemaan moottoria

Tarkista sarjanumero ja tarkista sen tekniset tiedot

Minulla oli ongelma, että minulla oli kuollut hyppyjohdin, mikä sai moottorini pyörimään kummallisesti

Jouduin tarkistamaan kaikki johdot yleismittarilla

Tarkista aina koodistasi, ettei siinä ole pieniä virheitä, kuten puuttuva loppu”;” komento

Vaihe 10: Mekaaninen

Mekaaninen
Mekaaninen
Mekaaninen
Mekaaninen
Mekaaninen
Mekaaninen
Mekaaninen
Mekaaninen

1. Materiaali

Varsien koko tuotantomallin osalta on suositeltavaa, että ne on valmistettu vahvasta mutta kevyestä materiaalista, ja mielestämme alumiini sopi täydellisesti.

Käytimme 032 -kokoisia alumiinilevyjä, jotka oli leikattu 9,125 x 17,5 tuuman mittaan, ja jäljitettiin kuvio edellisessä vaiheessa esitetystä piirustuksesta.

2. Valmistus

Käyttämällä vasaraa (sinistä konetta) lisäsimme helmat, jotka osoittavat vastakkaisiin suuntiin, jotta kun kappale murtuu ja taittuu, kaksi helmaa yhdistyvät muodostaen yhden kokonaisen kappaleen.

Suurissa mutkissa käytimme tennismithiä, koska se on erittäin tarkka.

Nyt pienempiin mutkiin haluat käyttää konetta, jolla on pienempi jalka, tässä tulee kone, kuten roto-die, sisään. Pienemmän jalan ansiosta se mahdollistaa pienemmät tauot, valitettavasti Käytössämme oleva roto-muotti oli vielä liian suuri kiskollemme ja se oli epämuodostunut.

** Vaihtoehtoisesti, jos sinulla ei ole oikeita laitteita tai työkaluja, voit korvata sen. **

Meidän tapauksessamme leikkasimme käsivartemme alumiinista valmistetuista aurinkopaneelikiskoista plasmaleikkurilla ja jauhatimme päät sileiksi ja ruuvimme ne takaisin taaksepäin kaksipuolisen kiskojärjestelmän luomiseksi. Ihannetapauksessa haluaisimme hitsata kiskot yhteen, mutta ilman pääsyä hitsausasemalle kiinnitimme kiskot yhteen ja porattiin läpi ja pultattiin yhteen. Mutta jos tämä reitti valitaan, on erityisen varovaista käyttää lukkomutteria ja aluslevyä sen varmistamiseksi, että kappaleessa on mahdollisimman vähän taipumista.

3. Vyö

Vyöissä käytimme vanhoja 3D -tulostinhihnoja, jotka pystyimme pelastamaan.

Hihnat eivät olleet aluksi riittävän pitkiä, joten käyttämällä kutistemuoviputkea yhdistimme kaksi kappaletta riittävän pitkäksi.

Vihreät hammaspyörät ja puiset vaarnat korvattiin levylaakereilla, joissa oli erittäin leveät aluslevyt, jotta vyö ei liukunut paikaltaan.

4. Kuljetus

Ja lopuksi vaunu valmistettiin 5 "x 5" -levystä, 032 -alumiinista, ja reikiä porattiin, johon vastaavat ruuvit ja aluslevyt on tarkoitettu. Etäisyys vaihtelee sen mukaan, kuinka leveä kisko on ja kuinka paljon tilaa aluslevyilläsi on.

Vaihe 11: Pohdintoja

Valitettavasti projektimme kaikki puolet osuivat aikojen suureen esteeseen, emmekä pystyneet saamaan suunnittelua valmiiksi tavoitepäivämäärään mennessä. Jokainen tiimimme jäsen päätyi ainakin jossain määrin yhteistyöhön suunnittelumme kaikilla muilla osa -alueilla, mikä johti jonkin verran oppimiskäyrän aikaan. Tämä yhdistettynä haluun suunnitella tuote mahdollisimman pienillä ulkopuolisilla resursseilla (kuten me kaikki halusimme luoda osamme alusta alkaen) johti suureen määrään vanteita.

Kaikki, jotka työskentelivät projektin parissa, oppivat lisää hankkeen muista näkökohdista. Ohjelmiston saaminen tekemään tietty toiminto on yksi asia, sitten ohjelmiston toimiminen yhdessä laitteiston kanssa on toinen asia. Sanoisin, että on tärkeää, että jokainen, joka työskentelee tämän projektin koodausasioiden parissa, on yhtä tuttu kuin projektikooderimme.

Kaiken kaikkiaan emme pystyneet saavuttamaan täsmälleen sitä, mitä halusimme. Koen kuitenkin, että olimme oikealla tiellä ja löysimme ja opimme kaikki uudet käsitteet, joita voimme soveltaa tuleviin projekteihin.

Suositeltava: