Innholdsfortegnelse:

UCL - Innebygd - Velg og sted: 4 trinn
UCL - Innebygd - Velg og sted: 4 trinn

Video: UCL - Innebygd - Velg og sted: 4 trinn

Video: UCL - Innebygd - Velg og sted: 4 trinn
Video: СТРАННЫЕ НОВОСТИ НЕДЕЛИ - 55 | Таинственный | Вселенная | НЛО | Паранормальный 2024, Juli
Anonim
UCL - Innebygd - Velg og sted
UCL - Innebygd - Velg og sted

Denne instruksen vil gå om hvordan en 2D plukk -og -sted -enhet er laget og hvordan du koder den.

Trinn 1: Komponenter

Datamaskiner
Datamaskiner

1x Adrio Mega

2x trinnmotorer (vi brukte JLB Stepper Motor, modell 17H1352-P4130)

2x Stepper Motor Drive Controller Board Module L298N Dual H Bridge DC For Arduino

1x servomotor (vi har ikke flekken på denne)

3x 10k ohm motstander

2x Nylon hvaler

1x 12v strømforsyning

Litt tre til rammen

Ledninger

Trinn 2: Konstruksjon

Konstruksjon
Konstruksjon
Konstruksjon
Konstruksjon
Konstruksjon
Konstruksjon

Det første under konstruksjonsflaten var å bestemme størrelsen og formen på pick and place -maskinen

Først bygger vi grunnformen tre. Vi bygde vår pick and place -ramme 50 cm x 25 cm x 30 cm. Alt bortsett fra rammen, broen og løftearmen, ble produsert med laserskjærer.

Her er en lenke til alle filene

Så ville vi til trinsesystemet. Her gikk vi med to 50 mm ringer og en 20 mm ring. Så la vi et parakord ved siden av 20 mm med litt lim. Deretter klemte vi de to 50 mm ringene på hver side av 20 mm ringen.

20 mm

50 mm

Deretter må vi designe en glideleder til armen. Her lagde vi to sider og en bakplate.

Som deretter ble limt i en U -form. Så koblet vi det til broen.

Sideplate

Bakplate

Nå som delene for å flytte armen opp og ned er ferdige. Vi må flytte den frem og tilbake.

Ved utformingen av dette sørget vi for at tennene er i tråd med hverandre. Så begge elementene ble opprettet på samme prosjektsted.

Trinn 3: Kode

Kode
Kode
Kode
Kode
Kode
Kode

Programmeringen er ganske enkel og består av 5 deler

  1. Inkludering av biblioteker og oppsett av variabler for intern og IO -bruk
  2. Last innspill til Ram
  3. Sekvens, velg bevegelsen du vil ha.
  4. Stepper/servoposisjonskontroll
  5. Utgang til verden

Vi vil i store trekk forklare hver del, men husk at dette bare er en av mange løsninger.

1: Før det ugyldige oppsettet inkluderte vi de 2 bibliotekene vi trenger for dette prosjektet. Stepper og servo. Ved å bruke de medfølgende bibliotekene, sparer du deg for å lære alle detaljer om trinn- og servomotorer.

#inkludere

#inkludere

const int stepsPerRevolution = 200; // endre dette for å passe til antall trinn per omdreining for motoren din

// initialiser stepper -biblioteket på pinne 8 til 11:

Stepper XStepper (stepsPerRevolution, 22, 23, 24, 25); Stepper YStepper (stepsPerRevolution, 28, 29, 30, 31); Servo Griper; // lage servoobjekt for å kontrollere en servo

griperen må festes i det ugyldige oppsettet

void setup () {// initialize the serial port: Serial.begin (9600); Griper. Fest (9); // fester servoen på pinne 9 til servoobjektet

Resten av denne delen er bare oppsett av Variable's og Constant's.

2: Det første i Void Loop er å laste alle brukte innganger til en variabel. Dette er gjort av to grunner. Den første grunnen er å begrense CPU -tunge oppgaver med å lese en inngang. Den andre grunnen, som er den mest viktige, for å sikre at hvis en inngang brukes mer enn én gang, vil den ha samme verdi gjennom hele skanningen. Dette gjør det enklere å skrive konsekvent kode. Dette er en veldig vanlig praksis innen PLS -programmering, men det gjelder også for innebygd programmering.

// ------------------------- Inngang til RAM -------------------- Xend = digitalRead (34); Yend = digitalRead (35); Ena = digitalRead (36);

3: I sekvensdelen av koden lagde vi nettopp en sekvens med Switch og case -kommandoer. Sekvens -delen gir bare signaler til posisjonskontrolldelen av koden. Denne delen kan enkelt tilpasses søknaden din eller brukes som den er.

4: Servoens posisjon kontrolleres bare av servo liberi, og en if -setning for griperen åpen og lukket.

Stepper Control er litt mer vanskelig. Funksjonen sammenligner settpunktet (posisjonen du vil at armen skal gå til) og gjeldende posisjon. Hvis den nåværende posisjonen er kjæreste, legger funksjonen til posisjonen og ber Stepper liberi -funksjonen om å ta et positivt skritt. Det motsatte er sant for en høy stilling. Hvis posisjonen er den samme som settpunktet, blir en XinPos -bit satt høy, og trinnet stopper.

// SP controal X

if (XstepCountXsp og ikke Home) {

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

5: Legg til slutten av koden motorene styres med liberi -funksjonene.

// -------------------- Output ---------------------- // trinn ett trinn: XStepper.step (Xstep); // trinn ett trinn: YStepper.step (Ystep);

Griper.write (GripSp);

Trinn 4: Laget av

casp6099 - Casper Hartung Christensen

rasm616d - Rasmus Hansen

Anbefalt: