==== Pan-Tilt jednotka Megarobot ==== Pan-Tilt jednotka se skládá vždy ze dvou pohonů AI-701 firmy Megarobotics. Pohon AI-701 tvoří servo, které je řízeno příkazy prostřednictvím sběrnice RS-232. Samotné servo přímo interpretuje příkazy. Mezi PC a pohonem není prostředníkem žádná řídící jednotka. V případě PT jednotky jsou na jedné sběrnici RS-232 počítače připojeny vždy dva pohony. Příjemce řídícího příkazu je v něm identifikován identifikačním číslem (ID). V tomto případě byly pohony nastaveny tak, aby pohon pro otačení v azimutu (vodorovně) měl ID == 0 a pohon pro elevaci (svisle) měl ID == 1. **Neprovádějte změny ID** -- můžete tak snadno způsobit nefunkčnost zařízení. Ze stejných důvodů je také zakázáno měnit komunikační rychlost sériového rozhraní (Baudrate). * Dodavatel ([[http://www.megarobot.net/|MEGAROBOT.NET]]) poskytuje manuál k pohonu {{:help:common:aimotor701_manual_megarobot.pdf|AI-701}}. * K snadnému testování pohonu lze použít program "AI-MOTOR Tool v1.26", který je již na pracovišti nainstalován. * K programu doporučujeme číst krátky popis "{{:help:common:zaciname_s_aimotorem.pdf|Zacínáme s AI-MOTORem}}" , který poskytuje dodavatel ([[http://www.megarobot.net/|MEGAROBOT.NET]]). Tento poisis se zabývá prvními kroky práce s pohonem ve zmíněném programu. ==== Ovládání jednotky ==== Pan-Tilt jednotku lze z MATLAbu ovládat pomocí [[http://www.mathworks.com/help/matlab/matlab_external/getting-started-with-serial-i-o.html|Serial Port I/O]]. - Pan-Tilt jednotka se inicializuje následující sekvencí příkazůser = serial('COM1'); set(ser,'BaudRate',57600); fopen(ser); - Ovládat jednotku lze zapisováním příslušných řídících bytů (viz {{:help:common:aimotor701_manual_megarobot.pdf|manuál}}) do souboru ''ser'' pomocí příkazu ''fwrite''. - Pro ulehčení práce s ovládáním jednotky je možno použít funkci ''ptmove'':ptmove(ser, pan_pos, tilt_pos); kde ''pan_pos'' udává absolutní úhel otočení kolem svislé osy, ''tilt_pos'' potom absolutní úhel otočení kolem vodorovné osy. Rozsah hodnot pro ''pan_pos'' i ''tilt_pos'' je 0 až 254, pokrývající cca 80 úhlových stupnů v daném směru. Pro nastavení jednotky do základní polohy, tedy do polohy, kdy optická osa kamery je kolmá na plochu LCD obrazovky, použijte hodnoty ''pan_pos==127'', ''tilt_pos==127''.function ptmove(ser, pan_pos, tilt_pos, speed) if nargin<4 speed = 3; end sermove(ser, speed, 0, pan_pos); sermove(ser, speed, 1, tilt_pos); end function sermove(ser, speed, pantilt, pos) b1 = uint8(hex2dec('ff')); b2 = uint8(bitshift(uint8(speed), 5) + uint8(pantilt)); b3 = min(max(uint8(pos), uint8(0)), uint8(254)); b4 = uint8(bitand(bitxor(b2, b3), uint8(hex2dec('7f')))); fwrite(ser, [b1 b2 b3 b4]); end - Pro skončení práce s jednotkou ji deinicalizujte příkazyfclose(ser); delete(ser);