mrt 062017
 

Gisterenavond laat plaatste ik al een kort bericht over mijn poging om een micro:bit aan de Circuit Playground te koppelen. Het werd uiteindelijk (voor nu) een koppeling tussen Arduino -> micro:bit -> Circuit Playground via een seriële verbinding (1 enkel kabeltje van apparaat naar apparaat). Nog niet via Bluetooth of andere draadloze verbinding vanaf smartphone etc, maar dit was een noodzakelijke eerste stap. Omdat ik nog wat vragen heb die ik ook wil kunnen voorleggen aan mensen die geen Nederlands begrijpen, doe ik de rest van de blogpost in het Engels.

Over to English:

After watching this video and reading the tutorial by Tony DiCola, I wondered if it would be possible to use a micro:bit as bluetooth bridge between my smartphone and the Circuit Playground. After all, the micro:bit has BLE and support for the serial protocol. Looking at the code that Tony provided however made it clear quickly enough that it would not be a simple cut-and-paste action. The code looked very complex and very much specific for the combination Circuit Playground <-> Bluefruit LE module. So I started looking for other code that would do the same, but was easier for me to understand.

The most basic example of serial communication via the TX/RX pins comes from Adruino themselves using SoftwareSerial. I loaded that example on the Circuit Playground. For the micro:bit I used the https://pxt.microbit.org/ editor which (in the advanced tab) has support for the serial interface of the micro:bit to create a simple script that should receive and display any data received and would send data on the press of a button. Test #1 nothing happened…

Lees verder….

Deel dit bericht:
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:
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 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:
okt 032015
 

espruino_picoAls je het hebt over kleine, betaalbare apparaten waarmee je zelf of studenten/leerlingen aan de slag kunnen gaan als het gaat om het bouwen van robots, aansluiten en uitlezen van sensoren, programmeren, spelen etc. dan komen er twee merken bijna direct voorbij: Arduino en Raspberry Pi. Voor een uitgebreid overzicht van de verschillen tussen die twee, zie dit filmpje, de hele korte samenvatting: de Raspberry Pi is meer een kleine, compacte computer, dus compleet met een grafische interface zoals je dat van Windows of een Mac kent. Maar anders dan je Windows-laptop heeft de Raspberry Pi ook pinnen op het moederbord zitten waar je bijvoorbeeld de aansturing van een motor van een robot mee kunt regelen etc. Een Arduino heeft geen eigen grafische interface, die sluit je aan op een computer (Windows, Mac, Linux, of een Raspberry Pi). De Arduino gebruikt minder stroom en de programmacode wordt opgeslagen in het ingebouwde geheugen en heeft geen SD-kaartje of harde schijf nodig om te werken.

Via dit bericht over het installeren van de Chromium browser op een Raspberry Pi (op zich al interessant) kwam ik bij twee apparaatjes die elk hun eigen interessante eigenschappen hebben en (voornamelijk) als alternatief voor een Arduino gezien kunnen worden: Espruino en Tessel 2

Lees verder….

Deel dit bericht:
sep 092015
 


Hoe oud was jij toen je je eerste smartwatch kreeg? En toen je hem zelf samenstelde? Of toen je voor het eerst een succesvol Kickstarter project had waarmee je geld binnen haalde voor je eigen smartwatch?
Ik denk niet dat veel mensen kunnen zeggen dat ze dat deden toen ze 8 jaar oud waren. Omkar, die je hierboven in het filmpje ziet kan dat wel.

De O-Watch is gebaseerd op een Arduino compatible TinyDuino en zit een een behuizing die van de 3D printer komt. Het is dan zeker ook niet een product dat je koopt voor je kind om de hele dat mee rond te lopen, zoals een gewone horloge. Het is een ding dat je steunt via Kickstarter als je je kind wil laten zien hoe zo’n smartwatch in principe werkt. De actie loopt nog 24 dagen en het minimumbedrag is al gehaald. Voor een dikke 1000 dollar heb je er 10 in huis voor als je er mee in de klas aan de slag wilt (natuurlijk, dan heb je meer dan 10 leerlingen maar er samen aan werken is dan een pré).

Deel dit bericht: