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:
jan 052017
 

Ik moet even wat code parkeren naar aanleiding van wat “vakantie-uitzoekwerk”. Ik heb mijn DIY ontvanger en zender voor 433.92Mhz, voor het schakelen van mijn lampen, de kerstboom etc. vervangen door een RFXcom RFXtrx433E USB 433.92MHz Transceiver. Natuurlijk is zelfgebouwd heel leuk en leerzaam, maar de RFXcom heeft al meteen laten zien dat hij een stuk betere ontvangst heeft dan mijn eigen creatie. Net als de andere systemen, communiceert de RFXcom niet rechtstreeks met mijn OpenHab systeem, maar via een MQTT-server.

De RFXcom adapter hangt aan een Raspberry Pi machine. Niet die waar de MQTT-server en OpenHab zelf op staan, dat bleek net wat veel van het goede. Onhandig is dat RFXcom zelf geen Debian software beschikbaar stelt. Maar gelukkig zijn er anderen die daar  voor gezorgd hebben.  Zoals Anton, die deze code in Python beschikbaar gemaakt heeft.

Welke protocollen in RFXcom?
Stap #1 is om te bepalen welke protocollen de RFXcom moet ondersteunen bij het ontvangen. Hoe minder hoe beter, dan raakt hij minder in de war. Welke protocollen de verschillende apparaten gebruiken kun je opzoeken, maar je kunt ook de rfxcom applicatie opstarten en luisteren naar wat er binnen komt. Alleen, die draait niet op Debian. Een optie is om de adapter “door te verbinden” naar een poort op de Raspberry Pi en dan vanaf een andere computer verbinding te maken. Dit kan met de tool “socat”, die je even moet installeren op de Raspberry Pi en dan moet je het volgende commando runnen:
sudo socat tcp-listen:10001,fork,reuseaddr file:/dev/ttyUSB0,raw &
Het is wel belangrijk om daarna het proces weer te killen, want het Python-script en socat kunnen niet tegelijkertijd gebruik maken van de USB-poort.
Lees verder….

Deel dit bericht: