- Súčasti sú povinné
- Konštrukcia robotického ramena
- Schéma zapojenia a pracovné vysvetlenie:
- Ako ovládať robotické rameno:
V tomto výučbe navrhneme robotické rameno založené na Arduino Uno z niektorých kartónov a servomotorov. Celý proces výstavby bol podrobne vysvetlený nižšie. V tomto projekte je Arduino Uno naprogramované na riadenie servomotorov, ktoré slúžia ako kĺby robotického ramena. Toto nastavenie tiež vyzerá ako robotický žeriav, alebo ho môžeme previesť na žeriav pomocou niekoľkých ľahkých úprav. Tento projekt bude užitočný pre začiatočníkov, ktorí sa chcú naučiť vyvíjať jednoduchého robota za nízku cenu alebo sa chcú naučiť pracovať s Arduino a servomotormi.
Toto robotické rameno Arduino je možné ovládať štyrmi k nemu pripojenými potenciometrmi, každý potenciometer sa používa na ovládanie každého serva. Tieto servá môžete presúvať otáčaním hrncov, aby ste vybrali nejaký predmet, s určitou praxou môžete ľahko vybrať a presunúť objekt z jedného miesta na druhé. Použili sme tu servá s nízkym krútiacim momentom, ale na vyberanie ťažkých predmetov môžete použiť výkonnejšie servá. Celý proces bol dobre demonštrovaný na videu na konci. Tiež si tu pozrite naše ďalšie projekty v oblasti robotiky.
Súčasti sú povinné
- Arduino Uno
- 1000uF kondenzátor (4 kusy)
- 100nF kondenzátor (4 kusy)
- Servomotor (SG 90 - štyri kusy)
- 10K pot - variabilný rezistor (4 kusy)
- Napájanie (5V - najlepšie dva)
Servo motor
Najprv si povieme niečo o servomotoroch. Servomotory sa používajú hlavne tam, kde je potrebný presný pohyb alebo poloha hriadeľa. Nie sú navrhované pre vysokorýchlostné aplikácie. Servomotory sú navrhnuté pre nízku rýchlosť, stredný krútiaci moment a presnú polohu. Takže tieto motory sú najlepšie pre navrhovanie robotickej paže.
Servomotory sú k dispozícii v rôznych tvaroch a veľkostiach. Budeme používať malé servomotory, tu používame štyri serva SG90. Servomotor bude mať hlavne vodiče, jeden je na kladné napätie, druhý na zem a posledný na nastavenie polohy. ČERVENÝ vodič je pripojený k napájaniu, čierny vodič je pripojený k zemi a ŽLTÝ vodič je pripojený k signálu. Prejdite si tento návod Ovládanie servomotora pomocou Arduina a dozviete sa o ňom viac. V Arduine máme preddefinované knižnice na ovládanie serva, takže je veľmi ľahké ovládať servo, ktoré sa naučíte spolu s týmto tutoriálom.
Konštrukcia robotického ramena
Vezmite rovný a stabilný povrch, napríklad stôl alebo tvrdú lepenku. Ďalej umiestnite do stredu servomotor a nalepte ho na miesto. Uistite sa, že stupeň rotácie je v oblasti znázornenej na obrázku. Toto servo slúži ako základňa ramena.
Na prvé servo položte malý kúsok lepenky a potom na tento kúsok lepenky položte druhé servo a nalepte ho na miesto. Otočenie serva sa musí zhodovať s diagramom.
Vezmite niekoľko kartónov a nakrájajte ich na kúsky 3 cm x 11 cm. Uistite sa, že kúsok nie je zmäkčený. Na jednom konci vyrežte obdĺžnikový otvor (od spodku nechajte 0,8 cm), aby sa do neho zmestilo ďalšie servo, a na druhý koniec servopohon pevne zaskrutkujte skrutkami alebo lepidlom. Potom do prvej diery vložte tretie servo.
Teraz nastrihajte ďalší kartónový kúsok s dĺžkami znázornenými na obrázku nižšie a na spodok tohto kusu prilepte ďalšie ozubené koliesko.
Teraz prilepte štvrté a posledné servo k okraju druhého dielu, ako je to znázornené na obrázku.
Vďaka tomu vyzerajú dva kúsky dohromady.
Keď pripojíme toto nastavenie k základni, malo by to vyzerať,
Je to takmer hotové. Potrebujeme len urobiť hák, aby sme objekt chytili a vybrali ako robotická ruka. Na háčik nastrihajte ďalšie dva kúsky kartónu s dĺžkou 1 cm x 7 cm a 4 cm x 5 cm. Prilepte ich k sebe, ako je to znázornené na obrázku, a prilepte konečný prevod na samý okraj.
Namontujte tento kúsok na vrch a s tým sme dokončili stavbu našej Robotickej ruky.
Týmto sa dokončil náš základný dizajn robotického ramena a tak sme postavili naše nízkonákladové robotické rameno. Teraz zapojte obvod do nepájivého poľa podľa schémy zapojenia.
Schéma zapojenia a pracovné vysvetlenie:
Pripojenie obvodu pre Arduino Uno Robotic Arm je uvedené nižšie.
Napätie na premenných rezistoroch nie je úplne lineárne; bude to hlučný. Na odfiltrovanie tohto šumu sú teda kondenzátory umiestnené cez každý odpor, ako je to znázornené na obrázku.
Teraz budeme napájať napätie poskytované týmto premenným rezistorom (napätie, ktoré predstavuje riadenie polohy) do ADC kanálov Arduina. Použijeme na to štyri ADC kanály UNO od A0 do A3. Po inicializácii ADC budeme mať digitálnu hodnotu hrncov predstavujúcu pozíciu potrebnú pre používateľa. Vezmeme túto hodnotu a porovnáme ju s pozíciou serva.
Arduino má šesť ADC kanálov. Pre naše Robotické rameno sme použili štyri. UNO ADC má 10 bitové rozlíšenie, takže celočíselné hodnoty sa pohybujú od 0-1023 (2 ^ 10 = 1024 hodnôt). To znamená, že bude mapovať vstupné napätie medzi 0 a 5 voltami na celočíselné hodnoty medzi 0 a 1023. Takže pre každú (5/1024 = 4,9 mV) na jednotku. Viac informácií o mapovaní úrovní napätia pomocou kanálov ADC v Arduine sa dozviete tu.
Teraz, aby UNO previedlo analógový signál na digitálny signál, musíme použiť kanál ADC spoločnosti Arduino Uno pomocou nasledujúcich funkcií:
1. analogRead (pin); 2. analogReference (); 3. analogReadResolution (bity);
Kanály ADC Arduino majú predvolenú referenčnú hodnotu 5V. To znamená, že môžeme poskytnúť maximálne vstupné napätie 5 V pre prevod ADC na ktoromkoľvek vstupnom kanáli. Pretože niektoré snímače poskytujú napätie od 0 do 2,5 V, pri referenčnej hodnote 5 V dostaneme menšiu presnosť, takže máme inštrukciu, ktorá nám umožňuje zmeniť túto referenčnú hodnotu. Takže pre zmenu referenčnej hodnoty máme „analogReference ();“
Ako predvolené nastavenie dostaneme maximálne rozlíšenie ADC na doske, ktoré je 10 bitov, toto rozlíšenie je možné zmeniť pomocou inštrukcie („analogReadResolution (bits);“).
V našom robotickom ručnom obvode sme ponechali toto referenčné napätie na predvolené, takže môžeme načítať hodnotu z kanálu ADC priamym volaním funkcie „analogRead (pin);“, tu „pin“ predstavuje pin, na ktorý sme pripojili analógový signál chceme si prečítať „A0“. Hodnotu z ADC je možné uložiť do celého čísla ako int SENSORVALUE0 = analogRead (A0); .
Teraz si povieme niečo o SERVO, Arduino Uno má funkciu, ktorá nám umožňuje ovládať polohu serva iba zadaním hodnoty stupňa. Povedzme, že keď chceme, aby servo bolo na 30, môžeme priamo reprezentovať hodnotu v programe. Súbor hlavičky SERVO ( Servo.h ) sa interne stará o všetky výpočty pomerov dane.
#include
Tu predstavuje prvé vyhlásenie hlavičkový súbor pre riadenie SERVO MOTORU. Druhým údajom je pomenovanie servo; necháme to ako servo0, pretože použijeme štyri. Tretie tvrdenie uvádza, kde je pripojený signálny pin serva; toto musí byť pin PWM. Tu používame PIN3 pre prvé servo. Štvrté vyhlásenie dáva príkazy na umiestnenie servomotora v stupňoch. Ak je zadaná hodnota 30, servomotor sa otáča o 30 stupňov.
Teraz máme pozíciu serva SG90 od 0 do 180 a hodnoty ADC sú od 0 do 1023. Použijeme špeciálnu funkciu, ktorá automaticky porovnáva obe hodnoty.
sensorvalue0 = mapa (sensorvalue0, 0, 1023, 0, 180);
Tento príkaz automaticky mapuje obidve hodnoty a ukladá výsledok do celého čísla „servovalue0“ .
Takto sme riadili servá v našom projekte Robotic Arm pomocou Arduina. Skontrolujte celý kód uvedený nižšie.
Ako ovládať robotické rameno:
Užívateľ má k dispozícii štyri hrnce. A otáčaním týchto štyroch hrncov zaisťujeme premenlivé napätie na ADC kanáloch UNO. Digitálne hodnoty Arduina sú teda pod kontrolou používateľa. Tieto digitálne hodnoty sú mapované tak, aby upravovali polohu servomotora, takže poloha servomotora má kontrolu nad používateľom a otáčaním týchto hrncov môže užívateľ posúvať kĺby robotického ramena a môže chytiť alebo chytiť akýkoľvek objekt.