Satura rādītājs:

UCL - iegulta - izvēlieties un ievietojiet: 4 soļi
UCL - iegulta - izvēlieties un ievietojiet: 4 soļi

Video: UCL - iegulta - izvēlieties un ievietojiet: 4 soļi

Video: UCL - iegulta - izvēlieties un ievietojiet: 4 soļi
Video: CRISTIANO RONALDO: ALL #UCL GOALS! 2024, Novembris
Anonim
UCL - iegults - izvēlieties un ievietojiet
UCL - iegults - izvēlieties un ievietojiet

Šī pamācība iet uz priekšu, kā tiek veidota 2D atlases un novietošanas vienība un kā to kodēt.

1. darbība

Compunets
Compunets

1x Adrio Mega

2x pakāpju motori (mēs izmantojām JLB pakāpju motoru, modelis 17H1352-P4130)

2x pakāpju motora piedziņas vadības paneļa modulis L298N Dual H Bridge DC Arduino

1x servomotors (mums nav plankumu uz šī)

3x 10k omu rezistori

2x neilona riteņi

1x 12V barošanas avots

Rāmim nedaudz koka

Vadi

2. solis: būvniecība

Būvniecība
Būvniecība
Būvniecība
Būvniecība
Būvniecība
Būvniecība

Pirmā lieta būvniecības laikā bija izlemt mašīnas izmēru un formu

Vispirms mēs veidojam pamata formas koku. Mēs izveidojām savākšanas un novietošanas rāmi no 50 cm līdz 25 cm līdz 30 cm. Viss, izņemot rāmi, tiltu un pacelšanas sviru, tika ražots ar lāzergriezi.

Šeit ir saite uz visiem failiem.

Tad mēs gribējām uz skriemeļu sistēmu. Šeit mēs devāmies ar diviem 50 mm gredzeniem un vienu 20 mm gredzenu. Tad mēs pieliekam paracordu blakus 20 mm ar kādu līmi. Pēc tam mēs saspiedām divus 50 mm gredzenus abās 20 mm gredzena pusēs.

20 mm

50 mm

Tad mums ir jāizstrādā slaidu vadotne pie rokas. Šeit mēs izgatavojām divas malas un vienu aizmugurējo plāksni.

Kas pēc tam tika pielīmēts U formā. Tad mēs to savienojām ar tiltu.

Sānu plāksne

Aizmugurējā plāksne

Tagad, kad ir veiktas daļas rokas pārvietošanai uz augšu un uz leju. Mums tas jāpārvieto uz priekšu un atpakaļ.

Izstrādājot to, mēs pārliecinājāmies, ka zobi sakrīt viens ar otru. Tātad abi priekšmeti tika izveidoti vienā projekta vietā.

3. darbība: kods

Kods
Kods
Kods
Kods
Kods
Kods

Programmēšana ir diezgan vienkārša un sastāv no 5 daļām

  1. Bibliotēku iekļaušana un mainīgo iestatīšana iekšējai un IO lietošanai
  2. Ielādējiet ievade Ram
  3. Sekvens, izvēloties vēlamo kustību.
  4. Stepper/servo pozīcijas kontrole
  5. Izeja pasaulei

Mēs plaši izskaidrosim katru daļu, taču atcerieties, ka tas ir tikai viens no daudzajiem risinājumiem.

1: Attiecībā uz spēkā neesošu iestatīšanu mēs iekļāvām 2 bibliotēkas, kas nepieciešamas šim projektam. Stepper un servo. Izmantojot iekļautās bibliotēkas, jūs ietaupīsit no visu detaļu apgūšanas par pakāpju un servomotoriem.

#iekļaut

#iekļaut

const int soļiPerRevolution = 200; // mainiet to, lai tas atbilstu jūsu motora soļu skaitam vienā apgriezienā

// inicializējiet stepper bibliotēku uz 8. līdz 11. tapai:

Stepper XStepper (stepsPerRevolution, 22, 23, 24, 25); Stepper YStepper (stepsPerRevolution, 28, 29, 30, 31); Servo satvērējs; // izveidot servo objektu, lai kontrolētu servo

Gripper ir jāpievieno tukšuma iestatīšanai

void setup () {// inicializēt seriālo portu: Serial.begin (9600); Griper.attach (9); // piestiprina servo 9. tapā pie servo objekta

Pārējā šīs sadaļas daļa ir tikai mainīgo un nemainīgo iestatīšana.

2: Pirmā lieta Void Loop ir ielādēt visas izmantotās ievades mainīgajā. Tas tiek darīts divu iemeslu dēļ. Pirmais iemesls ir ierobežot CPU smagos uzdevumus, lasot ievadi. Otrs iemesls, kas ir vissvarīgākais, ir pārliecināties, ka, ja ievadi izmanto vairāk nekā vienu reizi, tai būs vienāda vērtība visā skenēšanas laikā. Tas atvieglo konsekventa koda rakstīšanu. Šī ir ļoti izplatīta PLC programmēšanas prakse, taču tā attiecas arī uz iegulto programmēšanu.

// ------------------------- Ievadīšana RAM -------------------- Xend = digitalRead (34); Yend = digitalRead (35); Ena = digitalRead (36);

3: koda sekvens daļā mēs vienkārši izveidojām sekvens ar komandām Switch un case. Sekvens daļa tikai dod signālus koda pozīcijas kontroles daļai. Šo daļu var viegli pielāgot jūsu lietojumprogrammai vai izmantot tādu, kāda tā ir.

4: Servo stāvokli vienkārši kontrolē servo liberi, un ja paziņojums par satvērēju ir atvērts un aizvērts.

Stepper Control ir nedaudz sarežģītāks. Funkcija salīdzina iestatīto vērtību (pozīciju, kurā roka jāiet) un pašreizējo stāvokli. Ja pašreizējā pozīcija ir mīļākā, funkcija papildina šo pozīciju un lūdz Stepper liberi funkciju spert pozitīvu soli. Pretēja situācija ir augstā un augstā stāvoklī. ja pozīcija ir tāda pati kā iestatītā vērtība, XinPos bits tiek nosēdināts un solis apstājas.

// SP kontrole X

ja (XstepCountXsp un nevis Home) {

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

5: pievienojiet koda beigas, kuras motori tiek vadīti ar liberi funkcijām.

// -------------------- Izvade ---------------------- // pirmais solis: XStepper.step (Xstep); // solis viens solis: YStepper.step (Ystep);

Griper.write (GripSp);

4. solis: izgatavoja

casp6099 - Kaspers Hartungs Kristensens

rasm616d - Rasmus Hansens

Ieteicams: