Indholdsfortegnelse:

UCL - Embedded - Vælg og sted: 4 trin
UCL - Embedded - Vælg og sted: 4 trin

Video: UCL - Embedded - Vælg og sted: 4 trin

Video: UCL - Embedded - Vælg og sted: 4 trin
Video: По следам древней цивилизации? 🗿 Что, если мы ошиблись в своем прошлом? 2024, December
Anonim
UCL - Embedded - Pick and Place
UCL - Embedded - Pick and Place

Denne instruktive vil gå, hvordan en 2D pick and place -enhed er lavet, og hvordan man koder den.

Trin 1: Compunets

Computere
Computere

1x Adrio Mega

2x stepper motorer (vi brugte JLB Stepper Motor, model 17H1352-P4130)

2x Stepper Motor Drive Controller Board Modul L298N Dual H Bridge DC Til Arduino

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

3x 10k ohm modstande

2x Nylon hvaler

1x 12v strømforsyning

Noget træ til stellet

Ledninger

Trin 2: Konstruktion

Konstruktion
Konstruktion
Konstruktion
Konstruktion
Konstruktion
Konstruktion

Den første ting under konstruktionsfladen var at bestemme størrelsen og formen på pick and place -maskine

Først bygger vi træet i den grundlæggende form. Vi byggede vores pick and place -ramme 50 cm x 25 cm x 30 cm. Alt undtagen rammen, broen og løftearmen blev fremstillet med en laserskærer.

Her er et link til alle filerne

Så ville vi til remskive -systemet. Her gik vi med to 50 mm ringe og en 20 mm ring. Derefter lagde vi en paracord ved siden af de 20 mm med lidt lim. Hvorefter vi klemte de to 50 mm ringe på hver side af 20 mm ringen.

20 mm

50 mm

Derefter skal vi designe en diasguide til armen. Her lavede vi to sider og en bagplade.

Som derefter blev limet i en U -form. Så sluttede vi det til broen.

Sideplade

Bagplade

Nu hvor delene til at flytte armen op og ned er færdige. Vi skal flytte det frem og tilbage.

Da vi designede dette, sørgede vi for, at tænderne flugter med hinanden. Så begge elementer blev oprettet på det samme projektsted.

Trin 3: Kode

Kode
Kode
Kode
Kode
Kode
Kode

Programmeringen er ret enkel og består af 5 dele

  1. Inkludering af biblioteker og opsætning af variabler til intern og IO -brug
  2. Indlæs input til Ram
  3. Sekvens, vælg den bevægelse, du ønsker.
  4. Stepper/servopositionskontrol
  5. Output til verden

Vi vil i store streger forklare hver del, men husk, at dette kun er en af mange løsninger.

1: Inden den ugyldige opsætning inkluderede vi de 2 biblioteker, vi har brug for til dette projekt. Stepper og servo. Ved at bruge de medfølgende biblioteker sparer du dig for at lære alle detaljer om trin- og servomotorer.

#omfatte

#omfatte

const int stepsPerRevolution = 200; // ændre dette, så det passer til antallet af trin pr. omdrejning for din motor

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

Stepper XStepper (stepsPerRevolution, 22, 23, 24, 25); Stepper YStepper (stepsPerRevolution, 28, 29, 30, 31); Servo Griper; // opret et servoobjekt for at styre en servo

griberen skal vedhæftes i tomrumsopsætningen

void setup () {// initialiser den serielle port: Serial.begin (9600); Griper. Fastgør (9); // fastgør servoen på pin 9 til servoobjektet

Resten af dette afsnit er bare opsætning af Variable's og Constant's.

2: Den første ting i Void Loop er at indlæse alle de brugte input til en variabel. Dette gøres af to grunde. Den første grund er at begrænse CPU -tunge opgaver med at læse et input. Den anden grund, som er den mest vigtige, for at sikre, at hvis et input bruges mere end én gang, vil det have den samme værdi under hele scanningen. Dette gør det lettere at skrive konsekvent kode. Dette er en meget almindelig praksis inden for PLC -programmering, men det gælder også for integreret programmering.

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

3: I sekvensdelen af koden lavede vi lige en sekvens med Switch og case -kommandoer. Sekvensdelen giver bare signaler til positionens kontroldel i koden. Denne del kan let tilpasses til din applikation eller bruges som den er.

4: Servoens position styres lige af servo liberi, og en if -erklæring for griber åben og lukket.

Stepper Control er lidt mere vanskelig. Funktionen sammenligner setpunktet (den position, du vil have armen til) og den aktuelle position. Hvis den aktuelle position er elsker, tilføjer funktionen til positionen og beder Stepper liberi -funktionen om at tage et positivt skridt. Det modsatte er tilfældet for en for høj position. hvis positionen er den samme som setpunktet, sættes en XinPos -bit høj, og stepper stopper.

// SP controal X

hvis (XstepCountXsp og ikke Home) {

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

5: Tilføj slutningen af koden, motorerne styres med liberi -funktionerne.

// -------------------- Output ---------------------- // trin et trin: XStepper.step (Xstep); // trin et trin: YStepper.step (Ystep);

Griper.write (GripSp);

Trin 4: Lavet af

casp6099 - Casper Hartung Christensen

rasm616d - Rasmus Hansen

Anbefalede: