feb 242020
 

Ik weet het: echte ontwikkelaars maken voor hun versiebeheer geen gebruik van Onedrive. Dan moet het op zijn minst via Github. Prima, gebruik ik ook, af en toe. Als iets af is, om te delen.

Maar als ik gewoon wat aan het klooien ben,  als ik bv een TCRT5000 sensor op de watermeter in de meterkast geplakt heb om het ronddraaien van het tellerschijfje te registreren en dat dan weer via MQTT over Wifi vanaf een ESP8266 door te sturen naar een Mosquitto-server zodat ik die waarden in Home Assistant weer kan geven en in influxDB kan archiveren, dan ben ik meestal eerst even gewoon met code aan het stoeien.
Met een beetje mazzel (zoals deze keer) met Over The Air (OTA) updates zodat ik niet op een krukje op USB-kabel lengte afstand van de meterkast hoef te blijven zitten.

Tijdens zo’n traject kan het wel eens voorkomen dat ik denk “oei, nu heb ik een stuk code weggegooid of aangepast en dat had ik niet moeten doen”.

In dat geval kan het helpen om het .ino bestand op te slaan binnen een map die gesynchroniseerd wordt met Onedrive. Privé of zakelijk maakt niet uit. Ik gebruik in dit geval mijn privé Onedrive. Het mooie van Onedrive (en waarschijnlijk een aantal van de andere beschikbare diensten ook) is dat hij aan versiebeheer doet. Dus in dit geval, waarbij ik een stuk code had verwijderd dat ik toch nog wilde gebruiken, ging ik naar onedrive.com, zocht daar de map en het programma-code bestand op en selecteerde een oudere versie. Onedrive kan ze niet online weergeven zodat je even snel kunt knippen en plakken, het bestand wordt gedownload naar je computer. Ook goed. Als backup voor foutjes tijdens het klooien in de Arduino IDE in ieder geval iets wat mij al wat tijd bespaard heeft vandaag. 🙂

Deel dit bericht:

Tip: The Coding Train

 Gepubliceerd door om 19:44  Programmeren
feb 092020
 

The Coding Train is eigenlijk een site die niet heel veel toelichting nodig heeft. Je kunt beter gewoon een paar filmpjes van Daniel Shiffman bekijken. Dan weet je snel genoeg of het iets voor je is of niet.

Ik kwam er zelf pas heel recent langs, deze maffe aflevering van Coding in the Cabana was mijn kennismaking. Daarna bekeek ik ook de andere twee afleveringen die er in die serie al waren en ging ik verder met de andere tutorials op het kanaal. Het zal er wel mee te maken hebben dat ik een nerd ben en er dus van kan genieten als een andere nerd helemaal uit zijn dak gaat als hij een programmeeruitdaging opgelost heeft.

Dat Daniel met Processing of P5JS werkt helpt daarbij absoluut omdat al zijn oplossingen wel een grafische component hebben. Dat maakt de resultaten ook interessant, zoals bij deze bijvoorbeeld:

Genoeg gepraat erover: gewoon even kijken! (en laat even weten wat je er van vind).

Deel dit bericht:
jul 082019
 

Het leek heel gemakkelijk, was het ook voor wat betreft de eerste demo, maar stap 2 was een stuk complexer.

Ik had een aantal voorbeelden gezien van, wat mij betreft, enorm indrukwekkende demonstraties van de kracht van de ESP32 microprocessor. Je blijkt er een heel kleine camera op aan te kunnen sluiten (daar zijn de meeste mensen niet meer zo vreselijk van onder de indruk). Maar Espressif (de bedenkers van de chip) heeft nu ook een demo/test board gemaakt, genaamd de ESP-EYE, met niet alleen de camera voorgeïnstalleerd, maar ook spraak- en gezichtsherkenning alvast voorgeprogrammeerd. Je kunt dus meteen aan de slag!

Als je de video hierboven bekeken hebt voordat je verder las, dan weet je waarom dat indrukwekkend is: het is namelijk niet zo dat de ESP-EYE stiekumpjes gebruik maakt van een online webservice, dus bv Google of Amazon die al het werk uit handen neemt. Nee, de ESP-EYE werkt volledig zelfstandig. Dus geen data die over het internet naar de een of andere, meer of minder betrouwbare aanbieder gaat. Alles gebeurt 100% op het boardje zelf. Dat wilde ik zelf uitproberen, dus heb ik er eentje besteld bij AliExpress. Ik heb er overigens zelf €22,65 voor betaald, ik zie dat hij nu iets boven de 26 euro kost. Ik verdien niets aan de link of het verwijzen naar AliExpress, shop gerust dus even rond voor de beste deal. Hieronder zie je wat foto’s van de verpakking, de ESP-EYE met als referentie voor het formaat een 5 eurocent muntje ernaast. Het ding is klein!

De video hierboven van Luca Dentella was heel handig en behulpzaam, hij laat zien hoe de ESP-EYE zo uit het doosje werkt, dat lukte mij ook. Maar de instructies zorgden ook voor de nodige problemen toen ik hem letterlijk probeerde te volgen bij het aanpassen van de standaardcode.

Lees verder….

Deel dit bericht:
jan 212019
 

Ik zag dat ik er een tijdje geleden wel al een tweet over gestuurd had, maar dat ik er nog geen blogpost over gemaakt had. Ik heb het over Thonny, een open source, gratis ontwikkelomgeving (IDE) voor Python en (micro-)Python.

De tweet stuurde ik toen ik zag dat de omgeving standaardonderdeel zou worden van de Linuxversie die voor de Raspberry Pi gemaakt wordt, maar dit weekend ontdekte ik dat je hem ook voor microPython kunt gebruiken. En dat is handig in combinatie met bijvoorbeeld een ESP8266 of een ESP32. Vooral ook omdat Thonny dan ook het uploaden en downloaden van de bestanden voor zijn rekening neemt en een REPL-console ingebouwd heeft.

Het flashen / updaten van de firmware op de ESP8266/ESP32 vanuit de tool heb ik niet gedaan/geprobeerd, daarvoor vertrouw ik liever op esptool.py. Voor de ESP8266 die ik bij de hand had gebruikte ik de kale microPython versie  op de EPS32 heb ik de Loboris-firmware gezet. Die heeft als voordeel dat er al heel wat modulen bijgevoegd zijn.

Voorlopig vind ik de combinatie best fijn. MicroPython op de ESP32 chips blijft toch hier en daar nog wat behelpen. Vooral omdat een van de extra features ten opzichte van de ESP8266, de ondersteuning voor BLE, nog niet beschikbaar is binnen microPython. En dan is de keuze voor terugkeer naar bv de Arduino IDE in de meeste gevallen het meest voor de hand liggend.

Wil je kennismaken met Python, dan hoef je niet eens zaken te installeren. Dan zou ik eerst eens bij Repl.it kijken. Zie ook de berichten op dit blog daarover.

 

 

Deel dit bericht:
okt 282018
 

De site/toepassing is niet nieuw, maar ik had simpelweg nog geen reden gehad om er eerder naar te kijken: MIT App Inventor.

Vandaag heb ik er voor het eerst mee geëxperimenteerd. De aanleiding is een wat groter project waarbij ik sensorwaarden die via een ESP32 worden verzameld direct op een mobiel apparaat wil kunnen ontvangen (dus niet via WiFi / MQTT etc). Het idee is om daar BLE (Bluetooth Low Energie) voor te gebruiken, de ESP32 heeft standaard WiFi en BLE ingebouwd. Maar de standaard apps die je voor BLE kunt downloaden hadden wat moeite met het verwerken en zeker met het netjes weergeven van de data die op deze manier binnen kwam. Zelf een app bouwen voor iOS of Android had ik in het verleden wel al eens geprobeerd, maar in beide gevallen was het installeren van de benodigde tools/software en het krijgen van een basisbegrip van hoe e.e.a. werkt al voldoende reden om daar niet teveel extra tijd in te steken.

Ik was dan ook een beetje sceptisch toen ik de verwijzing naar MIT APP Inventor tegenkwam. Maar, de eerste indruk na een paar uurtjes testen is heel positief. Goed, de eerste beperking voor nu is nog dat er nog geen ondersteuning is voor iOS. Dat was voor mij geen echt probleem, ik heb beide ter beschikking.
Heel prettig is wat mij betreft dat ik meteen in de online omgeving aan de slag kon. Ik kon met een Google account inloggen, naar keuze voor mij dan dus via @gmail.com of via @ixperium.nl omdat we Google Apps for Education gebruiken. Maar helemaal mooi werd het na het koppelen van mijn Android toestel via de MIT AI2 Companion App die ik via Google Play kon installeren. Na het scannen van een QR-code of het invoeren van een korte code werd mijn toestel gekoppeld aan het project waar ik mee bezig was. Dat betekende dat wijzigingen meteen werden doorgevoerd en te testen waren.

Het bouwen van een applicatie voelde heel vertrouwd, enerzijds heb je de ontwerpomgeving waar je knoppen, lijsten etc. op je scherm plaatst. Om er voor te zorgen dat die knoppen daadwerkelijk iets doen gebruik je de “Blocks” omgeving. Als je met Scratch kunt werken of met de Blocky achtige omgevingen zoals ook bij de Micro:bit gebruikt worden, dan kun je hiermee eenvoudig overweg.
En ook wijzigingen die je hier doorvoert worden meteen in de app op je smartphone doorgevoerd.

Heb je app helemaal klaar, dan kun je een .apk bestand downloaden op je smartphone. Dat is dus een “echte” app die gewoon zelfstandig werkt, los van de online omgeving. Nou staan de meeste smartphone tegenwoordig zo ingesteld dat ze niet zomaar apps installeren die niet in Google Play staan. Maar als het goed is, dan is dat één vinkje dat je moet aanzetten. Ik heb nog niet uitgezocht hoeveel werk de optie is om je app via Google Play te delen via App Inventor, want dat is voor mijn doel niet nodig.

Conclusie
Voorlopige conclusie is dat deze omgeving voldoende flexibiliteit biedt voor wat ik nodig heb.  De app is nog niet klaar dus nog geen filmpje etc. van het eindresultaat. Dat wordt nog vervolgd.

Deel dit bericht:
jul 212018
 

Mooi filmpje van Chuck Hellebuyck over het gebruik van Blockly in Tinkercad om 3D ontwerpen te “programmeren”. Tinkercad noemt het zelf “Codeblocks”, maar iedereen zal er snel de Blockly structuren in ontdekken.

Waarom zou je er gebruik van maken?  Bijvoorbeeld als je een ontwerp wilt maken waarbij je bepaalde eigenschappen in variabelen vast wilt kunnen leggen. Bijvoorbeeld een tafel waarvan je de dikte van de poten eenvoudig wilt kunnen aanpassen. Chuck verwijst naar OpenSCAD, een optie waarbij je eveneens je ontwerp in programmeertaal beschrijft (en zo eenvoudig parameters kunt gebruiken). Maar waar OpenSCAD voor programmeurs bedoelt is, zijn Codeblocks juist meer iets voor “beginners” (liever: nog niet-programmeurs).

Mooi is dat Tinkercad een aantal voorbeelden bijvoegt waarmee je een beeld krijgt van wat mogelijk is. De tafel die Chuck laat zien is er één van. De raket ziet er ook mooi uit:

Deel dit bericht:
jun 042018
 

Op de BBC website staat een mooi filmpje (embedden is helaas nogal een ding, gaat via lelijke iframe) van een workshop die door Artronix uit Glasgow ontwikkeld is. In de workshop bouwen deelnemers/leerlingen robots met een of meerdere micro:bits, servo’s, LED’s etc.
Op zich niet nieuw. Maar de opdracht daarbij is om een scene uit een bekende film na te bouwen. Op de website zie je voorbeelden van Jeepers BleepersWar of the Worlds – Rise of the micro:bitsMicro:Wars – A New Code, Bride of Frankenbit, A Fistful of micro:bits.

De scenes bevatten een combinatie van hergebruikte speelgoed poppen, decors, filmeffecten en vooral veel creepy stemmetjes. De clips zijn kort en ook dat is niet altijd gemakkelijk want het betekent dat ze heel erg to the point moeten blijven. Bekijk ze zeker ook even op de pagina van de BBC daar staat ook de PDF met instructies. Op Twitter zijn er ook een aantal te vinden.

(p.s. aan de tweets kon ik zien dat het project van 2017 is, ik kwam er vandaag pas via de Adafruit website)

Deel dit bericht:
apr 022018
 

De SonicPi software bestaat al lang. Maar ik heb er nog niet eerder over geschreven. Bij deze dus. Want eigenlijk kan dat natuurlijk niet.

Even vooraf: de SonicPi software verwijst in zijn naam naar de Raspberry Pi, maar je hebt geen Raspberry Pi nodig, de software draait ook gewoon op Windows, een Mac of Linux. Je kunt hem gratis downloaden en voor Windows is er ook een “portable” versie, die hoef je dus niet te installeren, kun je gewoon op een USB-stick zetten.

Wat is SonicPi en waarom zou je er iets mee moeten?
Dat kan ik je waarschijnlijk het beste door de bedenker (Sam Aaron) ervan laten uitleggen. Het filmpje hieronder is al uit 2015 (er zijn oudere filmpjes):

De introductie lijkt erg op het verhaal van Felienne bij haar Python/programmeren en kunst workshop.  En daarmee bedoel ik richting beiden niets negatief. Integendeel. Beiden maken duidelijk dat maar een bepaalde (kleine) groep speciale mensen enthousiast wordt van programmeren. En ook Sam Aaron maakt duidelijk dat het een stuk eenvoudiger is om kinderen enthousiast te maken over programmeren als je ze ook echt iets geeft waar ze enthousiast over worden.

Nou moet ik bekennen dat dit, net als verhalen bedenken in Python, natuurlijk ook weer niet voor elke leerling zal gelden. Ik heb vanmiddag een uurtje zitten spelen met SonicPi en zo goed als Sam zal ik waarschijnlijk nooit worden. Sowieso, kijk maar eens hoe veel werk het is om onderstaande track te maken.

Lees verder….

Deel dit bericht:

Jarig op Moederdag?

 Gepubliceerd door om 22:34  Algemeen, Programmeren
apr 012018
 

Het zijn zo van die vragen die opeens over de ontbijttafel vliegen. Een van mijn neven is geboren op Moederdag. Toen was dat 9 mei.
Vraag #1: kun je daaruit afleiden welk jaar het is?
Vraag #2: hoe vaak is hij op Moederdag jarig?

Tja, en als het dan weekend is, dan is er tijd om op zoek te gaan naar een antwoord. Het werd een combinatie van het opknippen van het probleem in stukjes en voor een deel brute rekenkracht (nou ja).

Het opknippen van het probleem was niet zo moeilijk: wanneer valt Moederdag? Het is de tweede zondag van mei. De eerste zondag valt op zijn vroegst op 1 mei, op zijn laatst op 7 mei. Dat betekent dat de tweede zondag op zijn vroegst op 8 mei en op zijn laatst op 14 mei valt. Als je de zondagen telt tussen 1 mei en 14 mei, dan weet je dat de tweede die je tegen komt Moederdag is.
Als je dan kijkt of die dag gelijk is aan 9, dan weet je of zijn verjaardag samenvalt met Moederdag.

Gereedschap voor het tweede deel was vandaag repl.it en dus Python. Ik heb de code hier gedeeld: https://repl.it/@PiAir/Jarigopmoederdag.

Als je de link volgt en de code uitvoert, dan zie je dat het best vaak voor komt. Afleiden in welk jaar hij geboren is kan op basis hiervan niet. Dus dat jaartal heb ik onderdeel van de code gemaakt (de code kijkt 50 jaar terug ten opzichte van dat jaar en 100 jaar vooruit). En de uitvoer laat zien dat er heel duidelijk een regelmaat is: elke 6, 5, 6, 11 jaar valt zijn verjaardag samen met Moederdag.

Geen oplossing voor een belangrijk wereldprobleem. Maar ja, het was een vraag die we hadden. 🙂

Deel dit bericht:

Programmeren & Kunst

 Gepubliceerd door om 21:45  coding, Onderwijs
mrt 072018
 

Waarschuwing! Als je weinig tijd hebt, een deadline voor je werk, klusjes die je echt nog moet doen, lees dan niet verder. Want de kans is groot dat je namelijk het komende uur of langer bezig bent naar aanleiding van deze blogpost.

Ok, je bent gewaarschuwd. Het bericht van vandaag gaat over de workshop die Felienne Hermans vandaag tijdens de tweede dag (ochtend) van de NIOC conferentie verzorgde. Hij was getiteld “Programmeren & Kunst” en ik had al uit de beschrijving begrepen dat we ook echt met Python aan de slag zouden gaan.

Nou ken ik voldoende (micro)Python om me wel te redden, maar het ging me om de combinatie met Kunst. Felienne had op dinsdag tijdens haar keynote er al kort iets over verteld.

De WORKshop begon met het op het beeldscherp typen van dat woord door Felienne: dit is een WORKshop, dus pak je laptop maar.

Voor de workshop maakten we gebruik van repl.it, een gratis dienst waarmee je o.a. een Python editor en live REPL in je browser krijgt. Geen noodzaak dus om Python op je computer te installeren. Handig en snel, zeker ook in een onderwijssetting. Wil je de code bewaren, dan is het aanmaken van een gratis account handig. Leuk ook is dat je je code heel eenvoudig kunt delen. De code voor de gif hierboven bij het bericht is hier te vinden. Wil je zelf verder werken met die code dan kun je op de “fork” knop klikken.

En het laat meteen de waarschuwing zien: vandaag bij de workshop was ‘spirograaf’ niet de opdracht waar we aan gewerkt hebben. Dat heb ik daarna gedaan, toen ik eigenlijk ‘even snel’ een blogpost had willen maken, waarvan het daarna een stuk langer duurde voordat die af was. De PDF met uitleg is hier te vinden.

Tijdens de workshop ging het om het verzinnen van gekke verhalen. Felienne liet kort zien dat je maar een klein stukje code nodig hebt (haar voorbeeld kun je hier forken) om te beginnen bouwen aan een gek verhaal. Daarna gaf ze het al snel aan ons over. Niet iedereen had een laptop en ook nu was dat handig. Want in groepjes was de opdracht veel leuker: maak een gek verhaal in Python. De docentinstructie kun je hier vinden.

Het resultaat van ons groepje staat hier. Elke keer als je op de run-knop drukt, krijg je een ander verhaaltje.

Leuk was dat er heel verschillende resultaten uit kwamen van de verschillende groepjes. Dus niet alleen in gekozen woorden, maar sommigen waren wat verder gegaan met loops, keuzes, input opvragen etc.
Iedereen ging ook best wel los op de opdracht. En dat was heel grappig om te zien: minimale code vooraf uitgelegd, een heel eenvoudige online omgeving en je kunt volwassenen en kinderen/jongeren los laten gaan in hun creativiteit en dan intussen laten oefenen met hun programmeervaardigheden.

 

Deel dit bericht: