Dvojosová kolíska na kameru ovládaná joystickom
Zo stránky SensorWiki
Záverečný projekt predmetu MIPS / LS2024 - Viacheslav Matsibora a Dmytro Fietisov
Dvojosová kolíska na kameru ovládaná joystickom
Držiak kamery pre servomotory SG90, MG90 a pod. Pohyb namontovanej kamery je možný v dvoch osiach (tzv. pan and tilt držiak kamery). Súčasťou balenia sú 4 kusy plastových komponentov a skrutky s maticami. Pre plnú funkčnosť budeme potrebovať 2 servomotory.
Takže tu budeme používať dva spôsoby riadenia servopohonmi: prvý, keď servopohony nasledujú polohu joysticku a pohybujú sa, kým posúvame joystick, druhý - servopohony začnú pohybovať smerom, kam ukazuje joystick, a zostanú tam, kým opäť neposunieme páčku alebo nezmeníme smer.
Literatúra:
Analýza a opis riešenia
Celý projekt obsahuje dosku Arduino, dvojosový joystick, dve servá sg90, prepojovacie vodiče a samotný držiak kamery.
Použitý joystik má 5 pinov (Vcc, GND, Xaxis, Yaxis a kolík tlačidla). Joystick má 2 centrované potenciometre, pri napájaní produkujú analógový signál a pri použití s Arduino má nasledujúce hodnoty: „0-1023“ a keďže sú v pohotovostnom režime vycentrované, vytvárajú hodnoty okolo „512“ a tlačidlo má digitálny výstup 0/1.
Musíme byť opatrní s joystickom, pretože sú dosť lacné a môže fungovať iba jedna os, čo sa stalo v našom prípade. Na kontrolu osej sme použili program Putti.
Ďalej budeme hovoriť o servomotoroch.
Servomotory majú tri vodiče: GND/VCC/signál, v tomto prípade je napájaný 5V z Arduina, môžme použiť 9V alebo 12V, ale najprv si prečítajme datasheet list servomotora, aby sme poznali podporované napätie. Externý zdroj napájania musí mať spoločnú zem. Mame take charakteristiky motorčekov:
Napätie: 4V ~ 6V Rýchlosť: 0,1 s/60 (4,8 V); 0,08 s/60 (6V) Krútiaci moment: 1,8 kg (4,8 V) Uhol natočenia: 180° Hmotnosť: 13,4g Rozmery: 23 mm x 12 mm x 29 mm
Algoritmus a program
Algoritmus programu je....
#include <avr/io.h>
int main(void)
{
unsigned int measuredValue;
while (1)
{
/* relax */
}
return(0);
}
#include <avr/io.h>
void adc_init(void); // A/D converter initialization
unsigned int adc_read(char a_pin);
Pridajte sem aj zbalený kompletný projekt, napríklad takto (použite jednoznačné pomenovanie, nemôžeme mať na serveri 10x zdrojaky.zip:
Zdrojový kód: zdrojaky.zip
Overenie
Všetko sme spojili, ako je popísané vyššie. Pomocou údajového listu sme skontrolovali napäťové charakteristiky našich dielov a vyšlo toto:
V jednom prípade polohy servopohonov nasledujú polohu joysticku a pohybujú sa, kým posúvame joystick, druhý - servopohony posúvať smerom, kam ukazuje joystick, a zostanú tam, kým opäť neposunieme páčku alebo nezmeníme smer .
Video:
Kľúčové slová 'Category', ktoré sú na konci stránky nemeňte.