Turinys:

UCL - įterptas - pasirinkite ir įdėkite: 4 žingsniai
UCL - įterptas - pasirinkite ir įdėkite: 4 žingsniai

Video: UCL - įterptas - pasirinkite ir įdėkite: 4 žingsniai

Video: UCL - įterptas - pasirinkite ir įdėkite: 4 žingsniai
Video: CRISTIANO RONALDO: ALL #UCL GOALS! 2024, Lapkritis
Anonim
UCL - įterptas - pasirinkite ir padėkite
UCL - įterptas - pasirinkite ir padėkite

Ši instrukcija padės suprasti, kaip gaminamas 2D rinkimo ir išdėstymo įrenginys ir kaip jį koduoti.

1 žingsnis: Skaičiavimai

Komunetai
Komunetai

1x Adrio Mega

2x žingsniniai varikliai (naudojome „JLB Stepper Motor“, modelis 17H1352-P4130)

2x žingsninio variklio pavaros valdiklio plokštės modulis L298N dvigubas H tiltas DC „Arduino“

1x servo variklis (mes neturime taškelių)

3x 10k omų rezistoriai

2x nailono ratai

1x 12V maitinimo šaltinis

Šiek tiek medžio rėmui

Laidai

2 žingsnis: Statyba

Statyba
Statyba
Statyba
Statyba
Statyba
Statyba

Pirmasis dalykas „Statybos veido“metu buvo nuspręsti, kokio dydžio ir formos bus mašina

Pirmiausia mes statome pagrindinės formos medieną. Mes pastatėme savo pasirinkimo rėmą nuo 50 cm iki 25 cm iki 30 cm. Viskas, išskyrus rėmą, tiltą ir kėlimo svirtį, buvo pagaminta naudojant lazerinį pjoviklį.

Čia yra visų failų nuoroda

Tada norėjome skriemulių sistemos. Čia mes nuėjome su dviem 50 mm žiedais ir vienu 20 mm žiedu. Tada padedame paracordą šalia 20 mm su tam tikru klijais. Po to mes suspaudėme du 50 mm žiedus iš abiejų 20 mm žiedo pusių.

20 mm

50 mm

Tada mes turime suprojektuoti slydimo kreiptuvą į ranką. Čia mes padarėme dvi šonus ir vieną galinę plokštę.

Kuris tada buvo priklijuotas U forma. Tada mes prijungėme tai prie tilto.

Šoninė plokštė

Galinė plokštė

Dabar, kai rankos judėjimo aukštyn ir žemyn dalys yra padarytos. Turime jį judinti pirmyn ir atgal.

Kurdami tai mes įsitikinome, kad dantys yra suderinti vienas su kitu. Taigi abu elementai buvo sukurti toje pačioje projekto vietoje.

3 žingsnis: kodas

Kodas
Kodas
Kodas
Kodas
Kodas
Kodas

Programavimas yra gana paprastas ir susideda iš 5 dalių

  1. Bibliotekų įtraukimas ir kintamųjų nustatymas vidiniam ir IO naudojimui
  2. Įkelkite įvestis į „Ram“
  3. Sekvens, pasirinkdamas norimą judesį.
  4. Stepper/servo padėties valdymas
  5. Išėjimas į pasaulį

Mes plačiai paaiškinsime kiekvieną dalį, tačiau atminkite, kad tai tik vienas iš daugelio sprendimų.

1: Į tuštumos sąranką įtraukėme 2 bibliotekas, kurių mums reikia šiam projektui. Stepper ir servo. Naudodamiesi įtrauktomis bibliotekomis, sutaupysite nuo išsamios informacijos apie žingsninius ir servo variklius.

#įtraukti

#įtraukti

const int stepsPerRevolution = 200; // pakeiskite tai, kad atitiktų jūsų variklio žingsnių skaičių per apsisukimą

// inicijuokite žingsnių biblioteką 8–11 smeigtukuose:

Stepper XStepper (stepsPerRevolution, 22, 23, 24, 25); Stepper YStepper (stepsPerRevolution, 28, 29, 30, 31); Servo griebtuvas; // sukurti servo objektą valdyti servo

„Gripper“turi prisijungti prie tuštumos sąrankos

void setup () {// inicijuoti nuoseklųjį prievadą: Serial.begin (9600); Griper.attach (9); // prie servo objekto pritvirtina 9 kaiščio servo

Likusi šio skyriaus dalis yra tik kintamųjų ir pastoviųjų sąranka.

2: Pirmas dalykas „Void Loop“sistemoje yra įkrauti visas naudojamas įvestis į kintamąjį. Tai daroma dėl dviejų priežasčių. Pirmoji priežastis yra apriboti sunkias procesoriaus užduotis skaityti įvestį. Antroji priežastis, kuri yra svarbiausia, yra įsitikinti, kad jei įvestis naudojama daugiau nei vieną kartą, jos vertė bus vienoda viso nuskaitymo metu. Tai palengvina nuoseklaus kodo rašymą. Tai labai įprasta PLC programavimo praktika, tačiau ji taip pat taikoma įterptajam programavimui.

// ------------------------- Įvestis į RAM -------------------- Xend = digitalRead (34); Yend = digitalRead (35); Ena = digitalRead (36);

3: kodo sekvens dalyje ką tik padarėme sekvens su komandomis Switch ir case. Sekvens dalis tiesiog duoda signalus kodo padėties valdymo daliai. Šią dalį galima lengvai pritaikyti pagal jūsų programą arba naudoti tokią, kokia yra.

4: Servo padėtį tik valdo servo liberi, o jei sakoma, kad griebtuvas atidarytas ir uždarytas.

„Stepper Control“yra šiek tiek sudėtingesnis. Funkcija lygina nustatytą vertę (padėtį, į kurią norite pakelti ranką) ir dabartinę padėtį. Jei dabartinė pozicija yra meilužė, funkcija papildo padėtį ir prašo „Stepper liberi“funkcijos atlikti teigiamą žingsnį. Priešinga situacija yra aukštai ir aukštai pozicijai. jei padėtis yra tokia pati kaip ir nustatytoji vertė, XinPos bitas sėdimas aukštyn ir žingsnininkas sustoja.

// SP kontrolė X

if („XstepCountXsp“, o ne „Home“) {

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

5: pridėkite kodo pabaigą, varikliai valdomi naudojant „liberi“funkcijas.

// -------------------- Išvestis ---------------------- // vienas žingsnis: XStepper.step (Xstep); // vienas žingsnis: YStepper.step (Ystep);

Griper.write (GripSp);

4 žingsnis: pagamintas

casp6099 - Casper Hartung Christensen

rasm616d - Rasmusas Hansenas

Rekomenduojamas: