Sep 142016
 


Het woord “Mesh-netwerken” in titel is eigenlijk helemaal fout, het zijn eigenlijk “Mesh networks” in het Engels over “Vermaasde netwerken” in goed Nederlands. Maar bij vermaasde netwerken zijn er nóg minder mensen die een idee hebben waar ik het over heb. Dus ook nu eerst even wat achtergrond: normaal gesproken als wij met onze laptop, iPad, smartphone of ander draadloos of zelfs bekabeld apparaat verbinding maken met het / een netwerk, dan is er een duidelijke rolverdeling. De laptop, iPad etc. is een node die verbinding maakt met een ander apparaat dat als belangrijkste taak heeft om toegang te verlenen tot het netwerk, tot internet, tot een server etc.
Dat kan een Wifi router zijn die het signaal van jouw apparaat ontvangt en dan doorgeeft via het bekabelde netwerk naar een ADSL router of een andere aansluiting met het internet etc.
Kenmerkend daarbij is dat er een infrastructuur beschikbaar is die daar specifiek voor aangelegd is. Maar wat nou als je sensoren hebt die op plekken moeten kunnen functioneren waar je geen vaste netwerkaansluiting hebt of waar nog geen WiFi-netwerk ligt of geen netwerk waar jij toegang toe hebt? In het bos of gewoon in een stad zelfs?

Dan kun je kiezen voor een netwerktechnologie die een heel groot bereik heeft, zoals bij een LoraWAN of je kunt betalen om toegang te krijgen tot een WiFi-netwerk van een ander of een mobiel netwerk (via GPRS of 3G/4G).
Maar wat nou als het helemaal niet zo noodzakelijk is dat je verbinding maakt met de buitenwereld. Wat als je eigenlijk vooral wilt kunnen communiceren met andere nodes die bij jou in de buurt zijn? Bijvoorbeeld met andere robots (zoals in dit voorbeeld), of wellicht straks zelfs andere zelfsturende auto’s.

Dan is een mesh-netwerk een oplossing. Daarbij is elke node gelijkwaardig aan elkaar en is er geen specifieke infrastructuur voor de onderlinge communicatie nodig. Vroeger, toen al die netwerken via kabels moesten worden aangelegd, was dat moeilijk schaalbaar (alles met alles verbinden via kabels wordt al snel een warboel), maar tegenwoordig met draadloze netwerken (via WiFi, Bluetooth of wellicht straks via Lora) is dat veel eenvoudiger.

De demo hierboven is leuk, het laat goed een sterke eigenschap zien: valt een node uit, dan werken de anderen gewoon verder, komt er eentje bij, dan wordt hij automatisch in het Mesh-netwerk opgenomen. Maar het gaat hier wel om een heel naïef netwerk waarbij elke node automatisch ook de informatie van de andere nodes vertrouwd. En dat zal niet altijd het geval zijn. Ook moeten de pakketten data die rondgestuurd worden niet té groot worden anders is elke node voornamelijk bezig met het afhandelen van de data van de andere nodes.

De code voor bovenstaand voorbeeld is hier op Github te vinden.

Deel dit bericht:
Sep 122016
 

Bovenstaande filmpje had ik gisteren via Twitter al gedeeld, maar ik vond het wel iets meer dan 140 tekens waard, dus vandaag een blogpost erover.
Ik heb het filmpje gemaakt tijden de Eindhoven Mini Maker Fare die afgelopen weekend plaats vond. Het was gewoon zo’n ding waar je dan naar kijkt en eigenlijk niet naar kunt stoppen met kijken.

Ik had me laten uitleggen dat hij gemaakt was met “Neopixels”, maar achteraf gezien begrijp ik dat dat een merknaam is die van Adafruit is voor individueel addresseerbare RGB kleuren pixels en strips gebaseerd op de WS2812WS2811 en SK6812 LED/drivers, die gebruik maken van een enkel-draads control protocol. Maar ook Adafruit heeft andere LED producten die adresseerbaar zijn (DotStars, WS2801 pixels, LPD8806 en “analoge” strips) die andere methoden van aansturen gebruiken.

Hoe dan ook, ik vond het er mooi uit zien. Maar toen Fleur Besters via Twitter vroeg of ik er ook een handleiding bij kende, ben ik toch nog even verder gaan zoeken.

Lees verder….

Deel dit bericht:
Sep 112016
 

micropythonHet was hier weer even een paar dagen stil. En ook nu nog geen kant en klare “zo moet je nadoen wat ik gedaan heb” blogpost, meer een “dit heb ik zover voor elkaar”.
Het logo hiernaast is van MicroPython, zie het maar als het kleinere broertje of zusje van Python. Waarom kleiner (“micro”)? Kleiner, omdat het daarom mogelijk geworden is om Python zo goed als volledig/volwaardig te draaien op devices waarvan dat voorheen niet mogelijk was. Een voorbeeld daarvan is de micro:bit, maar die zal voorlopig nog erg zeldzaam zijn in Nederland. Met dank aan een succesvolle Kickstarter die onlangs plaats gevonden heeft, is er nu ook een versie voor de ESP8266. En daar heb ik er wel een paar van in huis. Daarnaast zal ook de LoPy, die als het goed is eind deze maand verstuurd wordt, direct ondersteuning hebben voor MicroPython. Tijd dus om er alvast eens in te duiken.

Je kunt best veel lezen over MicroPython, maar ik kan je zeker de videoserie aanraden die Tony DiCola op het moment maakt voor Adafruit. Ze zijn wat langer, soms 45 minuten of iets langer, Maar Tony gaat heel uitgebreid en geduldig op de verschillende aspecten van MicroPython in. De video’s worden als livestream gemaakt, maar daarna toegevoegd aan hun eigen pagina met veel tekstuele toelichting, code-snippets en verwijzingen. Je kunt die op de Adafruit Learn website vinden.

Voor wat betreft “lezen” is deze eerste pagina sowieso een heel goede om te beginnen. Daar kun je o.a. verwijzingen vinden naar:

Lees verder….

Deel dit bericht:
Sep 072016
 

Als je meerdere robots hebt die je autonoom door een ruimte laat bewegen, dan zou het fijn zijn als ze niet tegen elkaar aan botsen onderweg. Dat is op zich te regelen door voortdurend te scannen of er een obstakel voor je zit of niet. Maar het nadeel van zulke routines is dat het tot gevolg kan hebben dat als er veel robots dicht bij elkaar zitten er een soort deadlock ontstaat. Geen van de robots komt meer vooruit.

Een team van onderzoekers heeft nu een algoritme ontwikkeld en gedemonstreerd waarmee robots dit probleem doorbreken. Het complete paper dat geschreven is op basis van dit onderzoek is hier te downloaden. Het is niet echt in lekentaal geschreven dus wellicht is gewoon het demo filmpje bekijken ook een idee.

(Getipt door Futurity)

Deel dit bericht:
Sep 062016
 

PiBakeryStel, je bent 17 jaar, neemt je Raspberry Pi wel vaker mee naar plekken waar er wel internetverbinding is maar die je RPi natuurlijk niet kent. Dan kun je natuurlijk gewoon een monitor meenemen om de RPi op aan te sluiten en dan de instellingen aan te passen, of op een andere manier een seriële interface tot stand brengen.

Of je maakt een tooltje waarmee je op je laptop (of Macbook) snel even de instellingen op de (micro-)SD kaart waar de RPi op draait kunt aanpassen. Dat is dan op zich weer niet zó eenvoudig, want in Windows zie je alleen de boot-partitie en daar kun je de WiFi-instellingen niet aanpassen.
En als je dan toch bezig bent, dan is het wellicht net zo handig om het tooltje zó te maken dat je hem ook kunt gebruiken om een nieuwe setup van een RPi eenvoudiger te maken. Door er voor te zorgen dat ook dan meteen het netwerk ingesteld wordt, software en applicaties (zoals Apache en MySQL) die je toch nodig hebt meteen de eerste keer geïnstalleerd worden en er meteen ook voor gezorgd wordt dat de VNC server op de RPi bij elke keer opnieuw opstarten gestart wordt.

PiBakery_exportEn als je dan helemaal goed bezig bent, dan maak je dat geheel open source, uitbreidbaar met nieuwe modules, de instellingen eenvoudig te exporteren naar XML-formaat, verzin je een handige en overzichtelijke interface die gebruik maakt van Blockly. O, en had ik al gezegd dat David Ferguson pas 17 is? Wauw!

Ik heb het nog niet vaak genoeg gebruikt om te ontdekken of er wellicht eigenaardigheden optreden bij het draaien van de software, maar ik weet in ieder geval dat ik mijn volgende RPi image(s) hiermee ga samenstellen. Scheelt heel wat werk achteraf. Natuurlijk, er kunnen nog een paar dingen handiger: zo is de enige WiFi setting die je nu kunt toevoegen eentje die gebruik maakt van DHCP. Ik gebruik voor mijn headless RPi’s zelf altijd een vast IP-adres. Dat kan ik via PiBakery via een omweg ook wel regelen, maar ja, omwegen maken de tijdswinst weer kleiner.

(Getipt door Raspberry Pi)

Deel dit bericht:

BBC micro:bit Morse code network

 Gepubliceerd door om 20:55  Algemeen, microbit
Jul 292016
 

Dit is er eentje die ik nog niet zo gemakkelijk zelf kan testen: een BBC micro:bit morse code netwerk. De reden ervoor is heel eenvoudig: ik heb op het moment maar 1 micro:bit en voorlopig vind ik dat ook even genoeg. Betekent natuurlijk niet dat dit niet ook met andere hardware uit te testen is. Bijvoorbeeld een BBC micro:bit in combinatie met een ESP8266 want ook die heeft (uiteraard) GPIO poorten en ook daar kun je micropython op draaien. Die heeft dan weliswaar geen ingebouwde knoppen, maar ook daar is een mouw aan te passen.

Dat zal wat mij betreft even moeten wachten want de komende weken wordt het ook hier even wat rustiger. Ik ga weer beginnen aan mijn gebruikelijke “wat meer offline dan anders” tijd tijdens de zomervakantie. Tot over een paar weken!

Deel dit bericht:
Jul 282016
 

About a week ago my BBC micro:bit arrived from Pimoroni and since then I have been figuring out what I can do with it. I usually blog in Dutch about that but since my write-up is much more useful if people that actually own a BBC micro:bit can read it. Which probably mostly means people from the UK at the moment. And also, this hadn’t been done in English yet (unlike the one for iBeacon).

The video shows the full process and demonstrates the process, I will limit myself here to some background info and the links + code that are mentioned in the video:

One time steps:

  • Install the mBed seriel driver if you are on Windows;
  • Install the most recent Espruino .hex (unless you reprogrammed the micro:bit for other languages);
  • Install the web IDE extension for Chrome.

After that you us the web IDE if you want to set/change the URL that is being broadcasted.

Note that you can much more with Espruino and the micro:bit than set it as a Eddystone URL beacon! You can read and write the GPIO pins etc just like you can with the other languages. Have a look at the documentation on the site.
One Idea suggested by Gordon Williams was that you can read these values and then transmit these as part of the URL. There is a problem with that though. You can only use 17 bytes for the URL which means it has to remain short. Also, you would have to build a URL shortener into the code since I cannot add parameters after a URL that has been shortened with goo.gl.

Lees verder….

Deel dit bericht:
Jul 252016
 
overzicht_bron_tessel_io

bron: https://tessel.io/docs/communicationProtocols

Drieletterwoorden hebben normaal gesproken niet veel toelichting nodig. Afkortingen van 3 (of 4) letters vaak wel. Daarom in dit bericht aandacht voor 4 afkortingen die te maken hebben met de communicatie tussen apparaten zoals een Raspberry Pi, een Arduino, de ESP8266, de BBC micro:bit met randapparatuur of sensoren.

Ik moet bekennen dat ik ze vaak gebruikt heb zonder te weten welk van de vier om welke redenen zou moeten kiezen. Meestal was het een kwestie van “wat wordt ondersteund?” en dan koos ik de eerste waarvoor ik code kon vinden.

Op tessel.io staat duidelijke uitleg voor hun eigen hardware. Ik ga de begrippen, verschillen en overeenkomsten generieker en in het Nederlands beschrijven.

Lees verder….

Deel dit bericht:
Jul 242016
 

In de categorie “ik kan niet alles zelf uitproberen” zal ik de komende tijd ook een aantal voorbeelden die anderen gemaakt hebben met de micro:bit laten zien. Hierboven zie je er eentje die qua code (de code is beschikbaar op github) heel eenvoudig is, geen écht doel heeft (nou ja, een spelletje) en daarmee wellicht wel juist een idee van iets wat je met je kinderen, leerlingen of studenten zou willen uitproberen.

Je moet er wel een strip Neopixels voor hebben. Dat zijn “leds” die verschillende kleuren kunnen hebben en allemaal individueel aan of uit te zetten zijn. De “originele” van Adafruit zijn hier te vinden, in Nederland kwam ik ze hier tegen.

Ik kon geen uitgebreide uitleg vinden bij de werking, maar over de wijze van aansturen zal ik nog wel een andere blogpost maken.

Deel dit bericht:

BBC micro:bit als iBeacon

 Gepubliceerd door om 16:35  microbit
Jul 232016
 

Omdat de micro:bit over Bluetooth 4.0 / BTLE (Bluetooth Low Energy) is het ook mogelijk om de micro:bit zit te laten gedragen als een iBeacon. Er zullen ongetwijfeld meerdere manieren zijn waarop dat kan, ik heb er één gebruikt via locly.com. Credits voor mijn uitleg gaan eigenlijk volledig naar dit bericht en filmpje, eigenlijk heb ik alleen de stappen herhaald en er een schermfilmpje van gemaakt.

Voor onderwijsdoelen (leerlingen/studenten laten spelen met iBeacon) werkt de site goed, wat echte bedrijfstoepassingen moeten gaan kosten is me niet duidelijk. Meestal als sites aangeven dat je je belangstelling kunt aangeven en zijn dan contact met je opnemen, is het geen goedkoop verhaal.

Ik heb nog niet kunnen ontdekken hoe ik ditzelfde voor Eddystone voor elkaar krijg. Het kan wel:

Maar het zoeken is nog even naar de juiste applicatie / site / code. Wordt vervolgd.

Deel dit bericht: