Sisällysluettelo:

UCL - sulautettu - valitse ja aseta: 4 vaihetta
UCL - sulautettu - valitse ja aseta: 4 vaihetta

Video: UCL - sulautettu - valitse ja aseta: 4 vaihetta

Video: UCL - sulautettu - valitse ja aseta: 4 vaihetta
Video: CRISTIANO RONALDO: ALL #UCL GOALS! 2024, Heinäkuu
Anonim
UCL - sulautettu - Valitse ja sijoita
UCL - sulautettu - Valitse ja sijoita

Tämä opettavainen opetus menee läpi, miten 2D -valinta- ja sijoitusyksikkö tehdään ja miten se koodataan.

Vaihe 1: Compunets

Compunets
Compunets

1x Adrio Mega

2x askelmoottorit (käytimme JLB-askelmoottoria, malli 17H1352-P4130)

2x askelmoottorikäytön ohjainkorttimoduuli L298N Dual H Bridge DC Arduinolle

1x servomoottori (meillä ei ole täplää tässä)

3x 10k ohmin vastukset

2x Nylon -terät

1x 12V virtalähde

Vähän puuta kehykseen

Johdot

Vaihe 2: Rakentaminen

Rakentaminen
Rakentaminen
Rakentaminen
Rakentaminen
Rakentaminen
Rakentaminen

Ensimmäinen asia rakentamisen aikana oli päättää poiminta- ja sijoituskoneen koosta ja muodosta

Ensin rakennamme perusmuotoisen puun. Rakensimme poiminta- ja sijoituskehyksemme 50 x 25 x 30 cm. Kaikki paitsi runko, silta ja nostovarsi valmistettiin laserleikkurilla.

Tässä on linkki kaikkiin tiedostoihin

Sitten halusimme hihnapyöräjärjestelmään. Tässä menimme kahdella 50 mm renkaalla ja yhdellä 20 mm renkaalla. Sitten laitamme paracordin 20 mm: n viereen liimalla. Tämän jälkeen puristimme kaksi 50 mm rengasta 20 mm renkaan kummallakin puolella.

20 mm

50 mm

Sitten meidän on suunniteltava liukuohjain käsivarteen. Täällä teimme kaksi sivua ja yhden takalevyn.

Joka sitten liimattiin U -muotoon. Sitten liitettiin se siltaan.

Sivulautanen

Takalevy

Nyt kun osat käsivarren siirtämiseksi ylös ja alas on tehty. Meidän on siirrettävä sitä edestakaisin.

Tätä suunnitellessamme varmistimme, että hampaat ovat kohdakkain toistensa kanssa. Joten molemmat kohteet luotiin samaan projektipaikkaan.

Vaihe 3: Koodi

Koodi
Koodi
Koodi
Koodi
Koodi
Koodi

Ohjelmointi on melko yksinkertaista ja koostuu 5 osasta

  1. Sisältää kirjastot ja määrittää muuttujat sisäiseen ja IO -käyttöön
  2. Lataa tulot Ramiin
  3. Sekvens, valitse haluamasi liike.
  4. Askel-/servoasennon säätö
  5. Lähtö maailmalle

Selitämme laajalti jokaisen osan, mutta muista, että tämä on vain yksi monista ratkaisuista.

1: Ennen tyhjiön asetusta sisällytimme 2 kirjastoa, joita tarvitsemme tähän projektiin. Stepper ja servo. Mukana tulevien kirjastojen käyttö säästää sinua oppimasta kaikkia askel- ja servomoottoreiden yksityiskohtia.

#sisältää

#sisältää

const int stepsPerRevolution = 200; // muuta tämä moottorisi kierrosta kohden

// alustaa askelkirjasto nastat 8-11:

Stepper XStepper (stepsPerRevolution, 22, 23, 24, 25); Stepper YStepper (stepsPerRevolution, 28, 29, 30, 31); Servo Griper; // luoda servo -objekti servoa ohjaamaan

Gripperin on liityttävä tyhjään asetukseen

void setup () {// alustetaan sarjaportti: Serial.begin (9600); Griper.attach (9); // kiinnittää nastan 9 servon servo -objektiin

Loput tästä osasta ovat vain muuttujien ja vakioiden asetuksia.

2: Ensimmäinen asia Void Loopissa on ladata kaikki käytetyt tulot muuttujaan. Tämä tehdään kahdesta syystä. Ensimmäinen syy on rajoittaa suorittimen raskaita tehtäviä tulon lukemisessa. Toinen syy, joka on tärkein ja varmistaa, että jos tuloa käytetään useamman kerran, sen arvo on sama koko skannauksen ajan. Tämä tekee johdonmukaisen koodin kirjoittamisesta helpompaa. Tämä on hyvin yleinen käytäntö PLC -ohjelmoinnissa, mutta se koskee myös sulautettua ohjelmointia.

// ------------------------- Syöttö RAM-muistiin -------------------- Xend = digitalRead (34); Yend = digitalRead (35); Ena = digitalRead (36);

3: Koodin sekvens -osassa teimme juuri sekvensin Switch- ja case -komennoilla. Sekvens -osa antaa vain signaaleja koodin sijainninhallintaosaan. Tämä osa voidaan helposti räätälöidä sovellukseesi tai käyttää sellaisenaan.

4: Servo Liberi ohjaa vain servon asentoa ja if -lauseke tarttujasta auki ja kiinni.

Stepper Control on hieman hankalampi. Toiminto vertaa asetuspistettä (asentoa, johon haluat käsivarren siirtyvän) ja nykyistä asentoa. Jos nykyinen sijainti on rakastaja, toiminto lisää asemaa ja pyytää Stepper liberi -funktiota ottamaan positiivisen askeleen. Päinvastainen pätee korkeasta asennosta. jos sijainti on sama kuin asetuspiste, XinPos -bitti täytetään ja askel pysähtyy.

// SP -valvonta X

if (XstepCountXsp eikä Home) {

XstepCount = XstepCount-1; Xstep = -1; XinPos = 0; } jos (XstepCount == Xsp) {Xstep = 0; XinPos = 1; }

5: Lisää koodin loppu, jota moottoreita ohjataan liberi -toiminnoilla.

// -------------------- Lähtö ---------------------- // askel yksi askel: XStepper.step (Xstep); // vaihe yksi vaihe: YStepper.step (Ystep);

Griper.write (GripSp);

Vaihe 4: Tekijä

casp6099 - Casper Hartung Christensen

rasm616d - Rasmus Hansen

Suositeltava: