Van Lite naar desktop, Gambas3-ide en VNC, database
RadioLab, Stockpi ** June 29th, 2023 by wim.webgang **Onderaan de links naar downloads en andere verwijzingen.
3 Pi’s in de studio
Eigenlijk was het de bedoeling vandaag de database server te installeren, maar we moeten eerst even afstemmen met de stand van zaken op onze verschillende pi’s.
We hebben drie pi’s in de studio: (foto rechts)
1. Vooraan zichtbaar: pi met touchscreen, Pi 4, 8GB
2. Midden (boven het koffiekopje): Pi 3B+ met Lite OS (geen destkop, enkel commandolijn), de bediend wordt vanop de laptop via ssh.
3. Boven achteraan: in de achtergrond aangesloten op een groot scherm, waar Raspberry Pi OS, en Gamba3 op draait met een voorbeeldprogramma.
(examples/Database/PictureDatabase)
1. Stockpi case
Silvia stelt haar nieuwe behuizing voor : een volledig voorzien pakket van smartipi, met kabeltjes, afstandsbusjes enz. kost rond 40 euro, is zeer volledig pakket met uitsparingen voor alle aansluitingen, en achteraan een ventilatoropening voor de bijgeleverde (en ingebouwde) ventilator. De Raspberry Pi 4 (met 8 Gig geheugen?) wordt via een kabeltje naar een poort op de buitenkant voorzien van stroom (usb-c).
Ook de Raspberry Pi cameramodule kan in de behuizing gemonteerd worden.
Daar een standaard 7″ Raspberry Pi scherm bij (touchscreen), en een VNC verbinding…en je bent vertrokken.
Silvia heeft een recenter systeem dan op onze eerste proof of concept machine, en merkt op dat de daarin gebruikte library/software voor de camera ondertussen verouderd is, en vervangen door een andere.
Bij die VNC verbinding valt op dat je enkel het bestaande scherm kan overnemen; als dat klein is, en een programma meer plaats nodig heeft op het scherm, blijft dat zo (bv de Gambas IDE = programmeeromgeving).
Het programmeren op de pi vanop een andere pc via VNC is dus niet zo handig omdat de schermlimiet blijft.
Een extra scherm aansluiten aan de ingebouwde pi is niet zomaar mogelijk: de aansluiltingen zijn intern gemaakt naar het touch screen. Wim herkent die situatie ook van de Joy-Pi, die in een experimenteerkoffer ingebouwde Pi.
Ook de audio-uitgang van de Pi is niet meer bereikbaar, maar je kan wel in de behuizing een kabeltje aansluiten en dat naar buiten leiden.
En de SD kaart is net bereikbaar van de buitenkant.
2. Lite
Marthe heeft een “headless” Pi, die ze bedient via een ssh verbinding vanop haar laptop, zodat ze er geen scherm voor nodig heeft. Je kan op de “Lite”, een systeem zonder desktop ook programma’s draaien die “command line” zijn.
Je kan met Gambas zo’n CLI programma’s maken:
Gambas3 menu, Nieuw project
, kies “Command Line application
” (“terminal project”), je kiest de map waarin je dat wil zetten, bv /home/webgang/dev/gb3
, je kiest naam bv programma
en er opent een project met als code voor het printen van “Hello world” op het scherm. Het project is bewaart in een map met de programma naam.
Gambas3 menu, maak uitvoerbaar programma: nu wordt een programma.gambas
gemaakt in de map die je kiest in dat venster.
Gambas mappenstruktuur:
- de programmeeromgeving is geïnstalleerd in het systeem, dus die vind je niet bij je eigen bestanden in /home/gebruiker.
- de voorbeeldprogramma’s worden niet altijd automatisch geïnstalleerd, check je softwarebeheerder om na te installeren (zoek gambas3..).
- Gambas gebruikt een project, en het maakt een uitvoerbaar programma (extentie .gambas), en je kan je project “inpakken” tot.tar.gz
bestand om het te sturen, delen, kopieren, backupen..
- Dus we hebben 3 mappen nodig; bv:Ik begin in:
/home/webgang/dev/
gb3/prj –> hier ga je werken, programmeren in het project met broncode, iconen, helpfiles, enz. Gambas maakt er zelf “hidden directories” aan waar de broncode terechtkomt.
gb3/run –> hier zet je het uitvoerbare programma (map kiezen bij compileren naar uitvoerbaar programma) bvprogramma.gambas
.
gb3/src –> hier bewaar je de geëxporteerde gecomprimeerde bestanden, bvprogramma.tar.gz
Je kan een uitvoerbaar programma draaien op een pi met Lite, als het gekozen is als project voor de terminal (CLI), niet als het een “grafisch” programma” is, dan heb je minstens een “lite” desktop nodig.
Om de programmeeromgeving te kunnen gebruiken om te programmeren moet je de IDE installeren, en heb je dus ook (minstens een Lite) desktop nodig als xfce, lxde, pixel, …
Marthe gaat dus haar huidig systeem uitbreiden met een desktop; dat kan en is bv hier beschreven :
https://raspberrytips.com/upgrade-raspbian-lite-to-desktop/
Bij-installeren:
– Xorg: the display server.
– LightDM: the display manager.
– Any desktop environment (PIXEL, KDE, MATE etc.).
Je moet in de instellingen (raspi-config) ook nog aangeven dat je vanaf nu standaard in de desktop wil opstarten bv.
3.IronPi
Deze pi is tijdelijk ingebouwd in een aliminiumbehuizing die berschermt bij transport. De SD-kaart krijg je er niet uit zonder tangetje, maar de rest van de aansluitingen zijn wel goed bereikbaar, dus kan gemakkelijk een extern scherm aangesloten worden. Daarmee krijgt de desktop wel de grootte van dat extern scherm, en kan je comfortabel werken.
Concept: PictureDatabase
Er is een voorbeeldprogramma van Gambas community dat foto-databank demonstratie geeft, en wat erg overeenkomt met wat wij zouden moeten hebben. De uitvoering van deze demo is zeer summier, er wordt geen database server gebruikt maar SQlite, wat de gegevens in bestanden bewaart.
Het voorbeeld programma zit in het Gambas startscherm onder “Software Farm”, “Voorbeelden”, (eventueel filter “Database”) ; “PictureDatabase 3.0.9
”
Klik en eventueel op de knop inloggen klikken bovenaan rechts, je kan dat met “anoniem” als gebruiker.
Links beneden krijg je dan de download knop voor PictureDatabase, of doe download + installeren om het mooi in de Gambas3 IDE te krijgen (bij Voorbeelden in het openingsscherm).
Dit voorbeeld maakt een interface voor een beelden-databank, dateert van 2015, en is gemaakt door “Princeton”
De databank
We zien in het voorbeeldprogramma in Gambas een alternatief: SQLite.
Voor ons project gaan we naar een echte database server, zoals postgresql of mysql, meestal vervangen door mariadb tegenwoordig.
MySQL/MariaDB is iets bekender en wordt veel in web-applicaties (wordpress, enz) gebruikt, en heeft een gekende phpMyAdmin interface.
Ook voor postgresql bestaat een web-interface. Zelf meer vertrouwd met mariadb heb ik die geïnstalleerd:
sudo apt install mariadb-server
Moet ook nog verder geconfigureerd worden…
sudo mysql_secure_installation
Klaar. Verbinden met:
sudo mysql -uroot -p
Wordt vervolgd
Volgend RadioLAB: 27 juli
Links
Download van het camera-test voorbeeld van vorige RadioLAB: https://sourceforge.net/projects/webgang/files/RaspberryGambas3/ (op 29/5 gepubliceerd als camDemoExtended2-0.0.2.tar.gz
)
Gambas3 voor Linux: (klik ook op Unsupported distributions “show” of kijk in de softwareverzameling van je eigen Linux distributie) https://software.opensuse.org/package/gambas3
Onze StockPi Wiki: https://gitlab.com/wim.webgang/stockpi/-/wikis/home
StockPi project op GitLab: https://gitlab.com/wim.webgang/stockpi
Raspberr Pi wordt gemaakt door de Raspberry Pi Foundation, een non-profit: https://www.raspberrypi.org/