<< | #343 ; Ni trovu novaj eblecoj por komputilaj fotiloj |
>> |
Eblas ja uzi distancan komputilan fotilon tra Ethernet -kablo (prefere aŭtomate) per SSH kaj ankaŭ nur mane sed pli bele grafike per VNC-konekto. Ekzistas tamen pli da eblecoj. Tria bona ebleco estus por uzi la retan foliumilon (TTT-legilon) de loka komputilo por uzi la distancan fotilan komputilon. Eble mi povus alternative uzi programan lingvon Python, PHP aŭ Java? Ĉu eĉ HTML-formuloj kaj JavaScript?
Por foliumila uzo tra la komputila reto ni tamen unue muntu la faman kaj gravan programon "Apache" por la fotila frato "Simeoni". Estas facile kaj simple por munti la grandan senpagan programon el Interreto kiam estas kontakto.
sudo apt install apache2 -y
Bona informo angle en Interreto en artikolo pri "Remote Access". Vidu la tekston por la titolo "Setting up an Apache Web Server".
Eble vi opinias ke TTT-servila programo kiel "Apache" ( vidu la artikolon pri Retservilo Apache ) estas tro granda programo por modesta fotila komputilo? Ĉu mi konstruos programan mamuton? Mi tamen ne konstruos mamutoj, mi ŝatas relative simplaj kaj malgrandaj solvoj. Ĉion oni tamen ne valoras konstrui mem. Ĉi tiaj TTT-servilaj solvoj estas jam kutimaj en eĉ relative simplaj aparatoj kioj enhavas malgrandan komputilon. Oni povas uzi kaj kontroli la aparatojn per norma TTT-legilo.
En apuda foto ni uzas Simeoni loke kun la malnova 19-cola VGA-ekrano. Raspberry Pi (mallongigo RPi) ja havas nur HDMI-kontaktilon, sed ekzistas haveblaj adaptiloj por HDMI -> VGA. La VGA-ekrano tamen ne akceptas la sonan signalon kion la HDMI-konekto norme kunportas.
Kontaktiloj estas relative simplaj aparatoj, sed oni bezonas aliaj kontaktiloj por RPi varioj 3 kaj 4. La vario RPi4 havas du HDMI-kontaktiloj sed ili estas pli malgrandaj ol la HDMI-kontaktiloj por RPi3. Do oni bezonas multe da diversaj dratoj se oni uzas kaj RPi3 kaj RPi4.
Ankaŭ la kontaktiloj por la fonto de elektra energio estas aliaj por RPi3 kaj RPi4. Kredeble la pli efekta vario 4 bezonas iom pli da elektro (eĉ 3 Amperoj da kurento) ol pli malnova vario 3 (eĉ 2,5 Amperoj da kurento) kaj la fonto de elektro do estu iom pli forta por RPi4. Raspberry Pi postulas elektran tension 5,1 Voltoj kaj kondolencas en la ekrano de uzanto se la uza tensio estas pli malalta, ekzemple 5,0 Voltoj. Tio estas bedaŭrinde ĉar estus multaj liberaj fontoj de elektro por 5,0 Voltoj. Oni asertas ke RPi tamen ne funkcias fidinde se la uza tensio estas tro malalta.
RPi4 havas por elektra energio novan kontaktilon tipo USB-C kio estas tre interesa kaj moderna. Mi nepre devos iam poste skribi pli pri tio. Multaj novaj aparatoj uzos USB-C.
Kiam mi volas uzi la VGA-ekranon por RPi4, mi do bezonas du adaptiloj sinsekve. Unua adaptilo estas inter la malgranda HDMI-kontaktilo de RPi4 kaj la pli granda HDMI-kontaktilo por la antaŭe nomita adaptilo norma HDMI -> VGA.
Eble ekzistas ankaŭ aĉeteblaj adaptiloj de tipo "malgranda HDMI al VGA" tiel ke unu adaptilo jam estus sufiĉa? Mi tamen nature ne volas forlasi mian karan VGA-ekranon kiam ĝi ankoraŭ bone funkcias.
Mi muntis ĉikune ankaŭ la programan lingvon PHP7 por Apache2 de frato Simeoni. Estas potenciale tre utila laborilo por programisto.
Eblas uzi la programan lingvon el HTML-paĝoj iom same kiel JavaScript, sed la komputilo kun Apache mem plenumas la programitajn taskojn, kaj ne la kliento. La programo PHP jam plenumis sian laboron kiam la klientoj vidas la retan paĝon en ilia foliumilo. Kun JavaScript la reta paĝo por kliento tamen enhavas la programan kodon kaj la kliento plenumu la laboron de programo.
Apache2 estas iom alia programo por uzi ol la simpla tekniko al kio mi estas jam kutimiĝinta kun PC/Windows. Klare mi volas uzi ekzemple skandinaviaj literoj kaj esperantaj specialaj literoj en HTML-paĝoj. La tekstaj datumoj estas jam en Unicode -formato UTF-8, sed tion oni tamen devas aparte rakonti por Apache. Alie estus la rezulto tre malbela. Surprize PHP-programo por la TTT-legilo tamen ne bezonas tian informon, sed rekte montras laŭ UTF-8.
La operaciumo Raspbian estas ia (Debian) Linux kaj tial iom alia por uzi ol PC/Windows. Nature restas multe por lerni. Ekzemple iam estas grave kiu posedas ion datumon. La posedanto de datumo povus esti la pompa root
kaj tiam povus esti por norma uzanto pi
malfacile por uzi la datumon. Tial oni eble volas aliigi la posedanton en komanda fenestro ĉi tiel sudo chown pi: datumo.jpg
kie la magia vorto chown
devenas el angla "CHange OWNer". La unua vorto sudo
donas por norma uzanto okaze la rajtojn de "superuzanto".
En la foto dekstre ni vidas la komputilon RPi4 en sia metala ujo kaj miaj du adaptiloj por (nigra koloro) malgranda HDMI - (blanka koloro) norma HDMI - sekve al VGA-ekrano. La nigra adaptilo estas iom larĝa kaj tial ne eblas samtempe uzi 2 ekranoj kun ĉi tiu adaptilo. Do la alia malgranda HDMI-kontaktilo restas libera kaj neuzita. Nu, plej ofte oni ne bezonas du ekranoj samtempe por unu komputilo. Se oni tian nepre bezonas, oni uzu du normaj HDMI-ekranoj flanko ĉe flanko tiel ke oni ne bezonas la adaptilon.
Parenteze, ekzemplo pri du malgrandaj HDMI-ekranoj samtempe por nur unu RPi4 estas videbla en malnova artikolo #247. Tiam mi laboris kun la 3D-fotila projekto. Poste la du fotiloj de 3D-fotilo ricevis ambaŭ sian propran malgrandan HDMI-ekranon tiel ke eblos uzi la komputilojn tra VNC. Eble la 3D-fotila projekto ankoraŭ returnos ion belan tagon?
La kvara fotila frato do ricevis la bonajn programojn Apache2 kaj PHP7. La intenco tamen ja estas por uzi Simeoni kiel distanca fotilo el alia komputilo. Do ni eksperimentu.
Konekto kun TTT-legilo estas facila kiam oni scias la IP-adreson de distanca komputilo. Norme oni ne bezonas scii iaj sekretaj vortoj. Oni tamen povas vidi nur tioj datumoj kioj estas super la HTML-radiko, kio estas en la komputilo /var/www/html/
kvankam la programo Apache estas en tute alia dosiero, miamemore en /etc/apache2/
. Datumoj sub HTML-radiko estas nevideblaj por la TTT-legilo, sed mi kredas ke programo de servilo povus mem uzi datumoj kioj situas sekure sub la HTML-radiko. Tamen mia intenco nun estas ja ke la TTT-servilo servu nur la sekuran alian komputilon sen konekto kun Interreto kaj la malamika ekstera mondo kaj tial ekzistas nenia vera bezono por kaŝi informon sub HTML-radiko.
Estis facile por uzi la programon Apache el alia komputilo tra kruce konektita Ethernet -kablo en la distanca komputilo kaj vidi la unuan malgrandan paĝon kion mi konstruis por datumo /var/www/html/koe.html
kaj kion oni povis loke vidi en reta foliumilo kiel http://localhost/koe.html
kaj en alia komputilo kiel http://[IP-adreso]/koe.html
Sekve tamen aperis surpriza problemo. Konekto kun SSH kaj VNC unue tute ne sukcesis, kvankam ili estis loke selektitaj por la distanca fotila frato kaj jam antaŭe bone funkciis. Mi supozas ke la novaj muntadoj (Apache & PHP) iel konfuzis la SSH-ŝlosilojn? Nu, mi startis Simeoni denove kiel loka komputilo kun propra ekrano kaj donis novan sekretan vorton - kio fakte estis tute la sama kiel la malnova. Sekve la sistemo senprobleme funkciis kiel distanca komputilo.
Kiam ni uzas SSH aŭ VNC konekton el alia komputilo al la distanca fotila komputilo, ni ja unue bezonas la sekretan vorton de distanca komputilo kaj sekve ni estos fakte ene en la distanca komputilo kiel norma uzanto, kvankam ni uzas la alian komputilon. Tio estas iam malfacile por memori. Ekzemple la komanda fenestro aperas praktike la sama se ni uzas la lokan komputilon aŭ la distancan komputilon dum SSH tra la loka komputilo. Nu, la kvalito de grafiko certe estas iom pli malbona en VNC-fenestro. Ni povas fari dum SSH kaj VNC ĉion kio eblus por la norma uzanto de distanca komputilo.
Tamen HTTP -konekto kun TTT-legilo al la TTT-servilo de distanca komputilo estas alia afero. Ni norme ne bezonas la sekretan vorton. En TTT-legilo eblas uzi nur tion kio estas proponita super la HTML-radiko. Oni tute ne estas norma uzanto en la distanca komputilo kaj datumoj sub la HTML-radiko de TTT-servilo estas malpermesitaj. Nur tio eblas kion la paĝoj precipe permesas.
En maldekstra foto ni vidas la lokan komputilon RPi4 kio havas propran ekranon kaj la "distancan" (kvankam fizike proksiman) fotilan komputilon RPi3 kaj la kruce konektitan kablon inter ili. La ruĝa parto en RJ-45 kontaktilo aliigas la norman blankan Ethernet -kablon al kruca kablo por facila komunikado inter la du komputiloj. Tiel ni ne bezonas "Ethernet switch" inter la du komputiloj.
Mi firme esperas kaj kredas ke kun ĉi tioj novaj muntadoj estos multe pli da bonaj eblecoj por foti per distanca fotilo. Norme la distanca fotila komputilo ne bezonas scii la IP-adresojn de aliaj komputiloj de loka reto. Eblas uzi la distancan fotilan komputilon el diversaj PC- kaj RPi-komputiloj.
Certe mi devas konstrui novaj programoj. Mi devas pli bone studadi, eksperimenti kaj lerni por uzi la programojn Python, PHP, Java, JavaScript, ...
Sendube mi ankaŭ devas pli bone lerni pri la operaciumo Linux kaj speciale Raspbian. Mi devas pli bone koni la TTT-servilon Apache2.
Nu, sendube tre multe da laboro por trovi bonaj praktikaj solvoj. Multe da akvo devas flui en la loka rivero "Kokemäenjoki" antaŭ ol distancaj fotilaj komputiloj fluente funkcios kune.
Bona espero tamen ekzistas. Multe da bonaj eblecoj. Abunde por eksperimenti kaj testi. Ne tre multe nocas kaj malhelpas ke mi estas nur malriĉulo. Eĉ malriĉulo iam povas sukcesi.
Eblas foti per multaj manieroj kun la distanca RPi-fotilo kaj por poste transigi la datumojn de fotoj al loka komputilo per SSH aŭ VNC.
Eblas foti almenaŭ per loka Python-programo kiel ni antaŭe vidis. Kaj certe eblas foti per la loka programo raspistill
kvankam la supoza grando de fotoj norme estas por mi iom troa kaj ekscesa.
Pli realisma grando por foto estus 640x480 rastrunuoj kio estas multe pli granda ol la fotoj en ĉi tio artikolo. La multflanka programo helpas, ĉi tiel oni fotas en komanda fenestro per la programo raspistill
el supoza situo /home/pi/
de norma uzanto pi
foton al la datumo /home/pi/Kuvat/ekzemplo.jpg
:
raspistill -w 640 -h 480 -o Kuvat/ekzemplo.jpg
Mi kredas ke la fotilo uzas fakte ĉiaj siaj rastrunuoj kaj la tutan fotan angulon por foti en grando 640x480. Mi tamen ne estus tiel certa pri pli malgrandaj fotoj.
Fotoj de tio iom malgranda grando 640x480 da rastrunuoj estas proksimume nur 250 KB kiel iom pakitaj JPG-datumoj. Per supozaj valuoj la grando de foto estus pli ol 4 MB, do pli ol 4000 KB.
Se ni tamen kiel uzanto pi
volas foti al dosiero kion posedas la uzanto root
, ekzemple por TTT-servilo rekte al dosiero /var/www/html/webcam/
(kion oni unue mem kreu per komando sudo mkdir ...
), ni devas uzi la vorton sudo
kaj ni povus skribi por tio la sekvantan tekstan datumon webcam.sh
:
#!/bin/bash DATE=$(date +"%Y-%m-%d_%H%M") sudo raspistill -w 640 -h 480 -o /var/www/html/webcam/$DATE.jpg
Aparte ni donu en komanda fenestro pli da rajtoj por la nova datumo: chmod +x webcam.sh
kaj poste ni povos uzi la datumon por foti simple en komanda fenestro : ./webcam.sh
kaj la rezulto estos en la nomita dosiero. En la nomo de datumo estas la tempo (ekzemple "2022-12-31_1234.jpg") kiam la komputilo fotis, sed nur unu foto en minuto. Tio angla formato por nomo estas praktika ĉar eblas facile ordigi la diversajn datumojn laŭ dato kaj tempo.
La bazo de supra ideo devenas el teknika universitato. La teknika universitato tamen ne komprenas ke la norma CSI-konektita fotilo de RPi ne estas ia USB-fotilo kaj tial ne funkcias per programo 'fswebcam'. Nu, la teknika universitato ankaŭ ne scias ke 'servo' estas nenia 'stepper' -motoro kaj ke la distanco el optika centro de objektivo al fotila sensilo egalas la fokusan distancon f
nur kiam la objektivo estas enfokusigita al infinito. La politika linio de teknika universitato ne plaĉis por mi multe kaj la altlernejoj tute ne akceptis miaj ideoj por projektoj. Esperanto estis tie nekonata kaj ne akceptita. Prefere mi do lernu kaj laboru ekster la tiel nomitaj altlernejoj, kioj fakte ne estas tre altaj.
Eblas vidi la retajn HTML-paĝojn de distanca komputilo rekte en la foliumilo de loka komputilo tra Ethernet -kablo kiam oni scias la IP-adreson. Alternative mi povas komenci la foliumilon de distanca komputilo tra VNC-konekto por vidi la samajn paĝojn (per vorto localhost anstataŭ la IP-adreso) en la VNC-fenestro de loka komputilo.
Eblas uzi la distancan komputilon per teksto tra SSH-konekto en komanda fenestro de loka komputilo. Eblas uzi la komandan fenestron de distanca komputilo dum bele grafika VNC-konekto en la VNC-fenestro de loka komputilo.
Kredeble eblos uzi la programajn lingvojn kaj la mem konstruitajn programojn de distanca fotila komputilo el alia komputilo ekzemple tra VNC-konekto. La fotilaj programoj devas labori en la distanca komputilo, sed ekzistas eblecoj por uzi kaj funkciigi ilin el alia komputilo. La alia komputilo kredeble povas uzi propraj programoj por komunikadi kun multaj distancaj fotiloj preskaŭ samtempe. Klare estos ioma prokrasto, sed tio norme ne malhelpas.
Eblos aŭtomatigi la fotilan procezon per bonaj programoj ... ion belan tagon. Eble mi lernos por programi en loka komputila reto eĉ per "sockets" por tuj vidi filmon el distanca fotilo en "reala tempo"? Ĉi tio estas la stilo de nia nacio. Ni mem loke konstruas, mem planas kaj mem efektivigas. Ni respektas lokan propran scipovon.
Mi estas tre esperema. Progreso progresos. Ion belan tagon ni multe pli scios. La morgaŭo de nia nacieto estos hele luma.
La nova fotilo por Simeoni ankoraŭ ne ĉeestas. La malnova fotilo estas norma vario 2.1, sed mi volus munti "neoficialan" fotilon de pli granda fota angulo, diagonale 200°. Germanaj JOY-IT piratoj ilin produktas?
Nu, klare mi volas ankaŭ lerni por telestirade direktigi fotilon per servo- kaj stepper -motoroj kaj per programoj en la distanca fotila komputilo kaj eble uzi (IR?)LED-lumon por lumigi proksiman fotitan celon, sed tioj revoj devas nun atendi.
Jes, provizore nenia hasto por aĉeti novaj fotiloj. Eĉ malriĉulo povas sukcesi. Simpla kaj malgranda estas bona.
Multe da laboro en novaj ideoj, programado, lernado, eksperimentado.
Kaj certe fine ..........
NI VENKOS!
La Ambasadoro en Finnlando de sendependa nacio Mueleja Insulo |