- Požadované komponenty
- Konstrukce robotického ramene
- Schéma zapojení a pracovní vysvětlení:
- Jak ovládat robotické rameno:
V tomto tutoriálu navrhneme robotické rameno založené na Arduino Uno z některých kartonů a servomotorů. Celý proces výstavby byl podrobně vysvětlen níže. Zde v tomto projektu je Arduino Uno naprogramováno na ovládání servomotorů, které slouží jako klouby robotického ramene. Toto nastavení také vypadá jako robotický jeřáb, nebo ho můžeme převést na jeřáb provedením několika snadných vylepšení. Tento projekt bude užitečný pro začátečníky, kteří se chtějí naučit vyvíjet Simple Robot za nízkou cenu nebo se jen chtějí naučit pracovat s Arduino a servomotory.
Toto robotické rameno Arduino lze ovládat čtyřmi k němu připojenými potenciometry, každý potenciometr se používá k ovládání každého serva. Tato serva můžete pohybovat otáčením hrnců, abyste vybrali nějaký předmět, s určitou praxí můžete snadno vybrat a přesunout objekt z jednoho místa na druhé. Použili jsme zde serva s nízkým točivým momentem, ale k vyzvednutí těžkých předmětů můžete použít výkonnější serva. Celý proces byl na konci dobře ukázán ve videu. Podívejte se také na naše další projekty v oblasti robotiky.
Požadované komponenty
- Arduino Uno
- 1000uF kondenzátor (4 kusy)
- 100nF kondenzátor (4 kusy)
- Servomotor (SG 90 - čtyři kusy)
- 10K pot - variabilní rezistor (4 kusy)
- Napájení (5V - nejlépe dva)
Servomotor
Nejprve si povíme něco o servomotorech. Servomotory se používají hlavně tam, kde je potřeba přesný pohyb nebo poloha hřídele. Nejsou navrženy pro vysokorychlostní aplikace. Servomotory jsou navrženy pro nízké otáčky, střední točivý moment a přesnou polohu. Takže tyto motory jsou nejlepší pro navrhování robotické paže.
Servomotory jsou k dispozici v různých tvarech a velikostech. Budeme používat malé servomotory, zde používáme čtyři serva SG90. Servomotor bude mít hlavně vodiče, jeden je pro kladné napětí, druhý pro zem a poslední pro nastavení polohy. ČERVENÝ vodič je připojen k napájení, černý vodič je připojen k zemi a ŽLUTÝ vodič k signálu. Projděte si tento návod Ovládání servomotoru pomocí Arduina a dozvíte se o něm více. V Arduinu máme předdefinované knihovny pro ovládání serva, takže je velmi snadné ovládat servo, které se naučíte spolu s tímto tutoriálem.
Konstrukce robotického ramene
Vezměte rovný a stabilní povrch, například stůl nebo tvrdou lepenku. Dále umístěte servomotor doprostřed a přilepte jej na místo. Ujistěte se, že stupeň otáčení je v oblasti uvedené na obrázku. Toto servo slouží jako základna paže.
Na první servo položte malý kousek lepenky a potom na tento kousek lepenky položte druhé servo a přilepte jej na místo. Otočení serva musí odpovídat diagramu.
Vezměte několik kartonů a nakrájejte je na kousky 3 cm x 11 cm. Ujistěte se, že kus není změkčený. Na jednom konci vyřízněte obdélníkový otvor (ponechejte 0,8 cm zespodu) jen tak, aby se do něj vešlo další servo, a na druhém konci upevněte servopřevodovku pevně šrouby nebo lepidlem. Poté namontujte třetí servo do první díry.
Nyní odřízněte další kartonový kus s délkami zobrazenými na obrázku níže a na spodní část tohoto kusu přilepte další ozubené kolo.
Nyní přilepte čtvrté a poslední servo k okraji druhého dílu, jak je znázorněno na obrázku.
S tím vypadají dva kusy dohromady.
Když připojíme toto nastavení k základně, mělo by to vypadat,
Je to téměř hotové. Musíme jen udělat hák, aby chytil a vybral předmět jako robotická ruka. Pro háček odřízněte další dva kusy lepenky o délkách 1cmx7cm a 4cmx5cm. Slepte je dohromady, jak je znázorněno na obrázku, a konečný převod nalepte na samý okraj.
Namontujte tento díl na vrchol a tím jsme vytvořili naši Robotickou ruku.
Tím byl dokončen náš základní design robotického ramene a tak jsme postavili naše levné robotické rameno. Nyní připojte obvod v prkénku podle schématu zapojení.
Schéma zapojení a pracovní vysvětlení:
Níže je uvedeno zapojení obvodu pro Arduino Uno Robotic Arm.
Napětí napříč proměnnými odpory není zcela lineární; bude to hlučný. Aby se tento šum odfiltroval, jsou kondenzátory umístěny přes každý odpor, jak je znázorněno na obrázku.
Nyní budeme napájet napětí dodávané těmito proměnnými rezistory (napětí, které představuje řízení polohy) do ADC kanálů Arduina. K tomu použijeme čtyři ADC kanály UNO od A0 do A3. Po inicializaci ADC budeme mít digitální hodnotu hrnců představující pozici potřebnou uživatelem. Vezmeme tuto hodnotu a porovnáme ji s pozicí serva.
Arduino má šest kanálů ADC. Pro naši robotickou ruku jsme použili čtyři. UNO ADC má 10 bitové rozlišení, takže celočíselné hodnoty se pohybují od 0-1023 (2 ^ 10 = 1024 hodnot). To znamená, že bude mapovat vstupní napětí mezi 0 a 5 volty na celočíselné hodnoty mezi 0 a 1023. Takže pro každou (5/1024 = 4,9 mV) na jednotku. Další informace o mapování úrovní napětí pomocí kanálů ADC v Arduinu najdete zde.
Nyní, aby UNO převádělo analogový signál na digitální signál, musíme použít ADC kanál Arduino Uno pomocí níže uvedených funkcí:
1. analogRead (pin); 2. analogReference (); 3. analogReadResolution (bity);
Kanály Arduino ADC mají výchozí referenční hodnotu 5V. To znamená, že můžeme poskytnout maximální vstupní napětí 5V pro převod ADC na jakémkoli vstupním kanálu. Vzhledem k tomu, že některé senzory poskytují napětí od 0 do 2,5 V, získáme s referenční hodnotou 5 V menší přesnost, takže máme instrukci, která nám umožňuje změnit tuto referenční hodnotu. Takže pro změnu referenční hodnoty máme „analogReference ();“
Ve výchozím nastavení dostaneme maximální rozlišení ADC desky, které je 10 bitů, toto rozlišení lze změnit pomocí instrukce („analogReadResolution (bits);“).
V našem robotickém ručním obvodu jsme ponechali toto referenční napětí na výchozí hodnotě, takže můžeme číst hodnotu z kanálu ADC přímým voláním funkce „analogRead (pin);“, zde „pin“ představuje pin, kde jsme připojili analogový signál chceme číst „A0“. Hodnotu z ADC lze uložit na celé číslo jako int SENSORVALUE0 = analogRead (A0); .
Nyní pojďme mluvit o SERVO, Arduino Uno má funkci, která nám umožňuje ovládat polohu serva pouhým zadáním hodnoty stupně. Řekněme, že pokud chceme, aby servo bylo na 30, můžeme přímo představovat hodnotu v programu. Soubor záhlaví SERVO ( Servo.h ) se interně stará o všechny výpočty poměru daně.
#zahrnout
Zde první příkaz představuje soubor záhlaví pro ovládání SERVO MOTOR. Druhým výrokem je pojmenování serva; necháme to jako servo0, protože použijeme čtyři. Třetí prohlášení uvádí, kde je připojen signální kolík serva; to musí být pin PWM. Zde používáme PIN3 pro první servo. Čtvrté prohlášení dává příkazy pro polohování servomotoru ve stupních. Pokud je zadáno 30, servomotor se otáčí o 30 stupňů.
Nyní máme pozici serva SG90 od 0 do 180 a hodnoty ADC jsou od 0-1023. Použijeme speciální funkci, která automaticky odpovídá oběma hodnotám.
sensorvalue0 = mapa (sensorvalue0, 0, 1023, 0, 180);
Tento příkaz mapuje obě hodnoty automaticky a ukládá výsledek do celého čísla 'servovalue0' .
Takto jsme ovládali serva v našem projektu Robotic Arm pomocí Arduina. Zkontrolujte celý kód níže.
Jak ovládat robotické rameno:
Uživateli jsou k dispozici čtyři hrnce. A otáčením těchto čtyř nádob poskytujeme proměnné napětí na ADC kanálech UNO. Digitální hodnoty Arduina jsou tedy pod kontrolou uživatele. Tyto digitální hodnoty jsou mapovány tak, aby upravovaly polohu servomotoru, takže poloha servomotoru má kontrolu nad uživatelem a otáčením těchto hrnců může uživatel pohybovat klouby robotické paže a může vybrat nebo uchopit jakýkoli předmět.