Përmbajtje:

UCL - E integruar - Zgjedhja dhe Vendi: 4 Hapa
UCL - E integruar - Zgjedhja dhe Vendi: 4 Hapa

Video: UCL - E integruar - Zgjedhja dhe Vendi: 4 Hapa

Video: UCL - E integruar - Zgjedhja dhe Vendi: 4 Hapa
Video: Reeker: Vetëm njohja e ndërsjellë mes Kosovës dhe Serbisë është zgjidhje e qëndrueshme për dialogun 2024, Nëntor
Anonim
UCL - E integruar - Zgjedh dhe Vend
UCL - E integruar - Zgjedh dhe Vend

Ky udhëzues do të shkojë edhe pse bëhet një njësi zgjedhjeje dhe vendosjeje 2D dhe si ta kodoni atë.

Hapi 1: Kompunetat

Kompunetë
Kompunetë

1x Adrio Mega

2x motorë stepper (kemi përdorur JLB Stepper Motor, modeli 17H1352-P4130)

2x Stepper Motor Drive Controller Board Module L298N Dual H Bridge DC Për Arduino

Servo motor 1x (ne nuk kemi njollë në këtë)

3x rezistente 10k ohm

2x rrota najloni

Furnizimi me energji 1x 12v

Pak dru për kornizën

Telat

Hapi 2: Ndërtimi

Ndërtim
Ndërtim
Ndërtim
Ndërtim
Ndërtim
Ndërtim

Gjëja e parë gjatë fytyrës së Ndërtimit ishte të përcaktoni madhësinë dhe formën e makinës së zgjedhjes dhe vendosjes

Së pari ne ndërtojmë drurin e formës bazë. Ne ndërtuam kornizën tonë të zgjedhjes dhe vendosjes 50cm me 25cm me 30cm. Çdo gjë përveç kornizës, urës dhe krahut ngritës, ishte prodhuar me një lazer -prerës.

Këtu keni një lidhje me të gjithë skedarët

Pastaj ne donim të sistemit rrotull. Këtu shkuam me dy unaza 50 mm dhe një unazë 20 mm. Pastaj vendosim një parakord pranë 20mm me pak zam. Pas së cilës ne shtrydhëm dy unazat 50 mm në të dyja anët e unazës 20 mm.

20mm

50mm

Pastaj ne duhet të hartojmë një udhëzues rrëshqitës në krah. Këtu kemi bërë dy anë dhe një pjatë të pasme.

E cila më pas ishte ngjitur në një formë U. Pastaj e lidhëm atë me urën.

Pllakë anësore

Pllaka e pasme

Tani që pjesët për lëvizjen e krahut lart e poshtë janë bërë. Ne duhet ta lëvizim atë mbrapa dhe me radhë.

Gjatë hartimit të kësaj ne u siguruam që dhëmbët të rreshtohen me njëri -tjetrin. Pra, të dy artikujt u krijuan në të njëjtin vend projekti.

Hapi 3: Kodi

Kodi
Kodi
Kodi
Kodi
Kodi
Kodi

Programimi është mjaft i thjeshtë dhe përbëhet nga 5 pjesë

  1. Përfshirja e Bibliotekave dhe Konfigurimi i variablave për përdorim të brendshëm dhe IO
  2. Ngarkoni hyrjet në Ram
  3. Sekvens, duke zgjedhur lëvizjen që dëshironi.
  4. Kontrolli i pozicionit stepper/servo
  5. Dalje në botë

Ne do të shpjegojmë në mënyrë të gjerë çdo pjesë, por mos harroni se kjo është vetëm një nga zgjidhjet e shumta.

1: Përpara konfigurimit të zbrazëtisë kemi përfshirë 2 bibliotekat që na duhen për këtë projekt. Stepper dhe Servo. Përdorimi i Bibliotekave të përfshira, ju kursen nga mësimi i çdo detaji në lidhje me motorët stepper dhe servo.

#përfshi

#përfshi

const int hapaPerRevolution = 200; // ndryshoni këtë për t'iu përshtatur numrit të hapave për rrotullim për motorin tuaj

// Nisni bibliotekën stepper në kunjat 8 deri në 11:

Stepper XStepper (hapatPerRevolution, 22, 23, 24, 25); Stepper YStepper (hapatPerRevolution, 28, 29, 30, 31); Servo Griper; // krijoni një servo objekt për të kontrolluar një servo

Gripper duhet të bashkohet me konfigurimin e zbrazëtisë

void setup () {// inicio portin serik: Serial.begin (9600); Griper.tash (9); // i bashkon servo -në pin 9 me objektin servo

Pjesa tjetër e këtij seksioni është vetëm konfigurimi i variablave dhe konstantëve.

2: Gjëja e parë në Void Loop është të ngarkoni të gjitha hyrjet e përdorura në një ndryshore. Kjo bëhet për dy arsye. Arsyeja e parë është të kufizoni detyrat e rënda të CPU për të lexuar një Input. Arsyeja e dytë, e cila është më e rëndësishmja, për t'u siguruar që nëse një Input përdoret më shumë se një herë, do të ketë të njëjtën vlerë gjatë gjithë skanimit. Kjo e bën më të lehtë shkrimin e kodit të qëndrueshëm. Kjo është një praktikë shumë e zakonshme në programimin PLC, por vlen edhe për programimin e ngulitur.

// ------------------------- Futja në RAM -------------------- Xend = digitalRead (34); Yend = digitalRead (35); Ena = digitalRead (36);

3: Në pjesën sekvens të kodit, ne sapo bëmë një sekven me komandat Switch dhe case. Pjesa sekvens vetëm jep sinjale në pjesën e kontrollit të pozicionit të kodit. Kjo pjesë lehtë mund të personalizohet për aplikacionin tuaj ose të përdoret ashtu siç është.

4: Pozicioni i servo -s sapo kontrollohet nga servo liberi, dhe një deklaratë if për gripper hapur dhe mbyllur.

Kontrolli Stepper është pak më i ndërlikuar. Funksioni krahason Pikën Vendosëse (Pozicioni në të cilin dëshironi të shkojë krahu) dhe pozicionin Aktual. Nëse pozicioni aktual është i dashur, funksioni shtohet në pozicion dhe i kërkon funksionit Stepper liberi të ndërmarrë një hap pozitiv. E kundërta është e vërtetë për një pozicion të lartë. nëse pozicioni është i njëjtë me Setpoint, një bit XinPos është i ngopur, dhe hapi ndalet.

// Kontrolli i PS -së X

nëse (XstepCountXsp dhe jo Home) {

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

5: Shtoni fundin e kodit motorët kontrollohen me funksionet liberi.

// -------------------- Rezultati ---------------------- // hapi një hap: XStepper.step (Xstep); // hapi një hap: YStepper.step (Ystep);

Griper.write (GripSp);

Hapi 4: Made By

casp6099 - Casper Hartung Christensen

rasm616d - Rasmus Hansen

Recommended: