Cuprins:

UCL - Încorporat - Alegeți și plasați: 4 pași
UCL - Încorporat - Alegeți și plasați: 4 pași

Video: UCL - Încorporat - Alegeți și plasați: 4 pași

Video: UCL - Încorporat - Alegeți și plasați: 4 pași
Video: Fertilizarea castraveților pentru MEGA RECOLTE/ Fertilizarea castraveților cu...PÂINE 2024, Iulie
Anonim
UCL - Încorporat - Alegeți și plasați
UCL - Încorporat - Alegeți și plasați

Această instrucțiune va merge totuși pe modul în care este făcută o unitate 2D pick and place și cum să o codați.

Pasul 1: Compunete

Compunete
Compunete

1x Adrio Mega

2 motoare pas cu pas (am folosit motor pas cu pas JLB, model 17H1352-P4130)

2x Modulul plăcii controlerului de acționare a motorului pas cu pas L298N Dual H Bridge DC pentru Arduino

1x servomotor (nu avem speck pe acesta)

3x rezistențe de 10k ohm

2x bumbacuri din nailon

1x sursa de alimentare 12v

Niște lemn pentru cadru

Fire

Pasul 2: Construcție

Constructie
Constructie
Constructie
Constructie
Constructie
Constructie

Primul lucru în timpul construcției a fost să decidă dimensiunea și forma mashine-ului

Mai întâi construim lemnul de bază. Ne-am construit cadrul de alegere și plasare de 50cm pe 25cm pe 30cm. Totul, cu excepția cadrului, podului și brațului de ridicare, a fost fabricat cu un laser.

Iată un link către toate fișierele

Apoi ne-am dorit sistemul de scripete. Aici am mers cu două inele de 50 mm și un inel de 20 mm. Apoi punem un paracord lângă 20mm cu niște lipici. După care am strâns cele două inele de 50 mm de ambele părți ale inelului de 20 mm.

20mm

50mm

Apoi, trebuie să proiectăm un ghidaj pentru braț. Aici am făcut două fețe și o placă din spate.

Care apoi a fost lipit sub formă de U. Apoi am conectat asta la pod.

Placă laterală

Placa din spate

Acum că piesele pentru mișcarea brațului în sus și în jos sunt terminate. Trebuie să-l mutăm înainte și înapoi.

La proiectarea acestui lucru ne-am asigurat că dinții se aliniază unul cu celălalt. Deci ambele elemente au fost create în același loc al proiectului.

Pasul 3: Cod

Cod
Cod
Cod
Cod
Cod
Cod

Programarea este destul de simplă și constă din 5 părți

  1. Includerea bibliotecilor și configurarea variabilelor pentru utilizare internă și IO
  2. Încărcați intrările pe Ram
  3. Sekvens, alegând mișcarea dorită.
  4. Controlul poziției pas cu pas / servo
  5. Rezultate pentru lume

Vom explica, în linii mari, fiecare parte, dar amintiți-vă că aceasta este doar una dintre multele soluții.

1: Înainte de configurarea nulă, am inclus cele 2 biblioteci de care avem nevoie pentru acest proiect. Stepper și Servo. Folosind bibliotecile incluse, vă scutește de la învățarea fiecărui detaliu despre motoarele pas cu pas și servo.

#include

#include

const int stepsPerRevolution = 200; // modificați acest lucru pentru a se potrivi cu numărul de pași pe rotație pentru motorul dvs.

// inițializați biblioteca pas cu pas pe pinii 8 până la 11:

Stepper XS Stepper (stepsPerRevolution, 22, 23, 24, 25); Stepper YStepper (stepsPerRevolution, 28, 29, 30, 31); Servo Griper; // creați un obiect servo pentru a controla un servo

Gripper trebuie să se atașeze în configurarea nulă

void setup () {// inițializează portul serial: Serial.begin (9600); Griper.attach (9); // atașează servo pe pinul 9 la obiectul servo

Restul acestei secțiuni este doar configurarea variabilelor și a lui Constant.

2: Primul lucru din bucla Void este să încărcați toate intrările utilizate într-o variabilă. Acest lucru se face din două motive. Primul motiv este limitarea sarcinilor grele ale procesorului de citire a unei intrări. Al doilea motiv, care este cel mai important și mai important, pentru a vă asigura că, dacă o intrare este utilizată de mai multe ori, va avea aceeași valoare pe parcursul întregii scanări. Acest lucru facilitează scrierea unui cod consistent. Aceasta este o practică foarte obișnuită în programarea PLC, dar se aplică și programării încorporate.

// ------------------------- Introducere în RAM -------------------- Xend = digitalRead (34); Yend = digitalRead (35); Ena = digitalRead (36);

3: În partea sekvens a codului, tocmai am făcut un sekvens cu comenzile Switch și case. Partea urmens dă doar semnale părții de control poziție a codului. Această parte poate fi personalizată cu ușurință în aplicația dvs. sau utilizată așa cum este.

4: Poziția servo este doar controlată de servo liberi și o declarație if pentru priză deschisă și închisă.

Controlul Stepper este puțin mai complicat. Funcția compară setpoint-ul (poziția în care doriți să meargă brațul) și poziția curentă. Dacă poziția actuală este îndrăgostită, funcția se adaugă la poziție și cere funcției Stepper liberi să facă un pas pozitiv. Opusul este valabil pentru o poziție de mare. dacă poziția este aceeași cu setpoint-ul, un bit XinPos este așezat și stepper-ul se oprește.

// SP controal X

if (XstepCountXsp și nu Acasă) {

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

5: Adăugați sfârșitul codului, motoarele sunt controlate cu funcțiile liberi.

// -------------------- Ieșire ---------------------- // pasul cu un pas: XStepper.step (Xstep); // pas un pas: YStepper.step (Ystep);

Griper.write (GripSp);

Pasul 4: Realizat de

casp6099 - Casper Hartung Christensen

rasm616d - Rasmus Hansen

Recomandat: