okt 052019
 

Mocht je nou de Google Colab van afgelopen maandag bekeken hebben en gedacht hebben “dat gaat me een heel eind boven mijn pet”, dan kan ik je de PBS Crash Course A.I. met Jabril Ashe van harte aanraden. Die serie kent inmiddels 8 afleveringen en start helemaal bij het begin.

Bij aflevering 5 en 8 (die vandaag nog niet in de playlist te vinden is, maar wel al hier te bekijken) wordt gebruik gemaakt van Google Colab voor de hands-on uitwerkingen. Daarbij wordt geen gebruik gemaakt van Tensorflow, maar de neurale netwerken werken (uiteraard) op een vergelijkbare manier.
Tijdens aflevering 5 wordt een classificatiesysteem gebouwd voor handgeschreven letters (waar ik uitging van cijfers) en in aflevering 8 gaat het om “natural language processing” (natuurlijke taalverwerking). In de andere afleveringen komen concepten als supervised learning en unsupervised learning aan bod, wordt k-means clustering als voorbeeld van unsupervised learning behandeld. Ook meer complexe begrippen als backpropagation en de loss functie komen aan bod. Al kunnen ze (uiteraard?) niet overal helemaal de diepte ingaan om het “geschikt voor iedereen” te houden.

Dus de video’s van 3Blue1Brown zijn nog steeds een mooie aanvulling als je ook de wiskunde achter de netwerken beter wilt leren begrijpen.

Elk filmpje is zo’n 10 – 15 minuten lang, als je met de twee Google Colab document wilt spelen moet je daar zeker nog een half uurtje aan toevoegen, dus zo’n 2 – 2,5 uur ben je er wel zoet mee. Ideaal toch voor een regenachtig weekend of de komende herfstvakantie? 😉

Ik weet niet hoeveel nieuwe afleveringen er nog bij komen. Maar als je na deze acht nú al op zoek bent naar meer, dan is hier nog veel meer aanbod van training!

Deel dit bericht:
okt 032019
 

Deel dit bericht:
okt 012019
 

De uitdaging was: geef een introductie op Kunstmatige Intelligentie voor collega-onderzoekers die er wellicht ooit wel eens van gehoord hebben, zeker nog nooit gebouwd hebben, in het algemeen geen programmeerervaring hebben.
Het moest in ieder geval ook hands-on zijn, want dat werkt nou eenmaal het beste.

Beide uitgangspunten: hands-on en laagdrempelig vormden een redelijke uitdaging. De verschillende laptops hadden immers niet de benodigde software of programmeeromgevingen geïnstalleerd. En dat allemaal vooraf (laten) doen op de verschillende systemen zou het overgrote deel van de beschikbare tijd opslurpen.

Daarom hebben we gebruik gemaakt van Google Colab, een experimentele online omgeving van Google waarbij ze Jupyter Notebooks (gratis) beschikbaar stellen. Je weet het: gratis experimentele omgevingen van Google verdwijnen net zo snel als dat ze verschijnen, dus je wilt er niet een business op bouwen. Maar omdat de notebooks die je er maakt “gewone” Jupyter Notebooks zijn (disclaimer: ik moet nog testen of ze daadwerkelijk uitwisselbaar zijn), jou je een Colab notebook moeten kunnen exporteren en, indien gewenst op je eigen Jupyter Notebook omgeving kunnen installeren.

Je kunt de Colab hier vinden: http://kortelink.com/CoE-AI
Dat betekent dat je voldoende hebt aan een Google account om je eerste kunstmatige neurale netwerk te beschrijven, te compileren, te trainen en te evalueren.

Lees verder….

Deel dit bericht:

Raspberry Pi Zero USB Dongle

 Gepubliceerd door om 13:21  Hardware, Raspberry Pi
sep 222019
 

Hij valt een beetje in de categorie “niet omdat het moet, maar omdat het kan”. Ik kwam hem tegen op zoek naar wat anders op Banggood, deze USB Dongle voor de Raspberry Pi Zero. Het zijn 2 acryl plaatjes, wat schroefjes en een plaatje met een USB-connector, drie ledjes en drie “veer-pinnetjes” erop. Die veer-pinnetjes (bij gebrek aan een beter woord) maken contact met drie contactpunten aan de onderkant van de Raspberry Pi Zero. Door de veertjes wordt er voor gezorgd dat ze wél stevig (zonder solderen etc) tegen die contacten aanzitten, zonder de Raspberry Pi te beschadigen.

Je hoeft dan ook niets te solderen. Ik baalde een beetje, want ik had bij deze Raspberry Pi Zero de header namelijk als zelf gesoldeerd. En hoewel hij zo op dezelfde manier bevestigd is als altijd/standaard en ook zoals de foto’s van de dongle laten zien, zou het veel logischer zijn om in dit geval de header precies andersom (dus aan de “onderkant” van de Raspberry Pi Zero) te solderen. Dan zit de header namelijk beschermd weggewerkt langs de uitsparing die daarvoor beschikbaar is, steekt hij niet uit zoals nu het geval is en kun je hem tóch nog gebruiken als je dat wilt.

Bij de dongle zit een klein instructieboekje met aanwijzingen die zouden moeten uitleggen hoe je de verbinding met de Raspberry Pi Zero via je USB-poort tot stand zou moeten kunnen brengen. Die instructies staan ook online op hun Wiki maar zijn niet helemaal compleet. Ik heb uiteindelijk deze instructies gevolgd waarbij dus zowel config.txt als cmdline.txt aangepast is. Ook heb ik Bonjour moeten downloaden en installeren. Mijn laptop was namelijk nog helemaal vrij van iTunes (en dat gaat ook zo blijven), maar zonder Bonjour lukt toegang via de USB-poort niet.

Nadat dat allemaal geïnstalleerd en geconfigureerd was gaf mijn USB-poort aan dat er een netwerkdevice gevonden was en was de Raspberry Pi Zero vanuit bv Kitty ook bereikbaar op raspberrypi.local
Daarna heb ik deze instructie gevolgd en VNC geïnstalleerd op de Pi Zero. Op de laptop had ik VNC Viewer geïnstalleerd en ook die wist via raspberrypi.local verbinding te maken met de desktop van de Pi Zero:

Nou had ik niet persé de behoefte om desktopapplicaties te draaien op de Raspberry Pi Zero, maar als je bv een Raspberry Pi camera aansluit of andere devices die ook zichtbaar data retour willen geven, dan kan VNC handiger zijn dan SSH.

Blijft natuurlijk een beetje de vraag over: waarom?

  • Linux kan ik native op Windows 10 draaien, via Docker in de meest uiteenlopende configuraties (inclusief cross-compileren voor de Raspberry Pi en andere niet X86 platformen).
  • De andere Raspberry Pi’s hier in huis doen hun werk juist bij uitstek prima “headless”, dus zonder dat er iemand verbinding mee maakt.
  • Voor zaken als OpenCV is de Pi Zero eigenlijk niet krachtig genoeg.

Ik kan me voorstellen dat het voor situaties waarbij je in het onderwijs de Raspberry Pi wilt gebruiken als fysieke machine waarmee studenten leren met Linux omgaan, waarbij het dan toch net wat tastbaarder is dan alleen een virtuele machine op Windows, dit geschikt is.
Of zie ik iets over het hoofd en heeft iemand betere ideeën? Ik hoor het graag!

Deel dit bericht:
sep 162019
 

Goed, ik zal beginnen met bekennen dat ik dit ‘experiment’ wel een stuk beter had kunnen voorbereiden. Maar ja, dan was het weer zo’n formeel ding geworden in plaats van gewoon iets waar ik nieuwsgierig naar was en eigenlijk had ik ook gewoon geen tijd om het beter voor te bereiden.

Tegenwoordig ik er eigenlijk zó aan gewend dat mijn apparaten altijd weten waar ik ben, dat het me vooral ook verbaasde dat het toch nog wel het nodigde werk kostte op het moment dat je de voor de hand liggende oplossing niet bij je hebt.

Garmin Forerunner 35
Op de fiets heb ik meestal de Garmin Edge 800 bij me. Die gebruikt niet alleen GPS maar ook de trapfrequentie en snelheid via andere sensoren op de fiets om redelijk precies bij te houden waar ik fiets, gefietst heb, hoe hard, bijbehorende hartslag etc.
Een optie die ik ook vaak binnen gebruik is de Garmin Forerunner 35. Die heeft hartslagmeter en raakt niet van de slag als er géén GPS ontvangst is, maar die heeft hij gewoon ook aan boord, dus als je zonder veel poespas op een fiets wilt stappen en je route wilt opslaan (hartslag + route op basis van GPS) dan is dat apparaat ideaal. Na afloop wordt de route via de Bluetooth verbinding met mijn telefoon automatisch naar Garmin en Strava doorgestuurd.

Helaas was dat het enige apparaat dat ik niet bij me had. Hij hing nog aan de oplader en in alle hectiek voor vertrek (door omstandigheden waren alle familieleden maar net op tijd thuis) is hij daar blijven hangen.

Tijd dus om te kijken of een van de andere apparaten een bruikbaar GPS-track bestand gemaakt had. En je snapt, als het antwoord een eenvoudig “ja” was geweest, dan was dit blogbericht niet zo lang geweest.

Lees verder….

Deel dit bericht:
sep 152019
 

Afgelopen vrijdag had ik, voor de tweede keer in mijn leven, de mogelijkheid om een tocht in een luchtballon te maken. De eerste keer was samen met mijn partner, ruim 20 jaar geleden, dus nog voordat de kinderen geboren waren. Ik had tijdens de SURF Onderwijsdagen 2018 geheel onverwacht 2 tickets gewonnen voor een ballonvaart en dus besloten we 2 tickets bij te boeken en met z’n vieren te gaan.  Zoals gezegd: vrijdag 13 september was het zover.

We hadden het aantal devices wat beperkter gehouden dan maximaal mogelijk was. Geen 360-graden camera bv, maar wel de GoPro 7 Black (met de GPS-optie op aan), Olympus Tough TG-6 (die ook GPS aan boord heeft, die we tijdens het duiken nog niet gebruikt hebben), onze eigen telefoons (waarvan de Samsung Galaxy S7 en S9 prima foto’s maken) én natuurlijk de TTGO T-Beam om het bereik binnen het The Things Netwerk in kaart te brengen vanuit de ballon.

Wil je weten hoe de ballonvaart was? Dat kun je zien in foto’s hier op Twitter of als filmpje hier op YouTube

Lees verder….

Deel dit bericht:
sep 092019
 

Niet alleen PoE, waar ik gisteren over schreef, ook de Raspberry Pi 4 was zo’n onderwerp waarmee ik hoognodig aan de slag wilde.  En er was natuurlijk maar één ding dat meteen in me op kwam om al die extra paardenkrachten mee te testen: beeldherkenning op basis van video met behulp van OpenCV, Tensorflow of een van de vele andere opties.

Een van de use-cases die ik voor ogen heb is een systeem dat kan tellen hoeveel fietsers er op een dag voor het I/O-gebouw in Nijmegen voorbij komen. Dat zal geen gemakkelijke worden vrees ik. Ook dit jaar hebben we daar het verschijnsel van de fietsfiles, maar mogelijk verplaatsten die zich zó dicht op elkaar dat ook slim systeem die niet kan tellen.

Een probleem bij de Raspberry Pi en het gebruik van OpenCV of Tenserflow is dat het (meestal) niet een kwestie van installeren is, maar dat je aan de slag moet met het van broncode af compileren van de omgevingen. Dat duurt op een Raspberry Pi in de regel heel erg lang en dan kan het zijn dat je na een uur of langer wachten tóch nog opeens een foutmelding krijgt. Dat je op de Raspberry Pi zowel Python 2 als Python 3 hebt en moet opletten wat je waar voor installeert én het gegeven dat de Raspberry Pi 4 gebruik maakt van Debian Buster, OpenCV ook een versie 3 en 4 heeft en geen van alles zomaar met elkaar samenwerkt, helpt dan ook niet.
Lees verder….

Deel dit bericht:
sep 082019
 

Het was al een tijdje zo’n “moet ik nog een keer uitproberen” onderwerp (daar heb ik er best veel van): het via een netwerkkabel van stroom (en netwerk) voorzien van een Raspberry Pi. De reden daarvoor is eenvoudig: je hebt op de plek van het apparaat geen stopcontact nodig, dat kan veel verder weg zitten dan bij het gebruik van een “normale” voeding en je hoeft maar één kabel te trekken om zowel netwerk als stroom bij de Raspberry Pi te krijgen. Nou hebben de meeste van mijn Rasberry Pi’s ingebouwde WiFi (ik heb nog een paar Raspberry Pi 1 en 2 exemplaren in gebruik, die hebben een aparte WiFi dongle nodig), maar bij bijvoorbeeld een gateway voor The Things Network, wil je eigenlijk alles wat voor storing kan zorgen uitschakelen. Daar kan een bekabelde netwerkvoorziening (en uitgeschakelde Bluetooth en WiFi) dan voor een net wat betrouwbaardere verbinding zorgen.

Uiteindelijk bleek het relatief simpel. In de video hierboven legt Andreas Spiess in meer detail uit hoe de verschillende technologieën werken. Zelf heb ik een ESCAM 48V 0.5A 24W POE Wall Plug injector besteld voor €5,15 incl. verzendkosten en een ESCAM 2.5KV Anti-interference Power Over Ethernet 48V To 5V 2.4A 12W Active POE Splitter. Deze heeft een micro USB plug zodat je hem meteen kunt gebruiken voor een Raspberry Pi 1, 2 of 3. Wil je hem gebruiken voor een Raspberry Pi 4, dan heb je deze splitter nodig met een USB-C aansluiting.

Raspberry Pi aan een PoE setup

Het aansluiten is een fluitje van een cent. De PoE Wall Plug injector heeft twee netwerkplugs:

De ene sluit je aan op je gewone router, die heeft niets speciaals nodig. Aan de andere sluit je een netwerkkabel van maximaal zo’n 100 meter op aan.

De andere kant plug je in in de netwerkaansluiting van de splitter. Die heeft dan weer een netwerkplug die in de Raspberry Pi gaat en een micro-USB of USB-C aansluiting die voor de stroomvoorziening gaat.
Na het aansluiten en inpluggen van de stekker, start het geheel op en hoef je verder niets meer te doen.

Overigens hoef je niet persé de injector op een router aan te sluiten. Je kunt de setup ook gebruiken als een manier om een lange verlengkabel te maken voor je Raspberry Pi naar een plek waar je geen stopcontact hebt. Doordat de injector 48V gebruikt kun je een grotere afstand afleggen dan met 5V en je hoeft niet persé een 220V kabel aan te leggen, en dat is dan ook wel weer prettig. Soms is het ook niet helemaal haalbaar. Op de plek waar ik bv in de tuin een Raspberry Pi “buiten” (in een waterdichte box) zou willen neerleggen vind ik die 48V wel prettig, maar is het wat moeilijker voor me om daar een bekabelde netwerkverbinding te krijgen.

 

Deel dit bericht:
sep 022019
 

Ik moest vandaag met de auto, dus ook tijd om naar de radio te luisteren. Dus hoorde ik bij BNR radio vanochtend ook het item langs komen over het afschaffen / uitfaseren van ISDN door KPN. Compleet met expert aan de lijn die vertelde dat er nog bedrijven waren die hun brandmelder of alarmsysteem aan een ISDN-lijn hadden hangen (zonder dat ze het wellicht wisten) en die zou dan niet meer werken.  Het was allemaal naar aanleiding van het bericht erover op de NOS-website. Op mijn plek aangekomen zag ik op Twitter ook de nodige verontwaardigde reacties (ISDN was een tijdje trending): hoe durfde KPN het aan om zomaar zo’n dienst uit de luscht te halen.

Tja, ze hadden het al in 2017 aangekondigd, en de kortstondigde ophef van vandaag laat zien dat dit (zeggen dat ze het echt uit gaan zetten) beter werkt dan het bericht van toen, want blijkbaar zijn er nog 10-duizenden bedrijven die er gebruik van maken.

Ik wist niet eens meer dát het nog gebruikt werd, het is/was echt een technologie uit de tijd van de inbelmodems, niet meer uit de tijd van vaste internetverbindingen (via ADSL, kabel of glasvezel).

Wél van deze tijd is de oproep van Minister Van Nieuwenhuizen (Infrastructuur en Waterstaat) aan werkgevers om met hun werknemers afspraken te maken over het zakelijk MONO rijden. Dus niet reageren op app-jes en al helemaal niet terugschrijven. Nee, kan ik me iets bij voorstellen. Leek mij heel logisch dat je dat niet doet tijdens het rijden. Al zul me mij nooit horen zeggen dat ik MONO rijdt.  Komt wellicht ook omdat ik wél handsfree bel tijdens het rijden. Tenminste, korte telefoontjes. Geen telefonische overleggen van een uur waarvan ik weet dat ik mijn hoofd helemaal bij het overleg moet houden. Dan kun je niet ook nog rijden.

Ik vind het ook zo’n heerlijk Nederlands ding weer: handsfee bellen in de auto is toegestaan in de wet maar we gaan mensen oproepen om het tóch niet te doen want niet bellen is nog veiliger dan wél bellen. Verbieden willen we het niet (daar is geen draagvlak voor) dus stoppen we heel veel geld in campagnes.

En in beide gevallen is het vandaag een deel van de dag nieuws, terwijl het morgen alweer vergeten is.

Deel dit bericht: