dec 202017
 

Vandaag vindt in Amsterdam bij De Waag Society de workshop plaats ter voorbereiding van de meting van de luchtkwaliteit tijdens de jaarwisseling 2017-2018. Dit doen ze weer samen met het RIVM die een hele site heeft over het samen meten aan luchtkwaliteit. Ze zochten deelnemers in Amsterdam en daar woon ik niet, dus helaas. Op de site van het RIVM (b)lijkt het echter niet alleen om metingen in Amsterdam te gaan, logisch eigenlijk ook natuurlijk. Op die site staat ook dat ze dit jaar met The Things Network (TTN) en LoraWAN aan de slag gaan. Extra interessant natuurlijk.

Dichter bij huis, in Venlo, werken studenten van Fontys bij het Greentechlab aan een experiment voor (o.a.) tijdens de jaarwisseling. Omroep Venlo had er een reportage over (klik even door voor de video). Hier geen uitgebreide pagina, maar ik herken in het filmpje de Marvin van RDM Makerspace, dat betekent in ieder geval dat ze ook met LoraWAN aan de slag gaan. Niet duidelijk is of ze dan KPN gebruiken (en bv een demo-account) of “gewoon” TTN. De standaard bijgeleverd temperatuur en vochtigheidssensor zit er ook aan. Ik kan in het filmpje niet zien welke sensor ze gebruiken. Want daar zit nogal wat variatie in.

Het RIVM heeft er een hele pagina over online staan (en de website bevat nog veel en veel meer info). Het wordt dan al heel snel “technisch” met term en als PM 2.5 en PM 10. De getallen 10 en 2.5 verwijzen naar de afmetingen van deeltjes die gemeten kunnen worden in microns (micrometers). Dan heb je het over klein en nog kleiner. Het RIVM blijkt te meten met PM10, dus deeltjes van 10 micrometer en kleiner. Dat is een beetje balen want de sensoren die ik heb liggen (nog niet getest overigens) meten 2,5 micrometer en kleiner. Dat lijkt dan nauwkeuriger, maar als we het hebben over “fijnstof” dan telt alles van 10 micrometer en kleiner mee.  En dus is het handiger om in diezelfde maat te meten. Overigens, voor fijnstof geldt hoe kleiner de deeltjes hoe slechter en hoe minder van alles hoe beter. Er is geen veilige ondergrens.

Ik heb het RIVM om meer info gemaild. De sensor die zij gebruikten, de Shinyei PPD 42NJ  zou ik deze week nog in huis moeten kunnen hebben. De aansluiten op de Marvin moet relatief gemakkelijk zijn, dan zou het vooral gaan om de vraag hoe ik verbinding maak met de centrale backend van het RIVM om er voor te zorgen dat mijn data uit Deurne ook in hun overzicht/meting opgenomen wordt.  Wordt (hoop ik) vervolgd.

p.s. de kaarten met overzichten van de niveaus fijnstof zijn best verontrustend.

Deel dit bericht:

Het programmeren van een ATTiny85

 Gepubliceerd door om 06:52  Arduino, Hardware
dec 042017
 

Hoewel ik al ervaring had met het programmeren van een ATTiny85 als die onderdeel was van een Digispark board (links op de foto),  heb ik dit weekend geleerd dat het programmeren van een losse chip (rechts op de foto, de andere 9 exemplaren zitten in het buisje erboven) iets ingewikkelder is/was. Was eigenlijk omdat het nu ik het een keer gedaan heb weet en het niet echt moeilijker is.

Het Digispark board had zelf nog een USB-aansluiting, die had ik nu niet. Nou dacht ik dat ik daar een oplossing voor had in de vorm van een “Pluggable Development Board Voor ATtiny13A/ATtiny25/ATtiny45/ATtiny85 Programmering Editor Micro Usb Power Connector” (link). Inmiddels heb ik begrepen dat het  mogelijk moet zijn om, door eerst een bootloader op de ATTiny85 te zetten, ik iets kan met dat board. Maar vooraf nog niet.

Dus moest ik aan de slag met de “bekend” alternatieve optie waarbij een Arduino Uno gebruikt wordt om de code op de ATTiny85 te zetten. Daarvoor is de volgende constructie nodig:

De detailbeschrijving van het aansluiten kun je hier vinden.

De Arduino Uno moet dan een script krijgen dat standaard te vinden is in de IDE via Bestand > Voorbeelden > ArduinoISP > ArduinoISP

Daarna was het even zoeken naar de dingen die ik moest doen om het ATTiny85 script *via* de Arduino Uno naar de ATTiny85 te krijgen.

Uiteindelijk heb ik hier de url voor de Board managers voor “attiny” (https://raw.githubusercontent.com/damellis/attiny/ide-1.6.x-boards-manager/package_damellis_attiny_index.json) en “ATTinyCore” (http://drazzy.com/package_drazzy.com_index.json) gevonden, die toegevoegd via Bestand > Voorkeuren en daarna de beide boards geïnstalleerd.

Daarna was het een kwestie van het instellen van board, de programmer moest omgezet naar “Arduino as ISP” en wonder boven wonder werkte het allemaal daarna.

Dát het werkte wist ik was toen ik de chip aangesloten had op het circuit dat ik eerst getest had met het Digispark board. Dat is een werkwijze die ik iedereen kan aanraden. Het programmeren van de Digispark via USB gaat veel sneller, je hoeft niet en chip om te prikken etc.
Maar dat kan dus wellicht straks ook met het ontwikkelboard, nadat ik een bootloader op een ATTiny85 chip gezet heb.

Ik kan het me helemaal voorstellen als je denkt “Wat een gedoe!”. Dat klopt. Maar daar staat tegenover dat de ATTiny85 ook een pareltje is. Qua afmetingen, qua prijs (minder dan 1 euro per stuk), het gegeven dat je hem gewoon op een 3V knoopcelbatterij kunt aansluiten. Kortom, voor “kleine” projecten, papercircuits etc. is het een fantastische chip.

p.s. het script waarmee ik aan de gang ging dit weekend kwam hier vandaan. Blijkt ook prima op de ATTiny85 te draaien.

Deel dit bericht:
nov 272017
 

Ondanks alles zijn kinderen nog lang niet zo’n nerd of geek als hun papa is. En hoewel ik natuurlijk sowieso helemaal niet over ze mag klagen, kreeg ik vandaag toch nog wel weer wat meer hoop. Vandaag kwam namelijk weer eens een pakje uit China binnen. Nu met zo’n “bekende” 37-in-1 sensorkit. Een zakje (ik had niet gekozen voor de duurdere versie met doosje) met daarin 27 verschillende sensoren voor aan de Arduino, de ESP8266 of de micro:bit.

Totale kosten zo’n 10 euro, geen geld dus. Ongetwijfeld niet de meest hoogstaande kwaliteit, maar elke sensor zit al op zijn eigen printplaatje met pinnen om meteen een dupont-kabeltje op aan te sluiten.

Wat me positief verraste was de belangstelling en de nieuwsgierigheid die het pakje met sensoren opwekte. Niet omdat ze iets moesten of wilden bouwen. Nee, gewoon nieuwsgierig naar waar al die 27 sensoren voor dienden, wat je er mee kon doen. Sommigen kenden ze al (relais, thermometer etc.) maar andere ook weer niet. Het bijbehorende kaartje bevat niet meer dan alleen een afbeelding van de sensoren en de bijbehorende naam. Ze kunnen er via YouTube dus heel eenvoudig achter komen.

Maar dat moet nog even wachten want komend weekend “moeten” we eerst nog een Sinterklaas surprise in elkaar knutselen op basis van een servo, een ATtiny85, LEDjes, hout, verf,…..
De week erna hebben we wél tijd. Ik ben eens benieuwd hoe ver we komen.

Dat kinderen alleen maar willen gamen en tv kijken is net zoveel onzin als dat hele digital natives verhaal van voorheen. 🙂

Deel dit bericht:
jun 052017
 

Via Adafruit kwam ik bovenstaande video van KaneFernandes Design, een 19 jarige student Product Design aan de Middlesex Universiteit in London. De titel is een beetje misleidend, er staat “360º Smartphone Camera Drone Rig using Arduino Uno & XBEE“, er wordt niet echt gebruik gemaakt van een drone, maar van de motor + propellor van een drone. Maar inderdaad, de smartphone “vliegt” om het object heen. 🙂
Daarmee is het project niet minder mooi, vooral ook omdat de video laat zien hoeveel (denk-)stappen er aan het eindproduct vooraf gaan.
De eerste versie maakte heftig gebruik van duct tape, ik kan tegenwoordig niet anders meer dan meteen aan Astrid Poot denken als ik zoiets zie, maar de volgende versie werd een stuk degelijker en technischer. Maken is zeker niet hetzelfde als wat knutselen met spullen!

Hoe dan ook, het is een mooi gedocumenteerd voorbeeld. Een van de resultaten die ermee gemaakt zijn:

Deel dit bericht:
apr 102017
 

Als het in het onderwijs in Nederland over “programmeren” gaat worden eenvoudige vragen al heel snel ingewikkeld. Dus een vraag als “Welke programmeertalen zouden onze leerlingen/studenten moeten kennen?” (bron) is niet helemaal zonder risico. Immers, je moet dan gaan nadenken over het doel dat je daarmee hebt. Wil je ze leren programmeren? Of juist coderen? Of software ontwikkelen? Ik ga niet eens proberen naar bronnen te linken die ze op één hoop of op juist heel verschillende hopen (en dan per bron ook verschillend) gooien.

Dus laat ik het maar even veilig houden in deze blogpost. Zo’n 9 jaar geleden vroeg ik me af welke programmeertalen ik allemaal zou moeten leren. Zoals ik toen beschreef:   Basic was mijn eerste kennismaking met programmeren, maar daar kon je (toen) zo weinig mee dat ik er niet veel interesse voor had. Op de universiteit leerde ik Turbo Pascal om daar vervolgens nooit meer wat mee te doen. Daarna kwam ik in de Windows omgeving en Visual Basic (binnen Office!) en Active Server Pages (ASP) terecht. Mijn eerste kennismaking met JavaScript was in de browser, ASP werd vervangen door PHP toen ik weblogtools ging gebruiken op basis van die taal. En daarna werd het een opeenvolging van “wat heb ik nodig”. Zo kwam er een beetje Python bij, een heel klein beetje .NET en eveneens een klein beetje Java. Dat was toen. Sindsdien zijn er dingen gewijzigd en gelijk gebleven.

Lees verder….

Deel dit bericht:
apr 012017
 

Afgelopen week kwam de kopertape binnen (5 rollen van 30 meter), dus dit weekend wat tijd vinden om er mee aan de slag te gaan. Ik heb voor mezelf en voor de kinderen even wat bronnen / inspiratie verzameld:

Het is niet noodzakelijk om al de bovenstaande bronnen te bekijken, start met de basis (bv via de info bij Pauline) en experimenteer van daaruit verder.

Natuurlijk zijn er ook filmpjes om te bekijken:

Er zijn er meer, ik vind bovenstaande filmpjes al een aardige intro, variërend van eenvoudig/handig, tot stap voor stap en ingewikkeld (met solderen en een ATTiny85 er in).

Ze moeten nog beginnen, dus nog geen foto’s van resultaten, zodra die er zijn, komen die natuurlijk ook weer.

Deel dit bericht:
mrt 192017
 

Since some of the people that inspired this weekend project can’t read Dutch, I decided to do the follow up of part 1 / deel 1 in English. That first part, posted yesterday evening late showed work in progress. Today, the Panda Ballerina was completed. Before I show you the end result, I wanted to go into the steps involved in a bit more detail.

Like I mentioned, the Paper Panda Prototype by Jeannine Huffman was the initial inspiration. That project is already a year old, but I think it was Per-Ivar Kloen that tweeted about it recently. That combined with the tweet by Sarah Magner determined the theme: a Panda Ballerina.
Now both the Paper Panda and the Ballerina use copper tape / paper circuits, my order of tape is still on its way, so that wasn’t possible yet, but I did receive the ATtiny85 chips, although in a different form factor, in my case as a DigiSpark ATtiny85. We had some TowerPro SG90 servos and a couple of LEDs, so the idea was to create one using thin plywood.

Template
First step was to come up with a template. Now I have to admit, Googling one is no problem for a private setting, for say classroom use it is best to use one where you are more sure about the rights to re-use and make derivative works then I am for this one: I could not find the original creator. So, draw one yourself if you want to be 100% sure that it is OK. After you draw you figure, you have to separate the two parts. In my case I made a copy and using the lasso tool, I erased the body for one copy and the head for the other copy. Then I added something neutral looking that could act as a nek. For the next version that part is going to be smaller and less visible, but you need something to attach the servo to.

Print, transfer to plywood, cut the plywood with a jigsaw, carefully smooth with sandpaper and add color. We glued a second black/white version to the wood because that allowed the drilling of holes for the LEDs in the head without later seeing the actual LEDs.

Lees verder….

Deel dit bericht:

Te lui om te solderen

 Gepubliceerd door om 23:37  Arduino, Hardware
mrt 162017
 

Vandaag kwam een pakje binnen met een aantal DigiSpark ATtiny85 ontwikkel boards. Toen het bordje in 2012 op Kickstarter verscheen betaalde je 33 Amerikaanse dollars voor 3 exemplaren incl. verzendkosten. In 2017 betaal je via AliExpress het enorme bedrag van €10,60 voor 10 exemplaren incl. verzendkosten.

Op het bordje zit een ATTiny85 chip. Voordeel van de DigiSpark is dat je geen aparte programmer nodig hebt. Er zit een kleine USB aansluiting (“gewone” USB maar klein omdat er geen behuizing omheen zit, zie de foto’s hiernaast) op en vanuit de Arduino IDE compileer je het script en zet je hem er op. Er zitten 6 I/O Pinnen op (2 zijn gebruikt voor USB), er is 8kB Flash-geheugen beschikbaar (ongeveer 6kB nadat de bootloaderer op staat) dus scripts moeten vooral heel klein en eenvoudig zijn. Je hebt de beschikking over I2C en SPI, PWM op 3 pinnen (meer mogelijk met Software PWM), ADC (Analog-to-Digital Converter) op 4 pinnen, een Power LED en een onboard Test/Status LED (op Pin 0).

Zoals je op de foto’s bij het bericht ziet krijg je headers bijgeleverd die je naar wens er op kunt solderen of niet. Ik was daar vanavond te lui voor, dus heb ik (nadat ik eerst het blink-script getest had met de ingebouwde LED) een LED met weerstand gewoon aan elkaar gebonden en de pinnen rechtstreeks in respectievelijk pin 3 en de ground bevestigd. Zoals je ziet werkte dat.

Ik vind deze combinatie handig omdat het qua programmeren net weer een stukje gemakkelijker is dan een kale ATTiny85. De kosten zijn niet echt hoger, ook voor de kale chip betaal je een euro (en dan moet je een programmer aanschaffen) én dit is nog steeds plat genoeg om bijvoorbeeld in een paper circuit te verwerken. Voor de installatie-instructies, zie deze pagina. Je kunt de Digispark ook op een batterij laten werken en dan de 5V of de VIN aansluiting gebruiken. Het hoeft dus niet persé aan een USB aansluiting.

Deel dit bericht:
 Reacties uitgeschakeld voor Te lui om te solderen  Tags: ,
mrt 112017
 

Toen ik afgelopen week met de micro:bit en de Circuit Playground (CPG) aan de slag ging, lukte het me niet om via serial een verbinding tussen de CPG in de richting van de micro:bit op te zetten in combinatie met de CPG library. Zónder die library kon ik dataverkeer beide kanten op realiseren, zodra ik de library initialiseerde met CircuitPlayground.begin(); ging er geen verkeer meer de kant op van de micro:bit.

De oplossing bleek te liggen in het gebruik van de hardware serial aansluitingen van de CPG in plaats van software serial waarmee ik aan de slag was. Tot nu had ik alleen met de hardware serial gewerkt als het ging om communicatie via de USB-poort van een Arduino. Dat deed ik dan via bv via Serial.println("Setup complete"); waarbij ik dan in de Serial monitor op mijn computer de output kon zien, ideaal voor het debuggen. Als een Arduino board een hardwarematige seriële aansluiting heeft (soms hebben ze er meer dan 1), dan kun je de andere hardwarematige poorten ook gebruiken. Die heten dan achtereenvolgens Serial1, Serial2 etc.
De hardwarematige poorten werken prima samen met de CircuitPlayground code. Ik heb een nieuwe versie van het script op Bitbucket gezet. In CPG_Serial_Slave.ino staat de versie met de softwarematige seriële poort in CPG_Serial_hardware.ino staat het script beter werkt en dan de hardwarematige seriële poorten gebruikt. De code op de micro:bit is nog steeds dezelfde microbit-Serial-Count-Master_and_Slave.hex die je hier kunt vinden.

De werking is als volgt: nadat beide script op respectievelijk de micro:bit en de CPG geladen zijn wachten de boards op een start teken. Door op de B-knop van de micro:bit te klikken begint het script daar. De micro:bit laat een tekst zien op het display waarin aangegeven wordt dat eerst een 0 (nul) naar de CPG gestuurd wordt. De CPG wacht totdat er data via de seriële lijn binnen komt. Is dat het geval, dan wordt de string die ontvangen is omgezet in een getal. Er worden dan evenveel Neopixels aangezet als het getal hoog is. Dan wordt hetzelfde getal terug gestuurd. Dat lijkt zinloos, maar de micro:bit wacht op het terug ontvangen van een getal voordat hij verder gaat, zo blijven beide processen in sync. De micro:bit laat zien dat hij +1 bij het getal optelt voordat hij het terug stuurt. Dat gaat verder totdat het getal groter is dan 10. Er zijn maar 10 Neopixels, dus reset de micro:bit het getal dan naar 0 en stuurt de 0 door zodat ook op de CPG alle Neopixels uitgeschakeld worden.

Ook dit was een test om het communicatiemechanisme beter te begrijpen. Interessant wordt het als ik nu een telefoon via Bluetooth aan de micro:bit koppel en instellingen draadloos door kan geven, of een WeMos D1 ESP8266 chip (kost zo’n 3 euro) om er voor te zorgen dat de CPG alsnog over een Wifi-verbinding kan communiceren. Dat zou via Firmata moeten kunnen, want ook die kan zowel via USB als via de hardwarematige seriële poort aangestuurd worden. Wordt dus later vervolgd.

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