Kazalo:

UCL - vdelano - izbira in mesto: 4 koraki
UCL - vdelano - izbira in mesto: 4 koraki

Video: UCL - vdelano - izbira in mesto: 4 koraki

Video: UCL - vdelano - izbira in mesto: 4 koraki
Video: Кампи Флегрей: супервулкан Италии Pt4: моделирование извержения в настоящее время 2024, November
Anonim
UCL - Embedded - Izberite in postavite
UCL - Embedded - Izberite in postavite

Ta navodila bodo obravnavala, kako je narejena 2D enota za izbiro in umestitev ter kako jo kodirati.

1. korak: Računalniki

Računalniki
Računalniki

1x Adrio Mega

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

Modul plošče krmilnika 2x koračnega motorja L298N Dvojni H most DC za Arduino

1x servo motor (na tem mestu nimamo pike)

3x 10k ohmski upori

2x najlonske pnevmatike

1x 12v napajalnik

Nekaj lesa za okvir

Žice

2. korak: Gradnja

Gradnja
Gradnja
Gradnja
Gradnja
Gradnja
Gradnja

Prva stvar pri gradnji je bila določiti velikost in obliko stroja za pobiranje in polaganje

Najprej zgradimo les osnovne oblike. Okvir za izbiro in postavitev smo zgradili 50 x 25 x 30 cm. Vse razen okvirja, mostu in dvižne roke je bilo izdelano z laserskim rezalnikom.

Tukaj je povezava do vseh datotek

Potem smo želeli sistem jermenic. Tu smo šli z dvema 50 mm obročema in enim 20 mm obročem. Nato smo poleg 20 mm z nekaj lepila postavili paracord. Nato smo stisnili dva 50 mm obroča na obeh straneh 20 mm obroča.

20 mm

50 mm

Nato moramo oblikovati drsnik za roko. Tu smo naredili dve strani in eno zadnjo ploščo.

Ki je bil nato zlepljen v obliki črke U. Nato smo to povezali z mostom.

Stranska plošča

Zadnja plošča

Zdaj, ko so deli za premikanje roke navzgor in navzdol končani. Moramo ga premikati naprej in nazaj.

Pri oblikovanju smo poskrbeli, da se zobje poravnajo med seboj. Tako sta bila oba predmeta ustvarjena na istem mestu projekta.

3. korak: Koda

Koda
Koda
Koda
Koda
Koda
Koda

Programiranje je precej preprosto in je sestavljeno iz 5 delov

  1. Vključitev knjižnic in nastavitev spremenljivk za notranjo in IO uporabo
  2. Naložite vložke v Ram
  3. Sekvens, izberite želeno gibanje.
  4. Stepper/servo nadzor položaja
  5. Izhod v svet

Natančno bomo razložili vsak del, vendar ne pozabite, da je to le ena od mnogih rešitev.

1: Za nastavitev praznine smo vključili 2 knjižnici, ki ju potrebujemo za ta projekt. Stepper in servo. Z vključenimi knjižnicami se izognete podrobnostim o koračnih in servo motorjih.

#vključi

#vključi

const int stepsPerRevolution = 200; // spremenite to, da ustreza številu korakov na vrtljaj vašega motorja

// inicializiramo knjižnico korakov na nožicah od 8 do 11:

Stepper XStepper (korakiPerRevolution, 22, 23, 24, 25); Stepper YStepper (korakiPerRevolution, 28, 29, 30, 31); Servo Griper; // ustvarite servo objekt za nadzor servo

Gripper se mora pritrditi v nastavitvi void

void setup () {// inicializira serijska vrata: Serial.begin (9600); Griper.priključek (9); // pritrdi servo na zatiču 9 na servo objekt

Preostanek tega razdelka je samo nastavitev spremenljivk in konstant.

2: Prva stvar v zanki praznine je, da vse uporabljene vnose naložite v spremenljivko. To se naredi iz dveh razlogov. Prvi razlog je, da CPU omeji težke naloge branja vnosa. Drugi razlog, ki je najbolj pomemben, je zagotoviti, da bo imel vnos, če se uporablja večkrat, isto vrednost v celotnem skeniranju. To olajša pisanje dosledne kode. To je zelo pogosta praksa pri programiranju PLC -ja, velja pa tudi za vgrajeno programiranje.

// ------------------------- Vnos v RAM -------------------- Xend = digitalno branje (34); Da = digitalno branje (35); Ena = digitalno branje (36);

3: V delu kode sekvens smo pravkar naredili sekvence z ukazi Switch in case. Del sekvens samo daje signale delu kode za upravljanje položaja. Ta del lahko preprosto prilagodite svoji aplikaciji ali uporabite takšnega, kot je.

4: Položaj servomotorja samo nadzira servo liberi in izjava if za prijemalo odprto in zaprto.

Stepper Control je nekoliko bolj zapleten. Funkcija primerja nastavljeno vrednost (položaj, v katerega želite, da gre roka) in trenutni položaj. Če je trenutni položaj ljubši, se funkcija doda k položaju in zahteva, da funkcija Stepper liberi naredi pozitiven korak. Nasprotno velja za položaj do višjega. če je položaj enak nastavljeni vrednosti, je bit XinPos postavljen na višjo raven, koračni stroj pa se ustavi.

// SP kontrola X

if (XstepCountXsp in ne Home) {

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

5: Dodajte konec kode, ki jo motorji upravljajo s funkcijami liberi.

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

Griper.write (GripSp);

4. korak: Made by

casp6099 - Casper Hartung Christensen

rasm616d - Rasmus Hansen

Priporočena: