Talaan ng mga Nilalaman:
2025 May -akda: John Day | [email protected]. Huling binago: 2025-01-13 06:58
Ang magtuturo na ito ay pupunta bagaman kung paano ang isang 2D pick at lugar na yunit ay ginawa at kung paano ito i-code.
Hakbang 1: Mga Compunet
1x Adrio Mega
2x stepper motors (ginamit namin ang JLB Stepper Motor, modelo 17H1352-P4130)
2x Stepper Motor Drive Controller Board Module L298N Dual H Bridge DC Para sa Arduino
1x servo motor (Wala kaming speck sa isang ito)
3x 10k ohm resistors
2x Nylon wheals
1x 12v power supply
Ang ilang mga kahoy para sa frame
Mga wire
Hakbang 2: Konstruksiyon
Ang unang bagay sa panahon ng mukha ng Konstruksiyon ay upang alamin ang laki at hugis ng pick at lugar mashine
Una naming itinatayo ang pangunahing kahoy na hugis. Binuo namin ang aming pick at place frame na 50cm ng 25cm ng 30cm. Lahat maliban sa frame, tulay at nakakataas na braso, ay gawa sa isang lasercutter.
Narito ang isang link sa lahat ng mga file
Pagkatapos gusto namin ang sistema ng kalo. Pumunta kami dito na may dalang dalawang singsing na 50mm at isang singsing na 20mm. Pagkatapos ay naglalagay kami ng isang paracord sa tabi ng 20mm na may ilang pandikit. Pagkatapos nito ay pinisil namin ang dalawang singsing na 50mm sa magkabilang panig ng singsing na 20mm.
20mm
50mm
Pagkatapos kailangan naming mag-disenyo ng isang gabay sa slide sa braso. Dito ginawa namin ang dalawang panig at isang back plate.
Alin pagkatapos ay nakadikit sa isang form na U. Pagkatapos ay ikinonekta namin iyon sa tulay.
Side plate
Plate sa likod
Ngayon na ang mga bahagi para sa paggalaw ng braso pataas at pababa ay tapos na. Kailangan nating ilipat ito pabalik-balik.
Kapag dinisenyo ito tinitiyak namin na ang mga ngipin ay nakahanay sa bawat isa. Kaya't ang parehong mga item ay nilikha sa parehong lugar ng proyekto.
Hakbang 3: Code
Ang programa ay medyo simple at binubuo ng 5 bahagi
- Pagsasama ng Mga Aklatan at Pag-set up ng mga variable para sa panloob at IO na paggamit
- I-load ang mga input kay Ram
- Sekvens, pagpili ng paggalaw na gusto mo.
- Pagkontrol sa posisyon ng stepper / servo
- Output sa mundo
Kami ay sa malawak na mga stroke ay ipaliwanag ang bawat bahagi, ngunit tandaan na ito ay isa lamang sa maraming mga solusyon.
1: Para sa walang bisa na pag-setup ay isinama namin ang 2 mga aklatan na kailangan namin para sa proyekt na ito. Stepper at Servo. Gamit ang kasama na Mga Aklatan, nai-save ka mula sa pag-aaral ng bawat detalye tungkol sa stepper at servo motors.
# isama
# isama
Const int stepsPerRevolution = 200; // baguhin ito upang magkasya sa bilang ng mga hakbang sa bawat rebolusyon para sa iyong motor
// ipasimula ang stepper library sa mga pin 8 hanggang 11:
Stepper XStepper (stepsPerRevolution, 22, 23, 24, 25); Stepper YStepper (stepsPerRevolution, 28, 29, 30, 31); Servo Griper; // create servo object upang makontrol ang isang servo
kailangan ng Gripper na mag-attach sa void setup
void setup () {// ipasimula ang serial port: Serial.begin (9600); Griper.attach (9); // nakakabit ang servo sa pin 9 sa object ng servo
Ang natitirang bahagi ng seksyon na ito ay naka-set up lamang ng Variable's at Constant's.
2: Ang unang bagay sa Void Loop ay upang mai-load ang lahat ng ginamit na input sa isang variable. Ginagawa ito sa dalawang kadahilanan. Ang unang dahilan ay upang limitahan ang mabibigat na gawain ng CPU sa pagbabasa ng isang Input. Ang pangalawang dahilan, na kung saan ay ang pinaka-import, upang matiyak na kung ang isang Input ay ginagamit nang higit sa isang beses, magkakaroon ito ng parehong halaga sa buong buong pag-scan. Ginagawa nitong mas madali ang pagsusulat ng pare-pareho ang code. Ito ay isang pangkaraniwang kasanayan sa PLC na programa, ngunit nalalapat din ito sa naka-embed na programa.
// ----------------- Indput sa RAM -------------------- Xend = digitalRead (34); Yend = digitalRead (35); Ena = digitalRead (36);
3: Sa sekvens na bahagi ng code, gumawa lamang kami ng isang sekvens na may mga switch na switch at case. Ang sekvens na bahagi ay nagbibigay lamang ng mga signal sa Posisyon control bahagi ng code. Ang bahaging ito ay maaaring madaling ipasadya sa iyong aplikasyon o gagamitin tulad ng dati.
4: Ang Posisyon ng servo ay kinokontrol lamang ng servo liberi, at isang pahayag kung para sa gripper na bukas at sarado.
Ang Stepper Control ay medyo mas nakakalito. Inihambing ng pagpapaandar ang Setpoint (Ang posisyon na nais mong puntahan ng braso) at ang Kasalukuyang posisyon. Kung ang kasalukuyang posisyon ay mahilig sa, ang pagpapaandar ay nagdaragdag sa posisyon at tinanong ang Stepper liberi function na gumawa ng isang positibong hakbang. Ang kabaligtaran ay totoo para sa isang hanggang hig na posisyon. kung ang posisyon ay kapareho ng Setpoint, isang XinPos bit ay nakaupo, at huminto ang stepper.
// SP controal X
kung (XstepCountXsp at hindi Home) {
XstepCount = XstepCount-1; Xstep = -1; XinPos = 0; } kung (XstepCount == Xsp) {Xstep = 0; XinPos = 1; }
5: Idagdag ang dulo ng code na ang motor ay kinokontrol ng liberi function.
// -------------------- Output ----------------- // step one step: XStepper.step (Xstep); // step one step: YStepper.step (Ystep);
Griper.write (GripSp);
Hakbang 4: Ginawa Ng
casp6099 - Casper Hartung Christensen
rasm616d - Rasmus Hansen