Search

Archives

Pages

Op mijn desktop:

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

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

[Planning: RadioLAB (LTS) e.a. ideeën]

(Op komst...), Stockpi ** June 19th, 2023 by wim.webgang **

Vanaf september 2024 : computergeschiedenis 1984 met afleveringen van in de VS teruggevonden op oude bandopnemeropnames met relevante figuren van rond die tijd..

Op Gitlab: Stockpi project ;

Read the rest of this entry »

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

    Arduino: 18 en “Screwed” + RadioLab “LTS”

    Stockpi, Uitzending do 18:00 ** March 30th, 2023 by wim.webgang **

    Screwed

    Een arduino nano tijdens de experimentele fase aansluiten met draden die je eenvoudig kan “vastschroeven” …
    32 schroefjes geven toegang tot de arduion nano pinnen, zonder je microscoop nodig te hebben.
    Daarnaast zijn er ook nog de ontdubbelde “gewone” gaatjes om een typisch breadboard kabeltje in te steken (jumper wires).
    Het bord heeft ook een stuk met gaatjes om zelf op te solderen, zodat je gemengde opstellingen kan uitproberen.
    Zelfs in een vaste installatie zou je dit bord kunnen gebruiken, de schroefaansluiting maakt het gemakkelijker om toch eens iets te veranderen of defecte/niet meer ter zake doende onderdelen te vervangen. Kost ongeveer 10 a 15 euro (als je ze per 3 koopt) en de prijzen stijgen elke dag ….

    18 jaar Arduino

    Voorbije weekend was het Arduino dag:
    https://www.youtube.com/watch?v=mhC_ZFbGEqs

    00:00 Inleiding door … en …
    03:22 Chicago met een joy division t-shirt
    - 4:55 Mich van Accenture, met liftknoppen muziekproject
    - 15:00 team education from Poland
    - 21:37 NL microPython project met ring led etc (NL)
    - 37:50 Allesandra de Vitis
    - 47:33 Carlos Granadas Peru Project Autismespectrum stoornis.
    52:32 Arduino R1 Giga wifi 76 pins dual core kost 68 euro in hun store.arduino.cc
    - 1:37:00 Becky Stern NYC, arduino (best verstaanbare)
    - 2:20 ong produktvoorstelling verschl borden

    Het is een veel te lange youtube video om achteraf te bekijken.
    De reklame ertussen voor hun eigen produkten is te langdradig en beetje lachwekkend. Bovendien zijn dingen niet terug te vinden op hun webshop (op dit moment toch niet, bv de “Lylypad”. Er is trouwens geen zoekfunctie op hun webshop, je kan alleen maar bladeren door hun produkten, beginnend van een keuze volgens hun indeling – waar hoort de Lilypad bij? borden? IOT? geen idee…
    (Niet-) professioneel
    En de GROTE ONTGOOCHELING is hun ONLY WINDOWS software voor de PLC produkten.

    RadioLAB LTS

    LTS
    De start van een ander soort project in radioLAB: een Lange Termijn Systeem-onderwerp.

    “Systeem” klinkt nogal prentieus*, maar het is inderdaad een project waarbij allerlei onderdelen moeten samenwerken als 1 systeem.
    Dus hardware, besturingssysteem, de databank, en de software, zowel bestaande als zelfgebouwde/geschreven.

    (* en ja project begint niet met een S)

    Read the rest of this entry »

    Lift ^ | Lift v | Comments Off

    Next Entries »