mrt 052017
 

Vandaag heb ik eindelijk wat meer tijd kunnen besteden aan een van de “concurrenten” van de micro:bit, namelijk de Circuit Playground van Adafruit. En ik weet wel, het als een concurrent plaatsen maakt het meteen zo’n “wie is beter?” discussie en dat levert niet altijd de meeste informatie op. En ik neem ook aan dat als iemand van Adafruit dit bericht zou lezen (via Google Translate), ze meteen zouden zeggen dat ze het geen concurrent vinden, maar producten die naast elkaar kunnen bestaan. En dat is ook zeker zo, maar het kan hoe dan ook geen kwaad om beide producten ook met elkaar te vergelijken. Want ze hebben een groot aantal dezelfde functionaliteiten en toch ook weer duidelijke verschillen.

Ik heb ze hieronder naast elkaar gezet. De vorm is uiteraard verschillend, de Circuit Playground is rond, zoals een aantal andere boards die door Adafruit ontworpen zijn en zo gemakkelijker in kleding te verwerken zijn. Beiden hebben grote GPIO-aansluitingen waar je met krokodilbek-klemmen kabels aan kunt bevestigen. Ze hebben allebei drukknoppen, een kompas, een accelerometer aan boord. De micro:bit heeft een led pixel matrix met 1 kleur, de Circuit Playground heeft maar 10 pixels, maar dat zijn NeoPixels die heel veel kleuren kunnen hebben. De micro:bit heeft Bluetooth Low Energy (BLE), voor de Circuit Playground moet je daarvoor een aparte uitbreiding van bijna 20 euro aanschaffen. De Circuit Playground heeft een mini speaker (kan geluid maken, geen muziek op die manier) en een licht sensor. De micro:bit kan via een connector 20 IO-poorten beschikbaar maken. Beiden hebben capacitive touch mogelijkheden.

Op de externe connectiviteit via BLE na zou je zeggen dat beide apparaten niet zo heel veel van elkaar verschillen. Waar het al wat anders wordt is als het gaat om het open source hardware ontwerp van de micro:bit die iedereen in staat moet stellen om apparaten te produceren, terwijl de Circuit Playground alleen via Adafruit gemaakt wordt. Ook zijn er voor de micro:bit vele verschillende, online en offline ontwikkelomgevingen, bijvoorbeeld deze via https://pxt.microbit.org/. De Circuit Playground sluit aan bij de Arduino ontwikkelomgeving, al kun je er ook via Python tegenaan praten. Beide omgevingen hebben de nodige voorbeelden als het gaat om projecten die leerlingen kunnen bouwen, zie bijvoorbeeld deze pagina van Adafruit, al zal de micro:bit met de grotere installed base in het Verenigd Koninkrijk hier het voordeel hebben qua snelheid waarmee die voorbeelden uitgebreid worden.

Toen ik bij Adafruit het voorbeeld zag van een Circuit Playground in combinatie met een losse BLE adapter moest ik meteen denken aan de micro:bit die ik in huis had. Die heeft wél BLE én kan via RX/TX communiceren met de buitenwereld (voor uitleg over UART en RX/TX zie dit bericht), zou ik die niet aan de Circuit Playground kunnen koppelen? Nou, dat ging iets minder gemakkelijk dan ik gehoopt had. Hierboven kun je zien dat het gelukt is, al gebruik ik nog geen BLE. Ik heb een Arduino Leonardo via een seriële verbinding gekoppeld aan de micro:bit die op zijn beurt weer gekoppeld is aan de Circuit Playground. De Arduino geeft een getal tussen 0 – 10 door aan de micro:bit, die laat hem zien op zijn matrix en geeft hem dan weer door aan de Circuit Playground die op basis daarvan 0 – 10 Neopixels aanschakelt. Allemaal steeds via 1 draadje. Uitleg over de werking volgt in een aparte blogpost. Het weekend is namelijk al weer voorbij.

Deel dit bericht:
sep 202016
 

arduino_ide_windows_10 kodi_windows10

Ik kon me eigenlijk niet eens meer herinneren wanneer ik voor het laatst in de Windows 10 Store geweest was. Dat was dat ding van Microsoft waarin je alleen maar apps kon vinden die je op een Windows 10 tablet (en die heb ik niet) een deel van de functionaliteit geven van de “echte” applicaties die ik gewoon op mijn Windows 10 computer kon installeren. Maar daar lijkt nu verandering in gekomen te zijn. Microsoft heeft namelijk Centennial (ook wel bekend als de Desktop App Converter) beschikbaar gemaakt en zowel gisteren als vandaag kwam ik een applicatie tegen die daarmee geconverteerd was en in de Store opgenomen:

Het gaat om de Arduino IDE en om de KODI Mediaplayer. De links leiden je direct naar de store.
Wat mij betreft biedt dit eindelijk het beste van 2 werelden op een Windows PC (iets wat Apple-gebruikers natuurlijk al een tijd hebben): eenvoudige installatie, volledige functionaliteit (geen uitgeklede applicaties) én de mogelijkheid van automatische, gemakkelijke updates. Zeker bij een applicatie zoals KODI is dat heel fijn, want die wordt nog tamelijk intensief doorontwikkeld en had tot nu toe nog geen automatische updates. Datzelfde is het geval voor de Arduino IDE trouwens.
Goede ontwikkeling dus wat mij betreft.

Deel dit bericht:
 Reacties uitgeschakeld voor Nu ook “gewone” Windows applicaties in de Windows 10 Store  Tags: , ,
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 112016
 

20160710_102118_HDR

Het vierde en voor nu even laatste product dat aan mij beschikbaar gesteld is door de prototype-shop.nl is de Pulse Sensor voor Arduino. Het is een hartslagmeter die je kunt aansluiten op een Arduino. Op de website van de producent vind je een video met uitleg en een verwijzing naar de GitHub-repository met de library en voorbeeldcode. Ik kreeg de code niet aan de praat op een ESP8266. Dat heeft te maken met de code voor de interrupt die niet compatible is met de ESP8266. Ik had de ESP8266 willen gebruiken omdat ik dan tenminste ook een draadloze verbinding via WiFi op zou kunnen zetten tussen de unit waarmee ik mijn hartslag wilde meten. Plan was namelijk om de Pulse Sensor te vergelijken met de hartslagmeter van mijn Tacx. En als ik 40 minuten lang op een (stationaire) fiets zou gaan zitten, dan was zo min mogelijk kabels natuurlijk wel handig.

In plaats daarvan heb ik een Arduino Uno gebruikt in combinatie met de 1Sheeld shield die ik een paar weken geleden uitgebreid getest heb. In combinatie met een batterij en een smartphone zou ik daarmee ook relatief compact mijn hartslag moeten kunnen monitoren.

(foto: http://pulsesensor.com/)

(foto: http://pulsesensor.com/)

Het aansluiten van de hartslagmeter zelf is eenvoudig, er zitten maar 3 kabels aan: 3,3 V, GND, A0 (Analoog 0). Als je het filmpje van de producent bekeken hebt, dan weet je echter dat je voordat je dat doet, even een paar dingen moet doen. Voor de voorkant van de sensor zit er gewoon een plaksticker in de verpakking. Om de achterkant tegen vocht / zweet te beschermen wordt aangeraden om deze rijkelijk te voorzien van hot-glue (het helpt dus als je een lijmpistool in huis hebt) voordat je het stickertje met klittenband er op plakt waarmee hij aan de klittenbandriempje voor je vinger of het klemmetje voor je oor blijft zitten. Gelukkig had ik het filmpje al even bekeken en eerder deze week het lijmen gedaan zodat ik toch gewoon kon testen.

Daarna is het in principe een kwestie van het uploaden van de code naar de Arduino en je kunt in de serial monitor de hartslagmeting voorbij zien komen. Als je het voorbeeld in het filmpje helemaal volgt, dan kun je 2 LED’s laten flikkeren om te laten zien dat je hart echt nog slaat.

Ik heb zoals gezegd die constructie niet nagebouwd, ik wilde aan de slag met de 1Sheeld en mijn Tacx.

Lees verder….

Deel dit bericht:
jul 092016
 

Wellicht vind je hem flauw, maar ik vind de playlist van Sparkfun getiteld “Fellowship of the Things” wel grappig. Het ligt een beetje in de lijn van de creatieve Adafruit filmpjes waarbij je een mooie combinatie hebt van creativiteit en technologie. Of zoals de ondertitel van Invent To Learn zegt: Making, Tinkering, and Engineering (in the Classroom) ineen. Daarom hier als kijktip.

Deel dit bericht:
jul 042016
 

20160703_135208_HDRIn de categorie “had ik eigenlijk al langs eens mee moeten experimenteren” valt zeker het product dat ik dit weekend eens flink aan de tand gevoeld heb: een RFID Module voor Arduino en vergelijkbare apparaten. Immers, RFID (radio frequency identification) en zusje NFC (near field communication) kom je op steeds meer plekken tegen. Van mijn bankpas, OV-kaart, de personeelspas op het werk, de etiketten aan de kleren die ik bij sommige zaken koop, tot mijn telefoon (LG G4), om maar eens een paar voorbeelden te noemen.

20160702_141424_HDR-1Het setje dat ik ter beschikking gekregen heb, bestaat uit een RFID-RC522 reader, een kaart in credit card formaat en een tag in sleutelhangerformaat. De eerste stap die je moet uitvoeren (tenminste, dat is aan te raden) is het solderen van een van de twee bijgeleverde headers, de rechte of die met een hoek. Ik koos voor de header met de hoek van 45 graden, als je de reader vast wilt kunnen prikken in een breadboard zul je de andere kiezen.

Daarna heb je in totaal 7 kabels nodig om het geheel aan te sluiten op de Arduino.

Uno_RFID-RC522

Aansluitschema RFID-RC522

Daarbij moet je even opletten omdat het wellicht lijkt alsof de kabels in dezelfde volgorde van “rechts naar links” gaan, maar dat is niet zo. Als je van onder naar boven (met het zilverkleurige kristal aan de bovenkant) telt, dan is de onderste aansluiting voor 3,3 V (niet voor 5V). De GND (ground) zit niet er direct naast, maar eentje verder (je ziet GND staan op het bordje), die moet je aansluiten op een van de GND aansluitingen op de Arduino (er zijn er meer).

Dan krijg je de overige 5 aansluitingen:

  • De RST zit tussen 3.3V en GND op de RC522 (de gele kabel in het plaatje), die sluit je aan op ~9.
  • De aansluiting boven de GND sluit je niet aan, die erboven (turquoise in de afbeelding) gaat naar ~11
  • Die daarboven (groen) gaat naar ~11
  •  Die daarboven (oranje) gaat naar ~13
  • De bovenste (blauw) gaat naar ~10

Niet helemaal helder? Klik dan even op de afbeelding om goed het plaatje te bekijken.

DumpInfo

Output van DumpInfo script

De volgende stap daarna is uiteraard het vinden en installeren van de juiste library voor de RFID-RC522. De meest gebruikte is die van Michuel Balboa, dus die heb ik ook gebruikt. Na het installeren van de library heb je ook nu weer de beschikking over voorbeelden. Het voorbeeld dat je het meest inzicht geeft over de inhoud van een tag is DumpInfo. Daarmee krijg je namelijk niet alleen het UID (unieke ID van de tag), het type van de tag (PICC type: MIFARE 1KB in dit geval) maar ook de inhoud van de kaart / tag  te zien.

De twee tags die bijgeleverd worden zijn standaard leeg, daar is dus niet heel veel aan te zien. Wil je meer weten over wat je nou eigenlijk te zien krijgt in zo’n dump, dan is het handig om wat meer te weten over de MIFARE 1KB RFID kaart. De kaart maakt gebruik van 16 sectoren (in de dump genummerd 0 – 15) of 64 blokken (genummerd 0-63). Elk blok heeft ruimte voor 16 bytes aan data (te zien als kolommen genummerd 0 – 15 in de dump). De informatie die je ziet wordt in hexadecimaal formaat opgeslagen, dus daarom zul je in het algemeen in die dump alleen maar “zooi” zien, d.w.z. geen informatie waar je echt chocola van kunt maken zonder dat je de software de conversie naar leesbare tekst laat uitvoeren.

Wat je mogelijk ook zal opvallen in de dump of de screenshot hiernaast is dat er regelmatig de combinatie FF FF FF FF FF FF ziet staan. Goed gezien! Die combinatie is de standaardsleutel die gebruikt wordt bij het krijgen van toegang tot de data. Als je bv deze sketch als uitgangspunt neemt dan heb je daarmee eigenlijk alles wat je voor een eenvoudige situatie nodig hebt: je zou het unieke ID van een tag kunnen gebruiken om de Arduino bepaalde acties op te laten starten, je zou dan zoiets kunnen bouwen als de Nabaztag/tag van bijna 10 jaar geleden. Wil je specifieke info op de tag opslaan of met de Arduino vanaf de tag lezen, dan kan dat ook.

Maar ik wilde meer. Want ik had immers een LG G4 met NFC. En toen werd het wat ingewikkelder…
Lees verder….

Deel dit bericht:
jun 272016
 

20160626_135304De 1Sheeld (met”ee“) zou de vervanging moeten zijn voor al je andere Arduino shields (met “ie“). Dat mag ook wel, want heel goedkoop is hij niet, ruim 50 euro. Daar moet hij dus wel wat voor kunnen. Voldoende reden dus voor een uitgebreide test.

In de basis is de 1Sheeld een gewone shield die je op je Arduino Uno / Leonardo etc. plaatst. De site geeft aan dat bijna alle modellen ondersteund (5V en 3,3V) worden, maar dat geldt dan eigenlijk vooral voor de modellen met de pinnen op vergelijkbare wijze als een Uno, want anders is er weinig te plaatsen. Dus een Arduino Micro of Pro Mini zullen in principe wel kunnen werken, maar handig is het niet.

En handig is juist een uitgangspunt van de 1Sheeld. Het is namelijk niet zo dat je de functionaliteit niet zou kunnen nabouwen, maar dat kost dan ongetwijfeld meer tijd en werk. Wat je nu namelijk doet is dat je een app op je Android telefoon installeert, via Bluetooth verbinding maakt met de 1Sheeld en dan de keuze hebt uit een 40-tal “shields”.

In het filmpje hieronder zie je een aantal voorbeelden van shields die alleen of in combinatie worden toegepast:

Het eerste voorbeeld dat je ziet is het LED-shield: je telefoon laat dan een afbeelding van een LED zien en vanuit je Arduino zet je die (draadloos/via bluetooth) aan of uit. Niet de meest spannende natuurlijk, maar het was de eerste die ik uitprobeerde, klein beginnen. De code ervoor kun je hier vinden (de LED zat op digitale pin #4) .
Al wat interessanter is het Button-shield, ook te zien in de video. Je telefoon functioneert dan als (draadloze) knop. Ik heb in het filmpje een LED op de Arduino aangesloten en zet die vanaf de telefoon aan of uit. Die op de Arduino aangesloten LED kan van alles zijn, een motor, een relay, noem maar op. De code ervoor kun je hier vinden.
Overigens: in de video zie je een micro-USB aansluiting aan de telefoon hangen, die is er alleen omdat de accu redelijk leeg was. Dit is namelijk de Wolfgang Android telefoon die ik eind 2013 bij de Aldi kocht. Ik weet niet wat de exacte ondergrenzen voor de app zijn, maar Android 4.2 op een niet al te krachtige telefoon is genoeg.

Na die eerste twee eenvoudige pogingen was het tijd voor iets nuttigere zaken.

Lees verder….

Deel dit bericht:
 Reacties uitgeschakeld voor Getest: 1Sheeld Arduino Shield voor Android  Tags: ,

Getest: Dot Matrix Module

 Gepubliceerd door om 06:00  Arduino, ESP8266, Hardware, noads
jun 202016
 

dot-matrix-moduleAfgelopen weekend heb ik de tijd genomen om uitgebreid aan de slag te gaan met een product waarvan ik vooraf alleen wist dat het een “Dot Matrix Module” heet. Je ziet hiernaast een afbeelding van de module. Op basis van die naam en de afbeelding ben ik daarom op zoek gegaan. Zo kwam ik er al snel achter dat de module gebruik maakt van een MAX7219 van Maxim. En dan niet één, maar vier die aan elkaar gekoppeld zijn. De module heeft echter maar één aansluiting bestaande uit vijf pinnen waarmee je dus alle vier de modules tegelijkertijd aan kunt sturen.

Arduino en ESP8266Je kunt de module in principe rechtstreeks aansluiten op een Arduino of vergelijkbare kloon. Omdat ik ook met een ESP8266 en een WeMos d1 mini (ook op basis van een ESP8266) aan de slag wilde (zie de foto’s hiernaast), was een aparte 5V voeding noodzakelijk. Dat doe ik op basis van een oude USB-kabel waar de stekker aan een kant afgeknipt is met in plaats daarvan aan de zwarte en rode kabel een dupont stekker die ik in een breadboard kan prikken. Wel belangrijk is om dan de ground van die externe voeding ook aan de Arduino of ESP8266 aan te sluiten!

Om meteen even bij het eindresultaat te beginnen, het filmpje hieronder laat een aantal opties zien:

Mocht je vinden dat de matrix niet erg fel is, dat is een combinatie van de hoeveelheid daglicht, de gebruikte camera én het feit dat ik de instellingen meestal redelijk laag heb staan omdat ik anders gek werd van het felle licht. In de demo zit een stukje waarbij verschillende lichtsterktes getoond worden, daar kun je zien dat hij tamelijk fel gezet kan worden.

Je ziet een stand-alone Arduino Uno, dus zonder netwerkverbinding die een van de standaard bij een library bijgeleverde demo van mogelijkheden doorloopt. Daarna zie je de ESP8266 eerst stand-alone, zonder gebruik van het netwerk en daarna de WeMos d1 mét gebruik van het netwerk. In dat geval gebruik de WeMos een wifi-verbinding om via een NTP-server de actuele datum en tijd op  te vragen en laat die dan op het scherm zien. Zoals je op het einde kunt zien, kan de WeMos ook gewoon via de pinnen voorzien worden van 5V, dus je zou dit geheel in een behuizing kunnen stoppen en dan heb je met één kabel naar een USB-stekker het geheel aan het draaien (is een project voor een ander weekend).

Toch ging het niet allemaal zo eenvoudig als het hierboven nou lijkt. Wil je het zelf ook gaan doen, lees dan even verder.

Lees verder….

Deel dit bericht:
jan 162016
 

20160116_153712_NormalAls zaterdagmiddagproject vandaag weer eens iets waarvan de titel vast geen duizenden views gaat trekken. Ik had afgelopen week een klein LCD-schermpje binnen gekregen. Het is 1.44 inch groot en heeft een resolutie van 128×128 pixel. Een resolutie van 2x niks zou je zeggen, maar ja het schermpje kost dan ook €2,98 incl. verzendkosten. En als je een ESP8266 gebruikt en alleen maar even wat statusinformatie wilt laten tonen, dan heb je helemaal niet veel nodig.

De uitdaging bij dit soort schermpjes is altijd het vinden van de juiste aansluitingen voor de vaak vele pins die zo’n scherm heeft, deze heeft er 8 én het vinden van de juiste library voor Arduino / ESP8266. Ik noem die laatste twee overigens wel in één adem, maar ook hier is het zo dat er nét een beetje verschil zat tussen hoe je e.e.a. zou moeten doen op een “echte” Arduino versus een ESP8266.

Op de foto hier bij het bericht zie je het eindresultaat met naast het LC scherm en de ESP8266 aan de rechterkant een DHT11 die luchtvochtigheid en temperatuur meet.

Als library heb ik gebruik gemaakt van deze library van “sumotoy” (Max MC Costa uit Milaan, Italië) . Belangrijk daarbij is dat het hier dan gaat om de “Pre-Release-1.0r4” (mogelijk werkt 1.0r5 ook, maar die heb ik niet getest). De “master” branch heeft namelijk nog geen ondersteuning voor de ESP8266.

De 8 aansluitingen stonden daar ook netjes aangegeven:

TFT kant   -------- ESP8266  
- Vcc       -->     +3V3V(!!!!)
- Gnd       -->     Gnd
- CS        -->     D0
- RST       -->     D2
- A0        -->     D1
- SDA       -->     Mosi (D7)
- SCK       -->     Sclk (D5)
- LED       -->     +3V3V

Ik heb voor mijn scherm geen weerstand aangesloten al zou een regelbare weerstand hier helemaal niet verkeerd zijn geweest omdat het scherm nu nog ernstig last heeft van licht “bleed” om de randen heen. You get what you pay for zullen we maar zeggen al ga ik er even vanuit dat dat weg valt als je het schermpje in een enclosure opneemt.
De library heeft een groot aantal voorbeelden aan boord, daarbij moet je even opletten dat bij de ESP8266 de 3 #define statements voor de poorten in de scripts moet zijn:

#define __CS 16
#define __DC 5
#define __RST 4

Dat is niet in alle voorbeelden meteen zo, dus dat moet je dan even aanpassen.
Daarnaast kreeg ik eerst boven in het venstertje een balk met ruis te zien. Ik gok dat het ongeveer 32 pixels hoog was. De library is namelijk geschikt voor verschillende schermpjes en Sumotoy heeft zelf blijkbaar een aantal schermpjes die 128×160 pixels zijn. De oplossing was eenvoudig. In de library map zit ook een map genaamd “_settings” met daarin een bestand genaamd “TFT_ILI9163C_settings.h”. In dat bestand staan bovenin een aantal #define statements. Je moet hier de voor jou juiste kiezen. Standaard is “#define __144_RED_PCB__//128×128” gekozen en omdat ik een rode PCB had zou dat moeten kloppen. Maar het bleek dat in mijn geval “#define __144_BLACK_PCB__//128×128” het gewenste effect gaf.

Lees verder….

Deel dit bericht: