Obsah:

UCL - vstavané - výber a umiestnenie: 4 kroky
UCL - vstavané - výber a umiestnenie: 4 kroky

Video: UCL - vstavané - výber a umiestnenie: 4 kroky

Video: UCL - vstavané - výber a umiestnenie: 4 kroky
Video: Часть 3 — Аудиокнига «Бэббит» Синклера Льюиса (главы 10–15) 2024, November
Anonim
UCL - vstavané - výber a umiestnenie
UCL - vstavané - výber a umiestnenie

Tento návod sa bude zaoberať tým, ako je jednotka 2D na vyberanie a umiestňovanie vyrobená a ako ju kódovať.

Krok 1: Compunety

Compunety
Compunety

1x Adrio Mega

2x krokový motor (použili sme krokový motor JLB, model 17H1352-P4130)

2 x modul krokového motora radiča pohonu L298N Dual H Bridge DC pre Arduino

1x servomotor (na tomto nemáme škvrnu)

3x 10k ohm odpory

2x nylonové kukly

1x 12v napájací zdroj

Trochu dreva na rám

Drôty

Krok 2: Konštrukcia

Konštrukcia
Konštrukcia
Konštrukcia
Konštrukcia
Konštrukcia
Konštrukcia

Prvá vec, ktorá sa mala objaviť počas stavby, bolo zistiť veľkosť a tvar pick -upu

Najprv postavíme drevo základného tvaru. Postavili sme náš vyberací a umiestňovací rám 50 cm x 25 cm x 30 cm. Všetko okrem rámu, mosta a zdvíhacieho ramena bolo vyrobené laserovým rezačom.

Tu je odkaz na všetky súbory Odkaz

Potom sme chceli systém kladiek. Tu sme šli s dvoma 50 mm krúžkami a jedným 20 mm krúžkom. Potom položíme paracord na 20 mm pomocou nejakého lepidla. Potom sme stlačili dva 50 mm krúžky na oboch stranách 20 mm krúžku.

20 mm

50 mm

Potom musíme navrhnúť posuvné vedenie k ramenu. Tu sme vyrobili dve strany a jednu zadnú dosku.

Ktorý bol potom prilepený vo forme U. Potom sme to spojili s mostom.

Bočná doska

Zadná doska

Teraz sú diely na pohyb ramena hore a dole hotové. Musíme to posunúť tam a späť.

Pri navrhovaní sme dbali na to, aby boli zuby navzájom zarovnané. Obe položky boli teda vytvorené na rovnakom mieste projektu.

Krok 3: Kód

Kód
Kód
Kód
Kód
Kód
Kód

Programovanie je veľmi jednoduché a pozostáva z 5 častí

  1. Zahrnutie knižníc a nastavenie premenných pre interné a IO použitie
  2. Načítať vstupy do RAM
  3. Sekvens, zvoľte požadovaný pohyb.
  4. Ovládanie polohy stepper/servo
  5. Výstup do sveta

Každú časť vysvetlíme širokými ťahmi, ale pamätajte, že toto je len jedno z mnohých riešení.

1: Pred nastavením prázdnoty sme zahrnuli 2 knižnice, ktoré potrebujeme pre tento projekt. Stepper a servo. Vďaka priloženým knižniciam vám ušetrí všetky podrobnosti o krokových a servomotoroch.

#zahrnúť

#zahrnúť

const int stepsPerRevolution = 200; // zmeňte to tak, aby zodpovedalo počtu krokov na otáčku vášho motora

// inicializácia knižnice stepperov na kolíkoch 8 až 11:

Stepper XStepper (stepsPerRevolution, 22, 23, 24, 25); Stepper YStepper (krokyPerRevolution, 28, 29, 30, 31); Servopohon; // vytvorenie objektu serva na ovládanie serva

Gripper sa musí uchytiť v prázdnom nastavení

void setup () {// inicializácia sériového portu: Serial.begin (9600); Griper.attach (9); // pripevní servo na kolíku 9 k objektu serva

Zvyšok tejto časti je len nastavenie premenných a konštánt.

2: Prvá vec vo Void Loop je načítať všetky použité vstupy do premennej. To sa deje z dvoch dôvodov. Prvým dôvodom je obmedziť náročné úlohy CPU na čítanie vstupu. Druhý dôvod, ktorý je najdôležitejší, je uistiť sa, že ak sa vstup použije viac ako raz, bude mať rovnakú hodnotu počas celého skenovania. To uľahčuje písanie konzistentného kódu. Toto je veľmi bežná prax v programovaní PLC, ale platí to aj pre vstavané programovanie.

// ------------------------- Pripis do RAM -------------------- Xend = digitalRead (34); Yend = digitalRead (35); Ena = digitalRead (36);

3: V sekvensovej časti kódu sme práve urobili sekvens pomocou príkazov Switch a case. Sekvenčná časť iba dáva signály časti kódu na riadenie polohy. Túto časť je možné ľahko prispôsobiť vašej aplikácii alebo ju použiť tak, ako je.

4: Poloha serva je len riadená servo liberi a príkaz if pre chápadlo je otvorený a zatvorený.

Ovládanie Stepper je o niečo zložitejšie. Táto funkcia porovnáva požadovanú hodnotu (pozíciu, do ktorej má rameno ísť) a aktuálnu polohu. Ak je aktuálna poloha milšia, funkcia sa k polohe pridá a požiada funkciu Stepper liberi, aby urobila pozitívny krok. Opak je pravdou pre polohu od polohy po zdvih. ak je poloha rovnaká ako požadovaná hodnota, bit XinPos sa nasadí a krokovač sa zastaví.

// Ovládanie SP X

if (XstepCountXsp a nie Home) {

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

5: Pridajte koniec kódu, ktorý riadi motory pomocou funkcií liberi.

// -------------------- Výstup ---------------------- // krok jeden krok: XStepper.step (Xstep); // krok jeden krok: YStepper.step (Ystep);

Griper.write (GripSp);

Krok 4: Vyrobil

casp6099 - Casper Hartung Christensen

rasm616d - Rasmus Hansen

Odporúča: