Search

Archives

Pages

Op mijn desktop:

Suggesties, commentaar, ... (klik of schrijf zelf:)e-mail webgang
Laatste titels:

Enviro+ meting en Release StockPi 0.4.7 (lib 0.4.5)

RadioLab ** May 30th, 2024 by wim.webgang **

Radiolab …
Marthe en Silvia brengen verslag uit over de installatie van meetapparatuur op het dak van Archipel.
De pi op het dak communiceert naar een andere pi beneden (gelukkig met wifi zodat ze geen kabel moesten trekken), die de gegevens optekent en doorstuurt.
Marthe ondervond dat een Pi geen aan/uit schakelaar heeft, maar dat dat niet betekent dat je dan gewoon de stekker uit moet trekken; dat kan de SD kaart beschadigen (waar zowel de data op bewaard worden, als waar het systeem zich bevindt, het besturingssysteem, en eens beschadigd kan dat de Pi in “dode” toestand achterlaten.
Silvia gaat de uitdaging aan om een nieuw systeem te installeren op ondertussen dus bedenkelijke SD-kaart, niet zozeer uit avondtuurlijke drang, maar eerder uit gebrek aan nieuwe sd kaart in de buurt, en voorlopig lijkt dat nieuwe systeem het toch wel te doen.
De prometheus time series database wordt gebruikt als opslag en doorstuurder van de gegevens.
Nog enkele flarden uit de gesprekken:

  • codeberg.org/artemesia/enviroplus
  • grafana
  • prometheus
  • 2 dockers: prommetheus time series database ontvangt data van allerlei plekken …
  • grafana : enviro+ dashboard
  • numpy probleem (pip install, python virtual environment)

StockPi release party
Een vreemd voorwerp, gevonden op de rommelmarkt, kan helpen bij onze “verziende” camera. Het voorwerp wordt onder de camera van de stockpi gezet. Een component onderin gelegd wordt door de lens vergroot voor de foto. De behuizing van deze lens lijkt wel zelfgemaakt, uit dun hout gesneden, maar zonder de zwarte randjes van de lasercutter. Misschien CNC oppert Marthe.

Vandaag gebeurde de release van de master van ons StockPi project:
StockPiApp: v 0.4.7
6 modules
10 classes
10 Forms
316 Functions
6311 lines of code
1 library

StockPiLib: 0.4.5
6 modules
4 classes
209 functions
2720 lijnen code

Denk eraan: eerst de lib afhalen en compileren (maak uitvoerbaar programma), daarna de app (want die heeft de lib nodig – ook bv de cli versie gebruikt dezelfde lib, maar die is vandaag niet uitgegeven wegens wat achterop in de ontwikkeling).

Er zijn nog wat ideeën voor ander gebruik, bv voorbereiden rommelmarkt, waarvoor een aantal velden overbodig zijn als fabrikant en fabrikant refentie en zo.
Voor andere toepassing moeten sommige velden afgezet worden zodat ze niet meer op de schermen zichtbaar zijn (in de database kunnen ze blijven bestaan).

Lift ^ | Lift v | Comments Off

StockPi project: 1 jaar: van Legacy tot Desktop

RadioLab, Uitzending do 18:00 ** May 16th, 2024 by wim.webgang **

BCP-2 is terug
Met een gecontroleerde update van tumbleweed en een check de avond voor de uitzending is het vertrouwen terug groot genoeg om de BCP2 mee te brengen, en de oude vervang BCP1 thuis te laten.

StockPi blijft splitten
Het was een tijdje stil rond ons StockPi project, maar dat betekent niet dat er niets gebeurde. Integendeel, het project heeft er nog een paar takken bijgekregen: StockPiLegacy en StockPiDesktop. Dat naast de betaande StockPiApp, de desktop applicatie voor op de Raspberry Pi, en de StockPiCLI, de commandolijn versie, waar je dus zelfs geen desktop voor nodig hebt, en die je in een terminal of over ssh kan gebruiken.

StockPiDesktop
- Door de software te ontwikkelen op een desktop of een laptop, ontstond de neiging om meer gebruik te maken van mogelijkheden van de (KDE) desktop, die iets verfijnder is dan op de Raspberry Pi, en bv een groter scherm heeft of een hogere resolutie. Niet alles wat in die StockPiDesktop versie wordt gemaakt, hoeft te worden ingevoerd in de normale StockPiApp.

StockPiLegacy
Maar daaruit groeide het besef dat de beperkingen van de Raspberry Pi versie ook te maken hadden met de wat verouderde software op dat bord. Ook de Gambas versie is er ouder en kan niet alles draaien wat we op een recentere versie kunnen programmeren. Dus misschien is die oude Raspberry Pi het probleem, en moeten we eerder overwegen of we die nog wel als standaard nemen voor ons project. Omdat we het ding toch aan de praat wilden houden, maakten we een afsplitsing van de App en noemden die StockPiLegacy. De

Lift ^ | Lift v | Comments Off

RadioLAB : Raspberry Pi 5, Gambas3 en stockpi

RadioLab, Uitzending do 18:00 ** March 14th, 2024 by wim.webgang **

Kennismaking met de Raspberry Pi 5 vs Raspberry Pi 2/3

Uitpakken met de 5
We pakken uit:
- eenvoudig kartonnen doosje met Raspberry Pi 5 bord, en een briefje met blabla.
- een originele voeding 5.1 V, 5A (?!?!)
- Real Time Clock batterij (met klein stekkertje)
- SD kaart met origineel Raspberry Pi OS.
- Officiële 2-kleurige behuizing met ingebouwde ventilator, en een eenvoudige zwarte behuizing met enkel ventilator-opening, en wat afgerondere hoeken.

We spoelen even vooruit voorbij …
starten, configureren (nvdr: zie foto’s) wat allemaal eenvoudig verloopt.

Stekker in het stopcontact..
Systeemversie : Raspberry Pi OS (dec 20223) + updates draaien
Opstarttijd: zo’n 20 seconden, veel en veel sneller dan onze oude uit de 3-reeks
Voeding (verbruik?): usb-C, zwaardere voeding (27 watt!). Ook uitgeschakeld blijft hij stroom verbruiken (en blijft ook een beetje warm). Ingeschakeld moet je de behuizing openen als het een type gesloten kast is.
Temperatuur? Gaat al snel naar 40 °C, wat meer programma’s 60°C, en een spelletje: 80°C!!
Om de temperatuur op te vragen, tik:
vcgencmd measure_temp

Opensuse op Pi5?
Nog te vroeg?

Programmeren
- De vaste waarden zijn aanwezig: Scratch (2 en 3), Thonno, …
- Programmeer-omgeving toevoegen:
Voorkeuren, add/remove software: gambas3: Complete Visual Development Environment gekozen, installeert, icoon onder development, maar start niet.
Vanop de commandolijn zie je de foutmelding:

webgang@raspberrypi:~ $ gambas3

**
** OOPS! INTERNAL ERROR. Program aborting, sorry! :-(
** Cannot find interface of library ‘gb.gtk3.wayland’
**
** ERROR: #27: Cannot load component ‘gb.gtk3.wayland’: cannot find component
**
** Please send a bug report to the gambas bugtracker [1] or to the gambas mailing-list [2].
** [1] http://gambaswiki.org/bugtracker
** [2] https://lists.gambas-basic.org/listinfo/user
**

Software management, zoek naar die gb.gtk.wayland, aanvinken, bevestigen.

Ok! Als je scherm wat doorgestreept wordt, zet het venster van Gambas3 dan kleiner.

Stockp project
- fouten op alle onderdelen, de StockpApp en de StockpiDesktop, StockpiCLI (die in principe geen gtk conflict kan hebben want enkel command line) en ook de library (die zelfs geen user interface heeft).
Foutmelding bv:

Kan project bestand niet openen:
/home/webgang/dev/gb3prj/stockpi/stockpilib
Read-only array
[gb.gui.base].^^Desktop.GetDesktop.58 [gb.gui.base].^^Desktop.Types_Read.72 [gb.gui.base].^^Desktop.Is.79 VersionControl.GetTextEditor.56 VersionControl.Refresh.99 Project.Open.688 FWelcome.btnOpen_Click.186 CCoolButton.Panel_MouseUp.149 ?

Omdat er mogelijk stukjes gambas3 mankeren (niet alles wordt altijd mee geïnstalleerd), herhaal ik het installatie-commando met een * voor alle pakketten:

sudo apt install gambas3*

Er worden een aantal bijkomende gambas3 paketten geïnstalleerd.

Versie: 3.18.0 (vgl op onze opensuse desktop : 3.19.0)

Raspberry Pi updaten:
- eerst de “package list” updaten:
sudo apt update
dan de software zelf / het systeem :
sudo apt full-upgrade

Als je een snelle internetverbinding hebt (glasvezel), gaat dit allemaal razendsnel.

De Pi5 start ook veel sneller op dan zijn oudere familie op, een reboot duurt nauwelijks een goede 20 seconden.

Maar de fout blijft:

Kan project bestand niet openen:
/home/webgang/dev/gb3prj/stockpi/stockpilib
Read-only array
[gb.gui.base].^^Desktop.GetDesktop.58 [gb.gui.base].^^Desktop.Types_Read.72 [gb.gui.base].^^Desktop.Is.79 VersionControl.GetTextEditor.56 VersionControl.Refresh.99 Project.Open.688 FMain.OpenProject.164 FMain.Action_Activate.1667 [gb.gui.base].^Action.Raise.238 ?

Zie onderaan de systeeminformatie van Gambas3.

Database
Hopelijk komt de fout niet doordat we nog geen database geïnstalleerd hebben …

sudo apt install mariadb-server
Of uitgebreider Engelstalig hier op hackernoon bv
Nederlandstalig vind je hier wel wat met een zoek op “mariadb”

Upd:
- ik kan de Gambas3 projecten, die bewaard worden als tar.gz wel downoaden, uitpakken en openen in de Gambas3 IDE. Voor de Library stockpilib betekent dat bv dat je ze kan compilen (let op waar de lib terechtkomt …)

Details…
Read the rest of this entry »

Lift ^ | Lift v | Comments Off

RadioLAB 8-feb

RadioLab, Uitzending do 18:00 ** February 8th, 2024 by wim.webgang **

In ons radiolab vandaag een demonstratie van de nieuwe constructie voor de StockPi: een andere monitorsteun die naar boven en onder kan bijgesteld worden, en de doos waarin de pi zit is nu met schroefjes bevestigd ipv met nylonstrips; bovendien kan het stuk met de pi losgezet worden en van de steun geschoven worden, zodat het transport eenvoudiger is en minder schade kan veroorzaken.
De camera is ingebouwd in de behuizing, aan de onderkant, en de kabel blijft nu helelmaal binnen de doos. Kabel en camera zullen nu minder lijden onder transport.

Wat nog ontsnapte tijdens de uitzending:
Read the rest of this entry »

Lift ^ | Lift v | Comments Off

RadioLAB 04/01: onherstelbaar ontworpen

RadioLab ** January 4th, 2024 by wim.webgang **

Beste wensen voor 2024 voor al onze luisteraars (en in het bijzonder voor wie al sinds mei 1996 luistert)

Onherstelbaar ontworpen

Sommige dingen gaan (veel te snel) kapot, en/of kunnen ergerlijk genoeg niet hersteld worden.

Een paar voorbeelden…

  • Afgebroken voedingsadapter: de voeding van een kwaliteitsmerk van netwerkapparatuur is uitgevoerd als een stekker-blokje. Het levert 12 volt, is redelijk groot en zwaar, en hangt met zijn hele gewicht op de twee pinnen die in het stopcontact zitten. Een zwak punt blijkbaar, door spanning op het snoer, of door contact met andere voorwerpen brak het dunne stekkerdeel in het stopcontact af. De switch werkte nog perfect en er moest een vrijwilliger gezocht worden om de stekkerpinnen uit het stopcontact te trekken zonder de stroom af te zetten (anders lag het netwerk plat). De betere uitvoering is een voedingsblokje dat een netsnoer heeft (zoals bij veel laptops); bovendien kan het netsnoer dan per land aangepast geleverd worden.
  • LED-theelichtjes: te hergebruiken? De schakelaar alvast niet, die maakt contact met de batterij en is niet bruikbaar op zich als schakelaar. De batterij vervangen kost waarschijnlijk meer dan het hele lampje bij aankoop. Misschien kunnen de leds gerecupereerd worden in heen project, ze hebben een gezellige manier van flikkeren.
  • kattekop of verdeeldoos om op een bestaand stopcontact twee toestellen aan te sluiten, met middenin een schakelaar die oplicht bij ingeschakelde toestand. Helaas breekt een plastic scharnierstukje van de schakelaar, waardoor die kapot is.

Heb je ook voorbeelden? Stuur een (foto) mailtje naar webgang@radiocentraal….
(misschien kunnen we er een rubriek van maken..)

Cre 02-01-2024, Upd 04-01-2024

Lift ^ | Lift v | Comments Off

RadioLAB: De roze camera (op Raspberry Pi)

RadioLab ** December 7th, 2023 by wim.webgang **

We sluiten de Raspberry Pi aan op een beeldscherm, muis en toetsenbord, en Marthe logt in vanop haar laptop .. klaar voor een StockPi Project radioLAB

StockPi
Toestand van het project: op dit moment tellen de drie onderdelen samen 8.956 regels code, StockPiApp is aan versie 0.3.5, StockPiCLI v. 0.0.9, StockPiLib v. 0.2.2 (meer onderaan).
Functionaliteit:

- logo, help, About, Changes enz. zo goed als klaar (mits evolutie).
- installatie en instellingen: zo goed als klaar, nog wat bugs misschien.
- datacontext: om te schakelen tussen verschillende bronnen van data (databank/server): ok.
- ingeven “part”, maken van foto, tonen van parts: basisfunctionaliteit klaar.
We hebben al een paar onderdelen ingegeven.

De camera
Bij het aansturen van de camera in onze StockpiApp moeten we de library-keuze maken tussen de nieuwere “libcamera” en de oudere “raspistill” (oudere raspberry pi’s, oudere systemen en software).
Dus moeten we in de configuratie deze keuze voorzien (theoretisch zou het programma kunnen zoeken naar de library en op basis daarvan automatisch de instelling doen).
Marthe:
libcamera-vid --help
libcamera-vid --list-cameras

Streamer
Tijdens het programmeren lonkte de de camera van de laptop. Waarom niet proberen de camera van de laptop te gebruiken? Dat bleek vrij eenvoudig door het gebruik van de “streamer” library. Die spreekt de camera van laptops aan (geen idee hoe universeel dat is, maar ik kon het op een paar verschillende toestellen gebruiken). Dus het configuratiescherm werd aangepast met extra “streamer”, en biedt nu drie keuzes.
ps: Je moet zelf checken of de software geïnstalleerd is.

De “roze” camera
De oorspronkelijke camera op onze eerste proefopstelling was een Raspberry Pi Camera V 2.1. Voorlopig is het nog niet duidelijk of het aan de kabel ligt (lijkt wat beschadigd) of aan de camera, maar deze geeft een heel rozig beeld.
Het lijkt of één van de kleurkanalen ontbreekt, want rood en blauw komen er wel door. Het heeft wel iets, maar het ziet er wel naar uit dat hij vervangen moet worden voor wat wij willen doen. Er is een vervangkabel die we nog moeten proberen. (De aansluiting aan de camera heeft een kabel van 30 cm met de blanco kant naar de lens; op de pi de blanco kant naar de netwerkaart.)
Cordula denkt dat het groene kanaal ontbreekt (upd: het lag idd aan de kabel, met een andere kabel werkt de camera terug perfect. Upd 2: nee toch niet, wordt terug roze ook met nieuwe kabel. Toch de camera dan, maar niet altijd?).

(On)scherp
Met de eerste “roze” camera merkten we ook dat die een vaste brandpuntafstand heeft; de camera is “vérziend”; je moet dus het voorwerp op een grote afstand leggen om het beeld scherp te krijgen.
Bij 20 cm heb je bv geen scherp beeld. Als je een vaste staander hebt met de camera ingebouwd, zoals ons eerste prototype, moet je daar rekening mee houden. Op de foto zie je zowel de roze schijn als een correctie van de brandpuntafstand met een extra lens. Met de nieuwe 5MP camera bleek 30 cm de goede afstand te zijn (met genoeg licht).
Foto: Pi camera beeld, gecorrigeerd door lens

Andere (problemen)
De camera is een klein vierkant plaatje met een lens erop, en wat componenten. Die is met een platte kabel verbonden naar het moederbord, de Raspberry Pi.
De kabel is heel dun, een lint, en lijkt nogal kwetsbaar, de uiteinden hebben fijne contactlijntjes. Die moet je in een klemmetje op het moederbord steken. En omdat deze Pi al in een behuizing zit, kunnen we daar niet goed meer aan omdat het tegen de rand van de behuizing zit, je moet dat klemmetje voorzichtig lostrekken om de camera aan te sluiten. Gelukkig heeft Cordula de perfecte stevige pincet bij, anders was het niet gelukt.

We proberen een paar andere goedkope camera’s in de plaats, met gemengd resultaat: de 5MP: ok, de 8 MP: doet het niet (later die kabel eens vervangen).
Marthe ziet via een commandline commando welke hardware het systeem detecteert (vooraf: geen).
v4l2-ctl --list-devices


bcm2835-codec-decode
/dev/video..
/dev/media0
bcm2835-isp
/dev/video..
/dev/media1
/dev/media2
cannot open device /dev/video0, exiting

Beeldmanipulatie
Cordula Thym was als gast in de studio is ook met film en montage bezig en vertelt over het gebruik van Davinci Resolve, een oorspronkelijk kleurcorrectie-programma dat begon op OSX en Linux, maar dat later ook voor andere systemen beschikbaar werd. Het is software waar een lichtere gratis versie van werd uitgebracht, naast een betalende, meer uitgebreide.

Nota: Deze software is dus “free as in beer”, niet “free as in freedom”. Het is geen open source itt wat soms gezegd wordt, en evenmin GPL. Daarvoor zie programma’s als Cinelerra, KDEnlive, enz (zie “Free (libre) or open-source” op deze wikipedia pagina)

Ps: StockPi project statistiek Read the rest of this entry »

Lift ^ | Lift v | Comments Off

RadioLab: stockpiapp 0.2.9 naar main

RadioLab, Uitzending do 18:00 ** October 5th, 2023 by wim.webgang **

Merge branch ‘test’ into main
Silvia verklaart de code van StockPiApp 0.2.8 ok voor promotie naar main
ps : en dus ook de onderliggende “library”, versie 0.1.5

Run!
Ze klikt op het icoon op de desktop en …
Het programma start. Het leest de instellingen en maakt verbinding met de databank. Het toont de beschikbare “parts” uit de database.
Klik op een “part” toont het bijhorende fotootje.
Silvia test “Nieuw” knop: nieuw part ingeven, naast de invulvelden staat uitleg over wat er ingevuld moet worden, en ook voorbeeld invoer.
Wim: dat is een ontwerpkeuze; er zijn een aantal extra tabellen in de databank die speciaal daarvoor gemaakt zijn: om extra informatie over velden beschikbaar te hebben; deze tabellen met uitleg en voorbeeldinvoer voor de velden van “parts” worden mee geïnstalleerd bij installatie van het programma.

ps: de CLI versie is niet stabiel en/of ver genoeg af om naar main te promoten. Wordt aan gewerkt..

Bug
De grootste bug is het niet verversen van het hoofdscherm na ingave van een nieuw “part” … misschien kan dat nog gefixed worden – knipoog naar dev team..?

Todo’s
- de bug natuurlijk: herladen hoofdscherm na invoer nieuw onderdeel.
- drop downs met preselect categorie, manufactur,
- form met zekere hierarchie, visueel onderscheid of groter/kleiner
verborgen (meer detail)

Stockpi project: andere vragen en antwoorden:
- Kunnen we de webcam van de laptop inzetten voor gebruik door stockpi? hoe de webcam aanspreken (vanuit CLI)? De camera van de pi wordt met een shell commando aangesproken, dat kan in principe ook voor webcams opgesteld en uitgevoerd worden. Verder te onderzoeken.
- Hoe de code voor de verschillende mogelijke cams organiseren? in de “lib” komt een aparte “camera” module, met verschillende keuzes.
- kan camera ook in CLI versie gebruikt worden? mogelijk wel, dat wordt onderzocht
- kan stockpi ook terug leeggemaakt worden? (Database, files) Niet aan bod gekomen in uitzending, maar inderdaad interessante vraag.
- kan er een voorbeeld-databank gemaakt worden met ingevulde voorbeeldgegevens om te testen enz. Wim stelt voor die voorlopig in de documentatie beschikbaar te maken; de app krijgt een “import” mogelijkheid waarmee die dan geïmporteerd kunnen worden.

Voor u
Proberen? Download (clone https://gitlab.com/stockpi/stockpiapp.git) en maak met gambas3.
Vragen? mail naar webgang (radiocentraal.be).

Lift ^ | Lift v | Comments Off

De takken van het stockpi project

RadioLab, Uitzending do 18:00 ** September 7th, 2023 by wim.webgang **

We gebruiken Git(Lab) voor ons stockpi project

Dit is een voorbeeld van hoe een workflow kan zijn. Verschillende takken zijn van de main afgetakt door verschillende gebruikers. Die werken aan een bepaald stukje software, bv de Setup procedure van het programma. Git laat toe dat verschillende mensen tegelijk aan het project werken (hier bv rood, blauw en groen), en helpt om die stukjes nadien in elkaar te puzzelen.

Die ontwikkeling gebeurt “lokaal” op de computer van die ontwikkelaar. De ontwikkelaar haalt eerst een kopie af van de “main”, wat clonen genoemd wordt, en geeft die een naam; bv dev-hq=development headquarter, een naam die de developer op het hoofdkwartier van Webgang gekozen heeft.

Hij maakt een “tak” of branch voor het werk waaraan hij bezig is, en geeft die ook een naam, waaraan je kan zien waar hij aan werkt, hier bv de setup procedure in Dev01Setup.

Als dat stuk klaar is wordt het met commit + push online gebracht en is het al af te halen/in te zien door anderen. Denkt de ontwikkelaar dat het ver genoeg klaar is brengt hij het naar de “test” branch, onderaan op de afbeelding.

In de test branch worden alle ontwikkelingen samen gebracht, en in ons programma “testen” we die uit; enerzijds de lib compileren en anderzijds de cli en de app die de lib gebruiken uitproberen. Als een programam crasht proberen we dat te documenteren. Anders: We noteren opmerkingen en correcties.

Goedgekeurd? Als de combinatie goed werkt gaat alles naar de “main”.

Het toeval (enigzins geholpen door Marthe) wil dat we een professionele developer in de studio hebben, Claes, en we toetsen onze workflow bij hem af.

Hij veegt de oranje testbranch op het witbord hierboven weg, en vult aan:
- de eigen tak van de ontwikkelaar wordt “feature branch” genoemd (omdat een bepaalde “nieuwe functie” wordt bijgemaakt – kan uit een tickeet komen).
- tijdens de otnwikkeling kan een programmeur al collega’s raadplegen
- peer review: een collega-programmeur die enigzins op de hoogte is van het onderwerp, gaat je code nakijken om denkfouten eruit te halen enz.
- Hij kan een soort “ok” geven (merge request) waardoor het programma klaar wordt gezet om in de main branch opgenomen te worden.
- Voor het integreren van die tak in de main helpt het platform; je kan “merge request” aanvinken, er commentaar bij ingeven, en het systeem documenteert en zet een knop klaar om dat te aanvaarden door de beheerder van de main branch; dat kan een ontwikkelaar zijn, of een coördinator, binnen het platform kunnen rollen verdeeld worden met bijhorende rechten.
- automatisch testen: in het gitlab (of ander git-) platform kan je een aantal voorgeprogrammeerde testen laten lopen; die kunnen semantisch zijn (bv spellingscontrole bij documentatie), of functioneel: compileert het programma, kan het programma gestart worden, en zelfs het gebruik van het programma kan getest worden.
- Als een nieuwe main gemaakt is, wordt die ook nog eens uitvoerig getest (met de automatische procedures).
- de “feature branch” wordt verwijderd.

Ook op voorhand wordt er bepaald wat er allemaal moet geprogrammeerd worden, je kan daarvoor een ticketing systeem gebruiken (“type feature request”) dat op het gitlab (of ander) platform voorhanden is. Dat is hetzelfde principe van wat wij zouden doen, maar natuurlijk verloopt het daar gestructureerder. De tickets kunnen afgevinkt worden, gekoppeld aan een “merge” in de main, gekoppeld aan andere systemen enz.

Lift ^ | Lift v | Comments Off

Stockpi project: gesplit

RadioLab, Uitzending do 18:00 ** July 27th, 2023 by wim.webgang **

“Pas bezig en al gesplit”

Het stockpi project is al gesplit, niet wij als project deelnemers, maar de code van het project.

Op basis van de opmerking van Marthe of een grafische gebruiksomgeving echt nodig is, of het niet zonder kon, kwam Wim tot de conclusie dat er naast een Desktop applicatie ook en CLI (Command Line Interface) moet komen. Twee programma’s dus in plaats van één.


Maar dat is wel dubbel zoveel werk… of niet?

Alles wat gemeenschappelijk is kan gemeenschappelijk beschikbaar gemaakt worden in een “library” of “.lib“. Daarin komt alle code die bv de objecten (recordstructuur) beschrijft, communiceert met de database enz.

Dus:

  • Gemeenschappelijke code in StockPiLib
  • De code voor de commandolijn bediening StockPiCLI.
  • Alles wat specifiek is voor de desktop komt in de StockPiApp,

Voordeel is dat ook iemand anders de lib kan gebruiken en er zijn eigen Gambas programma mee kan schrijven. Stel dat iemand bv een web-versie wil maken, met Gambas Server Pages of als CGI script (wat kan met Gambas):

En ook zonder de StockPi-LIB kan je aan de data via rechtstreekse SQL commando’s naar de MariaDb/MySQL server, of via een andere programmeertaal als PHP (dan moet je wel alle code daarvoor schrijven of een kant-en-klare tool gebruiken als PhpMyAdmin):

Een CLI versie
We proberen een voorbeeldje uit met een ander programma met een CLI interface, waar we allebei vanop afstand op inloggen; het gebruik wijst zichzelf uit ..

Conclusie
- zo’n CLI doet heel erg denken aan een lang vervlogen tijd, en is niet bepaald wat we voor ogen hadden voor gebruik als stockpi programma.
- Het biedt wel mogelijkheden om library code uit te proberen voor de app klaar is, en om vanop afstand op een gemakkelijke manier de database te ondervragen, bv met een ssh verbinding. CLI heeft dus zijn waarde.

We kijken nu uit naar het eerste voorbeeld toegepast op het StockPi project, zowel van lib als cli als app. Wordt vervolgd….

(ps zie dat je zeker bij bent met je installatie van Gambas3, en mysql – zie ook hieronder)


Read the rest of this entry »

Lift ^ | Lift v | Comments Off

Van Lite naar desktop, Gambas3-ide en VNC, database

RadioLab ** June 29th, 2023 by wim.webgang **

Onderaan de links naar downloads en andere verwijzingen.
RadioLAB-stockpi-3pi
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

new 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) bv programma.gambas.
gb3/src –> hier bewaar je de geëxporteerde gecomprimeerde bestanden, bv programma.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/

WTF is “Raspberry Pi”??

Lift ^ | Lift v | Comments Off

« Previous Entries