Search

Archives

Pages

Op mijn desktop:

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

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

RadioLAB-StockPi: proof of concept

RadioLab, Uitzending do 18:00 ** May 25th, 2023 by wim.webgang **

Eerste vraag was of het mogelijk en redelijk doenbaar is om met een Raspberry Pi, een cameramodule, en programmeerwerk (en vrije software) ons project te realiseren. Vandaag dus de pudding.

Onze gitlab stockpi project pagina: https://gitlab.com/wim.webgang/stockpi
De wiki: https://gitlab.com/wim.webgang/stockpi/-/wikis/home


(foto: wim.webgang)

We proberen al een paar vragen te beantwoorden uit de “Q” pagina van het project:

Ontwerp

welke hardware? Raspberry Pi …2/3/4..?
Vandaag: Raspberry Pi 3B+ in een standaard installatiebehuizing op een DIN-rail zoals waar zekeringen op gestoken worden; hier zit er bv een voeding (van 220 v naar 5V) naast op de rail, waardoor geen extern voedingsblokje nodig is. De voeding heeft zelf een dikke stroomkabel (recuperatie van een pc), die een gat in de wand naar buiten gaat.
De platte camera-kabel (op lengte gekocht) gaat achteraan naar buiten; er zijn ook gaten in de doos voor usb-, beeldscherm-, netwerk-, en voeding (die lust van binnen naar buiten om ze uit te kunnen trekken); de meeste daarvan wijzen naar onder.
Het geheel is gemonteerd op de voet van een monitor, dus de camera steekt onder de monitor uit en maakt op tafel voor de monitor zijn beeld. De cameramodule zit op een afsluitplaatje van een pc slot, wat van metaal is en gebogen kan worden om de camera af te stellen. Heeft helaas geleden van het transport en zit wat los..

in welke programmeertaal?
- Gambas (programmeeromgeving “IDE” en programmeertaal, toegangkelijk, en gemakkelijk “interface” schermen te maken.
- python zou ook kunnen; interactie/interface misschien iets moeilijker.
We kiezen voor Gambas voor de “appliance”, het “apparaat” zelf. Misschien later andere taal voor raadplegen op afstand…

Logo?
- enerzijds: is nu nog niet belangrijk, pas op het einde, als het af is.
- anderzijds: nu voor directories, about scherm, logo voor op gitlab, enz…

Waar documentatie?
- Gitlab wiki is al aangemaakt en bevat al eerste stukjes informatie.

Praktisch

Hoe de camera aanspreken? (test-commandline)
Hoe vanuit de programmeertaal de camera aanspreken? Voorbeeld test-programma hier: https://sourceforge.net/projects/webgang/files/RaspberryGambas3/camDemoExtended2-0.0.2.tar.gz/download
Hoe foto’s bewaren; in de databank (neen), in mapje, waar; beperken tot 1 per onderdeel?
welke naam krijgen die foto’s? computernummer of menselijk leesbaar? (bv datum-naam-recordid.extentie)

Lift ^ | Lift v | Comments Off

RadioLab LTS 04-2023: The StockPi project

RadioLab ** April 27th, 2023 by wim.webgang **

Special guest
Marthe heeft ook nog een gast meegebracht: DJ Conconbre, zodat we met 4 zijn in ons RadioLAB. We haasten ons dus live van de kleine studio naar de grote.
Een Special guest die bovendien ook de muziek verzorgt tijdens het programma, maar ook thuis is in servers, hacking, javascript, Processwire, enz…

The StockPi project
Marthe geeft ons al een idee van de hardware: Raspberry pi, in te bouwen camera met platte draad, enz:

We werken ondertussen aan ons in maart opgestarte LTS project “StockPi”…

Voor de software zullen we git gebruiken (zie verder).

Marthe stelt nog een online edit programma voor om online live samen te werken (..)
Voor de documentatie kunnen we de wiki van GitLab gebruiken.

Git
Het is Linus Torvalds’ broncode-beheer-systeem voor de ontwikkeling van de Linux kernel, dat als vrije software de wereld (van de programmeurs en ontwikkelaars) veroverde.
Het is eenvoudig te installeren uit de bronnen van de eigen Linux distributies.
Het maakt het mogelijk om van broncode en andere teksten verschillende versies (of takken) te maken (bv try-out, afwijkende hardware, definitieve versie), en die eventueel terug te integreren in een of meer voortlevende takken, of gewoon te laten afsterven als je ze niet meer nodig hebt.
We moeten dus git installeren, ook als je wil volgen is dat handig.

Zie Reeks Git – handboek (nl) – commando’s vb – branch, merge – GitLab vb – SourceForge vb – git en gambas op linuxuser.copyleft.be

Gitlab
We kozen voor git Gitlab om ons project op te ontwikkelen; het is een platform gebouwd rond git, en voorlopig nog niet opgekocht door één van de grote internetmonopoliegarchen.

1. Gitlab, project, members

- Een account op gitlab maken (hadden wij allemaal al)
- Een project maken. Ingelogd op gitlab, nieuw project, naam geven, publiek, licentie: gpl3.
https://gitlab.com/wim.webgang/stockpi
- Een gebruiker toevoegen:

menu Project information / members

Project members
You can invite a new member to StockPi or invite another group.

- Knop “Invite members”
- naam intikken, toevoegen en rol kiezen (bv guest, reporter*, developer, maintainer, owner)
- zichtbaar in de lijst van Members binnen het project

We moeten tijdens het programma eens overlopen wat voor rol de “rol” speelt… TODO (daar was geen tijd voor in de uitzending).
(upd: alle rollen op Maintainer gezet)

2. Gitlab, README.md
Deze is automatisch aangemaakt bij de creatie van het project, en bevat een soort help-tekst. Je moet die verwijderen en vervangen door relevante inhoud voor je eigen project.

TODO (zie onderaan)

3. Gitlab repository, subdirectories, branch
Hoe organiseren we het project? Beginnen we direkt met code in de map van het project?
Of maken we een onderverdeling, met een map voor “Documentatie”, “Gb3code”, “ArduinoCode”, “schema”, …

Dan kan je een pull doen van alleen die code?
Of komt alles mee binnen? “Cloning only a subdirectory is not possible in Git” (2013)
Bestaat git “Sparse checkout“?

4. Gitlab tools
Gebruiken we nog andere onderdelen van gitlab, zoals …

  • de blog? (hebben ze dat?)
  • de wiki ?
  • Website
    Gitlab biedt bv “Static Pages” die je wel kan (laten) genereren met Static Site Gereration.
  • ticket system: problemen of wensen kunnen gemeld worden in dit systeem, en afgevinkt als ze gerealiseerd zijn.
  • backups? logs? statistieken?
  • CI/CD …
  • Er is ook een handig aktiviteiten overzicht
  • 5. Aktie: clone StockPi

    Eens de beslissingen genomen zijn, of zelfs vanaf de repository aangemaakt is, kan je hem naar je computer halen met een “git” commando dat ook te kopieren is op de gitlab site bij de git branch pagina’s:
    Ik maakte eerst een map voor het hele project, daarbinnen ga ik mijn git krijgen.

    ~/webgang/prj> mkdir StockPiPrj
    ~/webgang/prj> cd StockPiPrj/

    Daar doe je dan:

    StockPiPrj>git clone https://gitlab.com/wim.webgang/stockpi.git

    De reaktie is iets als:

    Cloning into 'stockpi'...
    remote: Enumerating objects: 6, done.
    remote: Counting objects: 100% (6/6), done.
    remote: Compressing objects: 100% (4/4), done.
    remote: Total 6 (delta 1), reused 0 (delta 0), pack-reused 0
    Receiving objects: 100% (6/6), done.
    Resolving deltas: 100% (1/1), done.

    Het gevolg is dat je een directory hebt met alle broncode bestanden van ons project in (bij aanvang dus leeg), en die wat extra git-eigen hulpdirectories en bestanden bevat, die onzichtbaar zijn en die je ook zelf niet nodig hebt.

    StockPiPrj> ls
    stockpi

    Hier, in StockPiPrj kan ik zefl bestanden zetten, nota’s, tijdelijke dingen, vragen enz. Die komen niet in het git project terecht.

    Maar als ik in de “stockpi” map ga, zit in “in” het git project. Git gaat hier zelf bestanden zetten en directories maken, bv als je synchroniseert met de toestand van het project online.
    Je kan hier dingen zetten, en kiezen om ze niet mee op te nemen in git, maar dat zou ik afraden, hou die in de hogere StockPiPrj directory.

    Read the rest of this entry »

    Lift ^ | Lift v | Comments Off

    « Previous Entries