Gobot RPI simulator

gobot-sim is geschreven in Golang

'Gobotics' prototyping development middleware

Gobot is een applicatie in Golang om verschillende 'Single Board Computers' aan te sturen zoals Raspberry Pi.

Nu is het ontwikkelen voor Raspberry Pi prototypes nogal ingewikkeld. Het aansturen of opvangen van gegevens uit de hardware pinnen gaat eigenlijk alleen goed door je applicatie op de SBC zelf te ontwikkelen.

Het nadeel hiervan is dat deze SBC's soms erg licht kunnen zijn qua geheugen en cpu, en dat je al een hardware prototype moet hebben om je applicatie te testen. Daarnaast draaien mijn ontwikkelomgevingen het best en bij voorkeur op een Mac.

Daarom heb ik simulator middleware ontwikkeld voor Gobot / Raspberry Pi, die aan te geven pinnen op laag niveau onderschept, en signalen omleidt naar de middleware.

Dit maakt het mogelijk om bijvoorbeeld een hardware 'button push' te simuleren voor een Raspberry Pi door middel van een toetsaanslag op je Mac.
Of een LED die gekoppeld zou moeten zijn aan een bepaalde pin, op je Mac 'LED ON/LED OFF' te laten weergeven (in plaats van een fout te genereren).

Dit maakt het een stuk makkelijker om een prototype applicatie te ontwikkelen nog voordat je prototype hardware hebt gebouwd - de bouw van het hardware prototype kan nu de bouw van de applicatie volgen, in plaats van andersom.




Datum: Maart, 2021

Gobot-sim

De gobot simulator middleware stel ik open source ter beschikking 'as-is' en is op dit moment in alfa status.

De repository en voorbeelden staan op deze Github repository.

Op dit moment gebruik ik de library om een interface te maken die met een knop en klein schermpje een PiHole applicatie aanstuurt, die op een Raspberry Pi Zero draait.

Gobot

Gobot is een robotic/ioT framework met ondersteuning voor 35 platforms.

Gobot website

Internals

Gobot-sim werkt door het onderscheppen van low-level system calls naar de GPIO pinnen. Hiervoor is een hybride 'sysfs' adapter geschreven, die calls voor specifieke pinnen kan omleiden naar de simulator.

Het zou mogelijk moeten zijn om de applicatie op de SBC zelf te laten draaien ook als het hardware prototype nog niet is aangesloten!

Vaardigheden

  • Golang
AWS Certified Devops Engineer

Ik volg momenteel de AWS Certified DevOps Engineer-cursus om mijn kennis te vergroten op het gebied van het automatiseren van infrastructuur en CI/DI.

AWS migratie

Update voor het lopende AWS migratie project.

Load en Stress tests

Cloud infrastructuur testen met K6

Reactions Craft CMS plugin

Nieuwe Craft CMS plugin voor Facebook stijl reacties

Liveblog Beurs

Gedaan met stoffige beursartikelen. Hier een Facebook-stijl blog feed om het beursnieuws wat kleurrijker en actueler te maken.

Vertaal component

Een vertaal component in Symfony, voorzien van api en beheersmodule.