Sadržaj:

UCL - Ugrađeno - Odabir i mjesto: 4 koraka
UCL - Ugrađeno - Odabir i mjesto: 4 koraka

Video: UCL - Ugrađeno - Odabir i mjesto: 4 koraka

Video: UCL - Ugrađeno - Odabir i mjesto: 4 koraka
Video: Электрика в квартире своими руками. Финал. Переделка хрущевки от А до Я. #11 2024, Juli
Anonim
UCL - Ugrađeno - Odabir i mjesto
UCL - Ugrađeno - Odabir i mjesto

Ovo uputstvo će proći kroz način na koji je napravljena 2D jedinica za odabir i mjesto i kako je kodirati.

Korak 1: Računari

Compunets
Compunets

1x Adrio Mega

2x koračni motori (koristili smo JLB koračni motor, model 17H1352-P4130)

Modul ploče s kontrolerima 2x koračnog motora L298N Dvostruki H most DC za Arduino

1x servo motor (na ovom nemamo mrlju)

3x 10k ohm otpornici

2x najlonske pločice

1x 12v napajanje

Malo drveta za okvir

Žice

Korak 2: Konstrukcija

Građevinarstvo
Građevinarstvo
Građevinarstvo
Građevinarstvo
Građevinarstvo
Građevinarstvo

Prva stvar tokom izgradnje bila je odlučiti se o veličini i obliku stroja za biranje i postavljanje

Prvo gradimo drvo osnovnog oblika. Izgradili smo okvir za odabir 50 cm x 25 cm x 30 cm. Sve osim okvira, mosta i ruke za podizanje, proizvedeno je laserskom rezačem.

Ovdje je veza do svih datoteka

Zatim smo htjeli sistem remenica. Ovdje smo otišli s dva prstena od 50 mm i jednim prstenom od 20 mm. Zatim smo stavili paracord pored 20 mm s malo ljepila. Nakon toga smo stisnuli dva prstena od 50 mm sa obje strane prstena od 20 mm.

20mm

50mm

Zatim moramo dizajnirati klizni vodič do ruke. Ovdje smo napravili dvije strane i jednu stražnju ploču.

Koja je zatim zalijepljena u U obliku. Zatim smo to povezali s mostom.

Bočna ploča

Zadnja ploča

Sada su gotovi dijelovi za pomicanje ruke gore -dolje. Moramo ga pomicati naprijed -nazad.

Prilikom dizajniranja ovoga pobrinuli smo se da se zubi poravnaju jedan s drugim. Dakle, obje stavke su stvorene na istom mjestu projekta.

Korak 3: Kodirajte

Kod
Kod
Kod
Kod
Kod
Kod

Programiranje je prilično jednostavno i sastoji se od 5 dijelova

  1. Uključivanje biblioteka i postavljanje varijabli za internu i IO upotrebu
  2. Učitajte ulaze u Ram
  3. Sekvens, odabirom pokreta koji želite.
  4. Stepper/servo kontrola položaja
  5. Izlaz u svijet

Objasnit ćemo svaki dio, ali zapamtite da je ovo samo jedno od mnogih rješenja.

1: Prije postavljanja praznine uključili smo 2 biblioteke koje su nam potrebne za ovaj projekt. Steper i servo. Korištenje priloženih biblioteka štedi vas od učenja svakog detalja o koračnim i servo motorima.

#include

#include

const int stepsPerRevolution = 200; // promijenite ovo tako da odgovara broju koraka po okretu za vaš motor

// inicijaliziramo stepper biblioteku na pinovima 8 do 11:

Stepper XStepper (stepsPerRevolution, 22, 23, 24, 25); Stepper YStepper (stepsPerRevolution, 28, 29, 30, 31); Servo Griper; // kreiranje servo objekta za upravljanje servo pogonom

hvataljku je potrebno spojiti u postavci void

void setup () {// inicijalizira serijski port: Serial.begin (9600); Griper.attach (9); // priključuje servo na pin 9 na servo objekt

Ostatak ovog odjeljka samo je postavljanje varijabli i Constant -a.

2: Prva stvar u Void Loopu je učitavanje svih korištenih ulaza u varijablu. To se radi iz dva razloga. Prvi razlog je ograničenje CPU -ovih teških zadataka čitanja ulaza. Drugi razlog, koji je najvažniji, je osigurati da će, ako se ulaz koristi više puta, imati istu vrijednost tokom čitavog skeniranja. Ovo olakšava pisanje dosljednog koda. Ovo je vrlo uobičajena praksa u PLC programiranju, ali se primjenjuje i na ugrađeno programiranje.

// ------------------------- Ulaz u RAM -------------------- Xend = digitalno čitanje (34); Da = digitalno čitanje (35); Ena = digitalRead (36);

3: U dijelu koda sekvens upravo smo napravili sekvens sa komandama Switch i case. Dio sekvens samo daje signale dijelu koda za pozicioniranje. Ovaj dio se lako može prilagoditi vašoj aplikaciji ili koristiti takav kakav jest.

4: Položaj servo servera kontrolira samo servo liberi, i if naredba za hvatač otvoren i zatvoren.

Stepper Control je malo zeznutiji. Ova funkcija uspoređuje zadanu vrijednost (položaj u koji želite da ruka ide) i trenutni položaj. Ako je trenutni položaj ljubavniji, funkcija se dodaje u položaj i traži od funkcije Stepper liberi da učini pozitivan korak. Suprotno vrijedi za položaj od najvišeg položaja. ako je položaj isti kao i zadana vrijednost, bit će postavljen XinPos bit i koračnica se zaustavlja.

// SP kontrola X

if (XstepCountXsp a ne Home) {

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

5: Dodajte kraj koda kojim se motori upravljaju pomoću funkcija liberi.

// -------------------- Izlaz ---------------------- // // korak jedan korak: XStepper.step (Xstep); // prvi korak: YStepper.step (Ystep);

Griper.write (GripSp);

Korak 4: Napravio

casp6099 - Casper Hartung Christensen

rasm616d - Rasmus Hansen

Preporučuje se: