Search

Archives

Pages

Op mijn desktop:

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

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, Stockpi, 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, Stockpi, 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, Stockpi ** 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, Stockpi, 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, Stockpi ** 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

    STEM shield for Arduino: om te solderen

    RadioLab, Uitzending do 18:00 ** January 26th, 2023 by wim.webgang **


    (foto: webgang)
    Ik heb de verrassing van dit STEM shield ondertussen verwerkt, en de componenten op een uurtje tijd op het bord gesoldeerd.
    Op de foto boven: Rechts onder zie je de “ruitertjes” om over twee naast elkaar liggende pinnen te steken om een verbinding te maken.
    Een handleiding zit er niet bij, die moet je online zoeken: manuals.whadda.com; je vindt er ook het pinout schema en schema van het bord.

    Foto bord: Je ziet ook waar de condensatoren moeten komen; er staan schijnbaar twee haakjes ( ) en een recht streepje geeft aan waar de + moet komen. Maar vanaf de condensator op het bord gestoken wordt, kan je de aanduiding niet meer zien, en kan je dus niet controleren of hij juist zit.
    Voordien moest ik wel op zoek naar een handleiding, die ik vond en afgedrukt heb om op te kunnen noteren.
    De handleiding is goed, duidelijke foto’s, soms wijkt het een beetje af van mijn uitvoering. De header pinnen die per twee of drie op het bord gesoldeerd zijn, moesten van een langer latje afgeknipt worden, en die braken gemakkelijk verkeerd. Gelukkig had ik een stukje over om het verkeerd afgebroken stuk te vervangen.
    Ook nog een foto van het resultaat; het “shield” op een “Arduino Uno” geplaatst. Nu nog testen .. (wordt vervolgd).

    Lift ^ | Lift v | Comments Off

    LAB:bit: micro:bit LAB, RasPi hergebruik enz.

    RadioLab ** December 22nd, 2022 by wim.webgang **

    Laatste RadioLAB van 2022

    Pi4 van de container gevallen?
    Silvia hergebruikt haar Raspberry Pi4
    - Allerlei servers testen in Docker. (zie ook awefull selfhosted: https://github.com/awesome-selfhosted/awesome-selfhosted), whoogle. Jellyfin, pi-hole, …
    - Daarna de definitief in gebruik te nemen server overgezet naar (en we leren een nieuwe term: “1 liter computer”, een mini pc form factor, vgl de grootte met een pak melk. -in dit geval een Thinkcenter met i5) om de “gpio”-bekwame Raspberry Pi te recupereren voor een volgend project…

    LAB:bit

    Na de Raspberry Pi en de Arduino Labs in a box .. LAB:bit voor Micro:Bit, educatieve doos van Kitronic.
    Motor, leds, drukknoppen, sensoren, aansluiting voor batterijen en voeding, en natuurlijk het slot om de Micro:bit in te steken (die trouwens niet meegeleverd wordt- zowel microbit versie 1 als 2 kunnen gebruikt worden).

    Onderaan op een NL-talige site* vind je een link naar voorbeelden en filmpjes:
    * https://elektronicavoorjou.nl/product/labbit-educatief-platform-microbit/
    Meer hier: http://www.insightresources.co.uk/microbit/lab-bit.html
    Opm: de eerste twee kan je op eerste zicht gewoon op de microbit uitvoeren, daar is de LAB:kit niet voor nodig.

    Probleem: de drivers!
    Nergens heb ik de drivers voor de LAB:bit kunnen vinden. Volgens het boekje moeten ze gewoon voorkomen in de lijst van de online programmeeromgeving, als je een zoek doet op “kitronik”. Er komen inderdaad een heel aantal kitronik micro:bit uitbreidingen voor als keuze, maar nergens de LAB:bit.

    Oplossing
    Ik heb ze onrechstreeks toch kunnen vinden in een stukje code met een test voor de LAB:bit:

    https://makecode.microbit.org/10754-74486-36056-39124

    Als je daarvan vertrekt, kan je eigen creaties maken.

    ps
    Foutje in de documentatie
    Later eens een zoek geprobeerd op LAB… ipv op Kitronik. Dat werkte wel, en zo was het ook te vinden in een voorstellingsfilmpje van de fabrikant (waarom dan verkeerd in de handleiding?).

    Ik heb hier en daar wat uitvoerbare code gedownload om op de aangesloten micro:bit te dumpen: werkt ok.
    Broncode was iets moeilijker, hier zit je met het onine makecode platrom opgescheept (https://makecode.microbit.org/#editor), terwijl het handiger zou zijn om (bv mobiel zonder internet) vanop je eigen computer te kunnen werken.

    Uitpakken
    en beschrijving…
    + rubber voetjes
    + boekje
    + opbergdoosje
    - geen aan/uit schakelaar op de batterijbox
    - geen micro:bit
    (-? geen voeding)

    Fantastische kwaliteit drukknoppen (2) en draaiknoppen (2)
    De drukknoppen zijn bovendien voorzien van eigen leds, die oplichten bij het indrukken van de knop, zonder daar een programma voor te hebben.
    In het boekje is gemarkeerd wat in-en uit zijn (middenblad “poster”).

    Spanning led = ook batterij niveau: groen:nieuw geel:gebruikt oranje/rood: te laag

    Behalve de (gesponsorde) MakeCode site, waar je in blokjes kan werken en kan schakelen naar javascript en python is er ook de originele python editor op de site:
    https://python.microbit.org/v/1
    https://python.microbit.org/v/2
    https://python.microbit.org/v/3 (heeft recente Firefox nodig >68.9)
    en bestaat er nog een “nieuwe/beta”?
    https://python.microbit.org/v/beta – of heeft bestaan (waarschijnlijk voor v3)
    Bij deze python editor heb ik niet gevonden hoe ik de LAB:bit library kan laden .. helaas!

    Documentatie voor micro-python voor micro:bit: https://microbit-micropython.readthedocs.io/en/v2-docs/

    Vergelijken?
    We denken even terug aan de andere geïntegreerde kits .. Joy-Pi, Arduino Sensor kit/Grove beginner kit, …

    Lift ^ | Lift v | Comments Off

    « Previous Entries Next Entries »