Projekt 12″

Luděk H↻ 25. 2. 2024

Modulární systém ovládání víceosých posuvů III

137μGUN
Luděk H

Po několika měsících se mi konečně povedlo prokousat sto dvaceti osmi snímky první animované produktovky, tedy s možností rotace ve svislé ose o 360°. Byl to nápad na poslední chvíli, takže focení víc než provizorní včetně narychlo připravené metrové točny z dřevotřísky.

Aneb μGUN vlastního návrhu s ručně zpracovanými profily. Převážně použitý byl hliník tvaru L, 120x80x10 a horní prstence držící tubus jsou z trubky 100x10. Opracované díly z hliníku AW 6060, o váze cca 10.5 kg, jsem nakonec nechal tvrdě eloxovat.

Určeno pro profocování metodou stack and stitch, tedy s možností profotit do hloubky více míst v ploše. Ne jen jedno místo jako u běžného posuvu pro skládané makro nebo mikro. Umožňuje to v tomto případě tříosý posuv. Rozsah posuvů je cca 35 mm v každé z těchto tří os. Tedy možnost profotit "objem" až 35x35x35 mm. Primárně byla sestava připravena pro mikroskopický objektiv se zvětšením 20x, se záběrem velikosti cca 1.7mm x 1.1 mm, to znamená možnost profotit objekt klidně až mnoha statisíci snímků. To už je takové množství, že by 35mm rozsah posuvů neměl být nikdy omezující. K omezení by mohlo dojít jedině tehdy, že by se použil mikroskopický objektiv s mnohem menším zvětšením.

V budoucnu ještě uvažuji o rozšíření počtu os přidáním dalších dvou až tří (rotace, klopení, výtah) na přední část zařízení, pod upnutí scény. Takto by se mohly možnosti rozrůst na focení miniaturních předmětů ze všech stran, což by přidalo možnost detailní 3D vizualizace nafoceného objektu, a to ať už na obrazovce nebo třeba vytištěním na 3D tiskárně.

137Předešlé pokračování vyplynulo z problémů, tentokrát jsou to především změny rozšiřující možnosti. Jedná se o přidání služby pro ovládání závěrky fotoaparátu spínáním GPIO pinu. Aby byla na jednom portu služba využita víc než jen k "mačkání spouště", je k ní přidána i druhá možnost, ukládání / načítání nastavení.

Na přání přidávám rozpracovanou aplikaci - komplexnější HTML stránku. Aneb když se do něčeho člověk pustí, je stále co vylepšovat. I toto třetí pokračování tedy není posledním.

Pozn.: po zjištění, návod a služby jsou bez problémů pro Rapberry Pi OS verze Bullseye. Při zkoušce s novější verzí, Wormbook, není možné některé kroky provést a služby nefungují korektně. Časem možná provedu aktualizaci pro novější verze RPi OS.

Začal jsem na Raspberry s porty 1210, 1211, 1212 pro posuvy na osách X, Y a Z (resp. úplně první byla pouze osa Z na portu 1212). Nyní přidávám použití portu 1205. Volba tohoto čísla není náhodná, ale je zvoleno proto, že číslo 5 na konci bývá numerické vyobrazení písmene S (Shutter). Služba na portu 1205 poslouží pro ovládání závěrky fotoaparátu a pro ukládání nastavení (Store Settings). Připravoval jsem pro ovládání mikroposuvu primárně WPF aplikaci pro Windows, ale přes své výhody (využití v aplikaci Canon SDK současně s ovládáním mikroposuvů) je zde jedno velké omezení, možnost ovládat posuv jen pomocí PC. Naopak HTML stránka je mnohem univerzálnější a může být použita na jakémkoli systému. Je možné ji otevřít v jakémkoli zařízení jako chytrý telefon, tablet a samozřejmě i běžné PC. Stačí se jen zařízením s otevřenou HTML stránkou připojit k lokální síti, kde je připojeno i samotné Raspberry Pi (ve stránce musí být správná IP adresa), a pak vše funguje jak má.

Ukládání nastavení je potom logickou volbou jak si zapamatovat a hlavně kde si zapamatovat nastavení hodnot používaných HTML stránkou. Základní nastavení IP:1205 je nutné provést ručně, a pak je možné použít tuto službu pro načtení všech ostatních uložených hodnot.

Rozhodně to nevylučuje provést změnu výchozích hodnot přímo, tedy editací HTML stránky. Ale i proto, že je systém ovládání připravován jako modulární, týká se určité nastavení vždy také určitého modulu. Pokud by bylo k ovládání více sestav (nebo různé objektivy s různou hloubkou ostrosti a podobně), stačí použít jeden HTML soubor a potřebná nastavení pro jiný modul získat načtením z tohoto jiného modulu nebo načtením jiného nastavení. Je to jednodušší než si buď každé nastavení pamatovat nebo si udržovat několik HTML souborů na několika řídících zařízeních - několik souborů na PC, několik na tabletu, a tak dál.

Udržet si nastavení byl také výchozí stav relativní nakrokované pozice. To ale představovalo diskové operace, které působily problémy, a to i po přechodu na USB mass storage. S novou verzí jsem provedl změnu a relativní pozice již není trvale uložena. Pokud dojde ke ztrátě napájení Raspberry Pi, dojde také ke ztrátě pozice. Tedy po zapnutí je vždy pozice nulová. Tuto relativně nahodile hrozící ztrátu, tedy zřídkavou nevýhodu, nahrazuje výhoda velmi často využívaná, pozici je možné získat ve velmi rychlém intervalu a bez narušení plynulosti krokování. Dříve bylo rychlejší krokování díky diskovým operacím vždy narušené při dotazu na pozici. Aktuální řešení pracující pouze v RAM nenarušuje stabilitu krokování, a tak je možné posílat dotazy na pozici dle libosti.

Zmíněnou nevýhodu navíc ještě upozaďuje rozšíření možností přidáním příkazu pro nastavení relativní pozice (/setpos).

Všechny dostupné funkce navíc aktivně využívá nová (již delší dobu rozpracovaná) aplikace vytvořená jako volně dostupná HTML stránka. Aplikace má komplexní možnosti nastavení, tato nastavení je také možné ukládat nebo načítat a pokud dojde ke ztrátě relativní polohy (výpadek Raspberry Pi) bude možné obnovit relativní pozici díky udržování poslední známé hodnoty v cookies. I případný výpadek proudu by tak nemusel znamenat nutnost fotit vše znovu, ale jsou takto připravovány možnosti jak minimalizovat ztráty a navázat na focení před výpadkem proudu. Co do komplexnosti umožňuje ovládání až pěti osého systému spolu se závěrkou fotoaparátu.

Pro jednodušší instalaci - jeden Make file, kdy příkaz "sudo make" vše připraví

Postup přípravy Raspberry Pi od čisté paměťové karty:

1. krok - stažení image aktuální verze Rapberry Pi OS

2. nahrání image systému (ve Windows např. programem Rufus) na flash disk

3. Nastavení konfigurace Raspberry Pi v záložce interfaces: Screenshot konfigurace

4. Dále provádím nastavení pomocí:

sudo nano /etc/network/interfaces

doplněním následujících řádků na konec souboru interfaces:

auto wlan0
iface wlan0 inet dhcp
  wpa-scan-ssid 1
  wpa-ap-scan 1
  wpa-ssid *ssid*
  wpa-psk *pw*

kde *ssid* je název wifi sítě a *pw* je heslo do této sítě.

5. vypnutí bluetuth

sudo rfkill list all
sudo rfkill block 1

6. aktualizace

sudo apt-get update
sudo apt-get dist-upgrade

7. povolení přesné a automatické synchronizace času z internetu

sudo apt install ntp
sudo systemctl enable ntp
sudo timedatectl set-ntp 1

8. instalace knihovny bcm2835

knihovna pro BCM 2835

9. instalace služeb pro ovládání motorů

Např. přímo z konzole zadáním adresy se zip souborem s příkazy pro stažení a rozbalení:

wget https://12in.cz/files/zip/33/Final_2021-02-28.zip
unzip Final_2021-02-28.zip

9a. instalace služeb pro osy X, Y, Z, závěrku a ukládání/načítání nastavení

sudo make

9b. nebo instalace služeb pro osy R a T

sudo makr rt


Díky tomuto zjednodušení nyní považuji za zbytečné zálohovat si image USB flash disku.

Odkazy na zdroje

zip   •   Final_2021-02-28.zip

Zdrojové kódy modulárního systému ovládání

Aktualizovaný balíček programů kolem krokování pomocí Raspberry Pi přes HTTP REST příkazy. Tato verze rozšířuje možnosti a zjednodušuje instalaci.

xml   •   HTML5RPi.html

HTML5RPi

HTML stránka s aplikací pro ovládání posuvů

Další odkazy

knihovna pro BCM 2835

http://www.airspayce.com/mikem/bcm2835

Knihovna v jazyce C pro Broadcom BCM 2835 používaný v Raspberry Pi. Je možné použít i pro novější BCM 2837.

png   •   Raspberry-Pi-Configuration.png

Screenshot konfigurace

Screenshot nastavení Raspberry Pi v záložce interfaces.