==== 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);