INHOUDSOPGAWE:

UCL - Ingebed - Kies en plaas: 4 stappe
UCL - Ingebed - Kies en plaas: 4 stappe

Video: UCL - Ingebed - Kies en plaas: 4 stappe

Video: UCL - Ingebed - Kies en plaas: 4 stappe
Video: Карл Фристон: Дереализация, опасности для сознания 2024, Julie
Anonim
UCL - Ingebed - kies en plaas
UCL - Ingebed - kies en plaas

Hierdie instruksies gaan egter oor hoe 'n 2D kies en plaas eenheid gemaak word en hoe om dit te kodeer.

Stap 1: rekenaars

Rekenaars
Rekenaars

1x Adrio Mega

2x stapmotors (ons het JLB-stapmotor, model 17H1352-P4130, gebruik)

2x Stepper Motor Drive Controller Board Module L298N Dual H Bridge DC Vir Arduino

1x servomotor (ons het nie die spikkel hierop nie)

3x 10k ohm weerstande

2x Nylon verslindings

1x 12V kragtoevoer

Bietjie hout vir die raam

Drade

Stap 2: Konstruksie

Konstruksie
Konstruksie
Konstruksie
Konstruksie
Konstruksie
Konstruksie

Die eerste ding tydens die Construction -gesig was om die grootte en vorm van die pick and place -masjien te bepaal

Eerstens bou ons die basiese vorm hout. Ons het ons kies -en -plek -raam 50 cm x 25 cm by 30 cm gebou. Alles behalwe die raam, brug en hefarm is vervaardig met 'n lasersnyer.

Hier is 'n skakel na al die lêers:

Toe wou ons na die katrolstelsel. Hier het ons gegaan met twee 50 mm ringe en een 20 mm ring. Dan sit ons 'n parakoord langs die 20 mm met 'n bietjie gom. Daarna het ons die twee 50 mm -ringe aan weerskante van die 20 mm -ring vasgedruk.

20 mm

50 mm

Dan moet ons 'n skuifgids vir die arm ontwerp. Hier het ons twee kante en een agterplaat gemaak.

Wat dan in 'n U -vorm vasgeplak is. Toe verbind ons dit met die brug.

Klein bordjie

Agter plaat

Noudat die dele om die arm op en af te beweeg, klaar is. Ons moet dit heen en weer beweeg.

By die ontwerp daarvan het ons seker gemaak dat die tande in lyn is met mekaar. Dus is albei items op dieselfde projekplek geskep.

Stap 3: Kodeer

Kode
Kode
Kode
Kode
Kode
Kode

Die programmering is redelik eenvoudig en bestaan uit 5 dele

  1. Insluiting van biblioteke en die opstel van veranderlikes vir interne en IO -gebruik
  2. Laai insette na Ram
  3. Sekvens, kies die beweging wat u wil hê.
  4. Stepper/servo posisie beheer
  5. Uitset na die wêreld

Ons sal elke deel in breë trekke verduidelik, maar onthou dat dit slegs een van die vele oplossings is.

1: Voordat ons die leemte opstel, bevat ons die twee biblioteke wat ons benodig vir hierdie projek. Stepper en servo. Deur die meegeleverde biblioteke te gebruik, kan u nie elke detail leer oor stepper- en servomotors nie.

#insluit

#insluit

const int stepsPerRevolution = 200; // verander dit om aan te pas by die aantal stappe per omwenteling vir u motor

// initialiseer die stepper -biblioteek op penne 8 tot en met 11:

Stepper XStepper (stepsPerRevolution, 22, 23, 24, 25); Stepper YStepper (stepsPerRevolution, 28, 29, 30, 31); Servo Griper; // skep servo -voorwerp om 'n servo te beheer

die Gripper moet in die leemte -opstelling geheg word

ongeldige opstelling () {// initialiseer die reekspoort: Serial.begin (9600); Griper.aanheg (9); // plak die servo op pen 9 aan die servo -voorwerp

Die res van hierdie afdeling is slegs die opstel van veranderlike en konstante.

2: Die eerste ding in die Void Loop is om al die gebruikte insette in 'n veranderlike te laai. Dit word om twee redes gedoen. Die eerste rede is om die CPU -taak van die lees van 'n inset te beperk. Die tweede rede, wat die belangrikste is, om seker te maak dat as 'n invoer meer as een keer gebruik word, dieselfde waarde gedurende die hele skandering sal wees. Dit maak die skryf van konsekwente kode makliker. Dit is 'n baie algemene praktyk in PLC -programmering, maar dit is ook van toepassing op ingebedde programmering.

// ------------------------- Invoer na RAM -------------------- Xend = digitalRead (34); Yend = digitalRead (35); Ena = digitalRead (36);

3: In die sekvens -gedeelte van die kode het ons net 'n sekvens gemaak met die skakelaar en opdragte. Die sekvens -gedeelte gee net seine aan die posisie -beheergedeelte van die kode. Hierdie deel kan maklik aangepas word by u toepassing of gebruik word soos dit is.

4: Die posisie van die servo word net beheer deur die servo liberi, en 'n if -verklaring vir grijper oop en toe.

Die Stepper Control is 'n bietjie moeiliker. Die funksie vergelyk die setpoint (die posisie waarheen u die arm wil gaan) en die huidige posisie. As die huidige posisie liefhebber is, voeg die funksie by tot die posisie en vra die Stepper liberi -funksie om 'n positiewe stap te neem. Die teenoorgestelde is waar vir 'n hoë posisie. As die posisie dieselfde is as die setpoint, word 'n XinPos -bit opgehef en die stapstop stop.

// SP controal X

as (XstepCountXsp en nie tuis nie) {

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

5: Voeg die einde van die kode by waarmee die motors met die liberi -funksies beheer word.

// -------------------- Uitset ---------------------- // stap een stap: XStepper.step (Xstep); // stap een stap: YStepper.step (Ystep);

Griper.write (GripSp);

Stap 4: Gemaak deur

casp6099 - Casper Hartung Christensen

rasm616d - Rasmus Hansen

Aanbeveel: