jun 062019
 

Ik wilde eigenlijk een blogpost maken over XOD, een interessante grafische omgeving voor het programmeren van Arduino. Hier kun je een uitlegfilmpje over XOD bekijken. Maar uiteindelijk blijkt dat alleen geschikt te zijn voor Arduino. En áls je op zoek bent naar iets anders dan de standaard Arduino IDE en je werkt ook met bv ESP32 of ESP8266 werkt, dan is PlatformIO een betere oplossing.

Andreas Spiess heeft er een mooi introductiefilmpje over gemaakt (zie hierboven) waarin hij laat zien hoe hij PlatformIO gebruik voor een Arduino UNO en daarna voor een ESP32. Hij demonstreert daarbij ook de mogelijkheid om per project de libraries die je gebruikt op te slaan of hoe een project met 26 libraries daar handig gebruik van kan maken.

Zelf heb ik er tot nu toe ook alleen gebruik van gemaakt in combinatie met code die geschreven was voor PlatformIO, nog niet vanaf scratch.

Je kunt bestaande Arduino projecten importeren, maar ook dan moet je het .INO bestand zelf nog even omzetten naar main.cpp en als je een project hebt met de nodige libraries zul je ook die verwijzingen eenmalig moeten opschonen.

In het geval van het project dat ik importeerde (de TTN-mapper die je hier kunt vinden) is een bonus dat de ook de Markup bestanden (de .md bestanden) rechtstreeks in de editor kunt bijwerken. De Readme.md van dat project heeft nu een lijstje van libraries die je nodig hebt, met links en in één geval de opmerking om vooral maar de laatste versie te gebruiken omdat de Arduino IDE anders in de war raakt. Dat probleem ben ik kwijt bij een overstap naar PlatformIO. Nadeel is dan weer dat de oorspronkelijke auteur van de code ‘gewoon’ de Arduino IDE gebruikt (ik gebruik een “fork” in Github). Het naar hem terug aanleveren van voorstellen voor wijzigingen in de code is een stuk ingewikkelder als ik overstap naar PlatformIO.

Deel dit bericht:
feb 102019
 

In de categorie “ik zou er zelf niet aan gedacht hebben om het te bouwen” vandaag een LCD paneel gemaakt van LED strips. Je weet wel, die strips zoals je die “overal” kunt kopen.

Op hackster.io kun  je lezen hoe dat kan. Nou beschrijven de auteurs van dat bericht het proces niet zomaar, want het werkt ook niet zomaar. Het is meteen ook een beetje een demo / advertentie voor een (op dit moment) aankomende Crowd Supply actie voor het benodigde controllerboard.

In de video hieronder (de audio is wat irritant, die kun je beter zacht zetten) zie je het assemblageproces en na 1:05 zie je een demo.

Het effect is (zeker op enige afstand) best goed.

Deel dit bericht:
feb 052019
 

In een tijd van 4K TV’s en grote beeldschermen op laptops zijn RGB LCD matrixschermen eigenlijk iets waar je waarschijnlijk zomaar elke dag mee in aanraking zult komen.

En hoewel ik wel al eens met een dot matrix module geëxperimenteerd had, kende ik het grotere (16×32 pixels) paneel met RGB LEDs dat min jongste zoon dit jaar voor zijn verjaardag vroeg nog niet. Hij had er zelf al een pagina met informatie bij Adafruit voor gevonden, dus hebben we de gok genomen (wat daar stond zag er niet onmogelijk uit) en kreeg hij een exemplaar.

Ik zal niet linken naar de site waar we zijn exemplaar gekocht hebben (hij leest dit bericht waarschijnlijk ook), het was een Nederlandse site, je moet even goed rondkijken want sommige webshop gooien er een flinke marge bovenop. Vind je het niet erg om lang te wachten, dan kun je uiteraard ook op AliExpress terecht. Let er dan goed op dat je een P3 paneel hebt (zoals deze), met LEDs van 3mm. Er worden er ook verkocht met LEDs van 4mm of 5mm grootte. Die zijn goedkoper, maar als je zo’n klein schermpje hebt (en niet van plan bent een display te bouwen van een paar meter bij een paar meter) dan wil je de kleinere hebben (of in ieder geval appels met appels vergelijken).

Hij had wat hulp nodig bij de eerste setup. Het paneel heeft een eigen 5V voeding nodig en de panelen zijn niet van bv zoiets als een micro-USB aansluiting voorzien. Daarnaast hadden we (tja, ik zei al dat ik er geen ervaring mee had) niet de bijbehorende Arduino shield erbij besteld. En dat betekende dat we de connector met 16 kabels met Dupont connector moesten verbinden met de Arduino.

Maar goed, ook dat ging eigenlijk probleemloos. Het installeren van de Arduino client op zijn laptop was eigenlijk nog het meeste werk omdat de Arduino downloadsite wat problemen leek te hebben. Maar na een uurtje hadden we het geheel aan de praat.

Lees verder….

Deel dit bericht:
jan 272019
 

Note to my regular readers: I am not switching over to English for all posts, just  for some of the more technical / aimed at specific audience ones.

Last week I noticed a project on hackster.io that used an ATtiny. But it wasn’t an ATtiny85 like I had used, but an ATtiny10. Still, it had the same amount of pins, the project describes how you build an ATtiny10 Binary Thermometer, so similar to what you would expect with an ATtiny85. While the difference in the numberpart of the name 10 versus 85 would suggest big differences.

My curiosity had been triggered and I started searching around.

Why ATtiny?
For those that also wonder about the ATtiny part of the name: it is part of the AVR family, an 8 bit-RISC-microcontroller (µC) originally developed by a company called Atmel (AT) in 1996. Atmel got acquired by Microchip Technology in 2016 but the name of the chip stayed of course. One branch of the AVR family are the megaAVR or ATmega microcontrollers. The Arduino UNO uses an ATmega328 as its engine and many other members of the family are used on the other Arduino boards.

The ATtiny is part of the tinyAVR branch of the family, they have less on-chip memory, less pins, a less extensive peripheral set than their Mega siblings, but are really cheap, and easy to use in small project.

Note: actually, you can buy an ATmega328 at AliExpress at the moment of writing even slightly cheaper than an ATtiny85 (€1,06 for the ATmega328 versus €1,53 for the ATtiny 85 incl. shipping). Both microcontrollers need more than the bare controller to program them, but both can work on their own, without needing any additional parts. Both are happy with both a coin cell battery or 5V. The socket for the ATmega328 might be a bit more expensive (but you’re talking cents differences) and of course you might simply don’t want to waste the space on your board if you don’t need 28 I/O pins.

What about the numbers?
The first digit of the number that comes after the designation ATtiny makes sense, it is the amount of flash memory in kibibyte (KiB), so an ATtiny85 has 8KiB of flash memory. The second digit is the mdoel type. There you would expect newer models or more powerful models to have higher numbers. But so far I have not found a page that can explain the logic behind the numbering. If you look at the timeline of release (see below, source) you can see that they are not chronological.

And the other stuff?
Often, the designation of the chip stops there. A project would describe that it used an ATtiny85 or (like metnioned) an ATtiny10. But if you want to buy them online the package type also is important. For example, the ATtiny85 is available as:

  • DIP-8N, => this is the one you need if you want to use a breadboard or a socket!!
  • SO208-8, => good for surface mounting, could be used for permanent papercircuits
  • TSSOP-8, => also used for surface mounting, “thin body size”
  • QFN-20 => this one has no “legs” on the outside

If you search for the ATtiny85 on AliExpress for example you will find both ones that have pins and ones that are meant for surface mounting.
In the image on the left, the top was has ATTINY85-20PU DIP-8 in the description. The 20 means it can run on 20Mhz, the DIP-8 indicates the DIP package. There also exist (more expensive) 10PU chips, often indicated as ATtiny85V-10PU that run on lower frequency and are even more power efficient. Lowest price I could find on AliExpress was about 4 euro a piece.
The second one mentions TINY85 SOP8 and, combined with the image, tells you that it is the package meant for surface mounting.

In general there are two things to do if you want the figure out what a specific ATtiny can do. The Wikipedia page for the ATtiny is really helpful. It was filled by someone who had a similar question as I had, but more time. (Thank you!). And the Microchip site has all the datasheets for their microcontrollers. Reading the documentation can be very useful (as always 🙂 )

A lot of people complain that the info is not consistent, and I agree. Take for example the image at the top of this post for the  AT tiny 402 – SSFR. It was taken from this official PDF for the ATtiny202/402 .
It says that the first digit is the amount of flash (consistant), the second the feature set (?) and the third the number of pins (6=20 pins, 4=14 pins, 2=8 pins), but why then not add that digit for all chips?
Carrier Type, Temperature Range, Package Type are also not always provided in that way.
If you download the PDF for the ATtiny85 (and 25, 45), you won’t find that info (there are more files here, I haven’t gone through them all).

I have to admit, I’m not really satisfied with this post yet. I’ve got the idea that there still are more variations of ATtiny chips than I have been able to explain here. And also, I still am not convinced myself that ATtiny85 is the most optimal choice for the projects that I’ve been building. But at least I hope I’ve given you some idea of what to look out for if you want to buy them yourself.

Additions? Corrections? Please leave them in the comments below!

 

Deel dit bericht:
okt 282018
 

De site/toepassing is niet nieuw, maar ik had simpelweg nog geen reden gehad om er eerder naar te kijken: MIT App Inventor.

Vandaag heb ik er voor het eerst mee geëxperimenteerd. De aanleiding is een wat groter project waarbij ik sensorwaarden die via een ESP32 worden verzameld direct op een mobiel apparaat wil kunnen ontvangen (dus niet via WiFi / MQTT etc). Het idee is om daar BLE (Bluetooth Low Energie) voor te gebruiken, de ESP32 heeft standaard WiFi en BLE ingebouwd. Maar de standaard apps die je voor BLE kunt downloaden hadden wat moeite met het verwerken en zeker met het netjes weergeven van de data die op deze manier binnen kwam. Zelf een app bouwen voor iOS of Android had ik in het verleden wel al eens geprobeerd, maar in beide gevallen was het installeren van de benodigde tools/software en het krijgen van een basisbegrip van hoe e.e.a. werkt al voldoende reden om daar niet teveel extra tijd in te steken.

Ik was dan ook een beetje sceptisch toen ik de verwijzing naar MIT APP Inventor tegenkwam. Maar, de eerste indruk na een paar uurtjes testen is heel positief. Goed, de eerste beperking voor nu is nog dat er nog geen ondersteuning is voor iOS. Dat was voor mij geen echt probleem, ik heb beide ter beschikking.
Heel prettig is wat mij betreft dat ik meteen in de online omgeving aan de slag kon. Ik kon met een Google account inloggen, naar keuze voor mij dan dus via @gmail.com of via @ixperium.nl omdat we Google Apps for Education gebruiken. Maar helemaal mooi werd het na het koppelen van mijn Android toestel via de MIT AI2 Companion App die ik via Google Play kon installeren. Na het scannen van een QR-code of het invoeren van een korte code werd mijn toestel gekoppeld aan het project waar ik mee bezig was. Dat betekende dat wijzigingen meteen werden doorgevoerd en te testen waren.

Het bouwen van een applicatie voelde heel vertrouwd, enerzijds heb je de ontwerpomgeving waar je knoppen, lijsten etc. op je scherm plaatst. Om er voor te zorgen dat die knoppen daadwerkelijk iets doen gebruik je de “Blocks” omgeving. Als je met Scratch kunt werken of met de Blocky achtige omgevingen zoals ook bij de Micro:bit gebruikt worden, dan kun je hiermee eenvoudig overweg.
En ook wijzigingen die je hier doorvoert worden meteen in de app op je smartphone doorgevoerd.

Heb je app helemaal klaar, dan kun je een .apk bestand downloaden op je smartphone. Dat is dus een “echte” app die gewoon zelfstandig werkt, los van de online omgeving. Nou staan de meeste smartphone tegenwoordig zo ingesteld dat ze niet zomaar apps installeren die niet in Google Play staan. Maar als het goed is, dan is dat één vinkje dat je moet aanzetten. Ik heb nog niet uitgezocht hoeveel werk de optie is om je app via Google Play te delen via App Inventor, want dat is voor mijn doel niet nodig.

Conclusie
Voorlopige conclusie is dat deze omgeving voldoende flexibiliteit biedt voor wat ik nodig heb.  De app is nog niet klaar dus nog geen filmpje etc. van het eindresultaat. Dat wordt nog vervolgd.

Deel dit bericht:
feb 232018
 

WOW is een geheel terechte uitspraak als het gaat om dit project. Het is geen “weekendprojectje”, je ziet het resultaat van 2,5 jaar ontwikkelen door Scott Bezek en verschillende versies.

Het heeft zo ongeveer alles in zich wat je kunt verzinnen: het ontwerp van de behuizing zodat het met een lasersnijder gemaakt kan worden. In de behuizing een overbrenging met tandwielen en een cylinder waarvoor hij moest berekenen hoe groot hij moest zijn (stukje Wiskunde dus). Op de Arduino zit een eigen ontworpen PCB die maximaal 12 units aan kan sturen, alle ontwerpen zijn open source beschikbaar via github.
En de filmpjes bij de deelstappen, deels in animaties zoals hieronder, zijn al een project op zich. Blader dus zeker ook door de beschrijving heen!

Ik ben in ieder geval diep onder de indruk.

Deel dit bericht:
feb 182018
 

Via de enthousiaste video’s van Nick van Educ8s kwam ik afgelopen week erachter dat ePaper displays voor Arduino en Raspberry Pi inmiddels goedkoop genoeg zijn geworden om ook voor eigen hobbyprojecten zinvol te zijn.

Het voordeel van een ePaper display is uiteraard het lage energieverbruik, nadeel is de lage beeldverversingsfrequentie en het gegeven dat ze meestal alleen zwart/wit zijn. En inderdaad, als je een groot scherm wilt, dan gaat het alsnog in de papieren lopen, maar een scherm van 1,54 inch in zwart/wit kost via eBay zo’n 18 Amerikaanse dollar. Bij AliExpress kwam ik andere versies tegen, zoals deze met zwart en rood voor zo’n 15 euro.

Belangrijk is om even goed op te letten. Op eBay staan ook goedkopere exemplaren, maar die beschikken niet over de benodigde connector/kabel:

Een van de goedkopere aanbieders had wél plaatjes met de kabel, maar in de beschrijving van wat geleverd zou worden stond de “XH2.54 20cm 8Pin” kabel niet erbij. Navraag leerde ook dat die niet geleverd werd. Even opletten dus.

Voor de Raspberry Pi wil je waarschijnlijk een “Hat” hebben, zoals deze. Dan kun je het display namelijk direct op je Raspberry Pi prikken. Als je dan een Raspberry Pi Mini gebruikt in plaats van zo’n grote lompe Pi 3, dan ziet het er meteen ook goed uit.

Deel dit bericht:
jan 032018
 

“Papa, hoe werkt deze dan eigenlijk?”. Dat was de vraag die ik kreeg toen mijn oudste dochter het zakje zag liggen met een van de bestellingen van AliExpress. Eerder vandaag hadden we namelijk samen naar deze blogpost gekeken toen het ging over de verschillende manieren waarop de fijnstofmeters verbinding maken met de ESP8266. Toen ging het over UART, SPI en I2C (als jou dat niets zegt, lees dan ook even die blogpost!).

Er waren twee manieren om erachter te komen op welke manier dit kleine LCD verbonden moest worden met een Arduino (of ESP8266): foetelen (!) en op de pagina van de verkoper kijken of naar de tekst bij de pinnen kijken. Dat was gemakkelijk: naast GND en VCC waren er maar 2 pinnen over, dus was het geen SPI, en met SDA en SDL bij de andere twee pinnen was het duidelijk: het was een I2C verbinding.

“Maar hoe zorg je er dan voor dat er tekst op komt? Moet dat dan pixel voor pixel?”, was de vervolgvraag. Ja, maar gelukkig ook weer niet. Daar hebben mensen namelijk “bibliotheken” voor gemaakt die een groot deel van de complexiteit verbergen. “Laten we het gewoon een uitproberen”, zei ik. Nu was de pagina van de verkoper toch nog handig, want we moesten nog een paar dingen meer weten, bijvoorbeeld of hij 3V of 5V wilde hebben. Als de verkoper die info niet online had staan, dan was even op de achterkant van het LCD scherm kijken ook handig. Daar stond namelijk OLED-091, en als je dat in Google invoert krijg je een zee van informatie. Het LCD-scherm kan zowel op 3V als op 5V en heeft een SSD1306 chip. Adafruit heeft daar een library voor gemaakt voor de Arduino en ook voor de ESP8266  is er eentje te vinden. Eitje dus om dit aan de praat te krijgen. Of zo dachten we.

Het aansluiten van de kabels, het installeren van de bibliotheken, het openen en draaien van een van de voorbeelden, dat ging inderdaad zonder problemen. Maar toen kwam de vraag: “Kunnen we ook ons eigen plaatje laten bewegen??”. Ehm, ja, maar dat duurde uiteindelijk een uur voordat het werkte. Daarom ook een blogpost om vast te leggen hoe we het uiteindelijk voor elkaar gekregen.

Lees verder….

Deel dit bericht:
jan 012018
 

Als je dit weblog regelmatig bezoekt, dan weet je dat we afgelopen week druk bezig zijn geweest met het last-minute deelnemen aan een experiment dat het RIVM, samen met anderen nu voor het tweede achtereenvolgende jaar uitgevoerd hebben: het meten van de hoeveelheden fijnstof tijdens de jaarwisseling.

Daarbij wordt gebruik gemaakt van relatief goedkope sensoren die door particulieren ook zelf opgehangen kunnen worden. Dat brengt uiteraard veel uitdagingen met zich mee, zo hebben wij zelf ook gemerkt toen we wilden deelnemen. Naar aanleiding van de aankondiging heb ik al een tweetal blogposts geschreven naar aanleiding van informatie die ik sindsdien gevonden had: blogpost #1 en blogpost #2. Zoals zo veel dingen lijkt het eenvoudig, maar komt er toch heel wat meer bij kijken als je het goed wilt doen.

Omdat het voor ons onmogelijk was om een Nova SDS011 sensor tijdig in huis te krijgen, zijn we aan de slag gegaan met een Shinyei PPD 42NJ samen met een BME280, een super kleine geïntegreerde sensor voor zowel luchtvochtigheid, temperatuur, luchtdruk en hoogte. Dat geheel werd in een PVC T-stuk bevestigd en achter het Frans balkon van ons huis opgehangen. De gebruikte code was een combinatie van de code van het RIVM van vorig jaar (voor de Shinyei) met de code van dit jaar (voor de SDS011 + BME280). Ik heb de code nog iets verder aangepast op basis van het script waar ik eerder over schreef zodat we ook zelf de ruwe waarden van de sensoren konden volgen. Dat was maar goed ook, want op de officiële site bleef de lijn van de meting bijna vlak:

 Sowieso worden voor de Shinyei sensoren alleen de ruwe PM2.5 metingen doorgegeven die dan op de server omgerekend zouden moeten worden naar µg/m3. Of dat hier helemaal goed gaat weet ik niet, maar omdat onze sensor pas 2 dagen voor de jaarwisseling online kwam ontbrak het aan de mogelijkheid hier nog echt contact over te hebben met het RIVM. Voor de duidelijkheid: vanuit het RIVM werd de afgelopen heel snel, vriendelijk en uitvoerig via de mail gecommuniceerd. Niets dan complimenten daarover!

De stevige piek die je in de afbeelding ziet was toen ik na registratie toch even het script met de omrekening gebruikt had (foei). Maakt niet uit, de grafiek die ik in Google Sheets liet maken (met dat stukje eruit geknipt) laat wél voldoende verschil tussen (ruwe) waarden zien om interessant te zijn.

Lees verder….

Deel dit bericht:
dec 282017
 

OK, één bericht nog dan voordat ik ga schrijven over onze eerste fijnstofmeter die (als alles volgens plan gaat) ook tijdens de jaarwisseling online te volgen is.

Naast de bestelde Shinyei PPD42 die vorig jaar door het RIVM gebruikt is, hebben we een tweetal DSM501 modules van Samyong in huis en blijkt er nog een Plantower PMS5003 onderweg te zijn die (vanwege een wat vaag leveringsprobleem) waarschijnlijk ingehaald wordt door de Novafitness SDS011 die het RIVM dit jaar gebruikt (en die ook door o.a. OK Lab Stuttgart gebruikt wordt).

Dus was ik verder op zoek gegaan naar info specifiek voor die sensoren.

In dit bericht over de DSM501 module wordt ook gesproken over de Air Quality Index (IAQ, IQA) en de bijbehorende verschillen tussen de  Europese Common Air Quality Index (CAQI) die in 5 stappen van 0 tot 100 loopt en de 6 niveaus van de AQI index die in de VS en China gebruikt worden en die van 0 tot 500 (of meer) loopt. En er blijken meer smaken te zijn. Het bericht legt uit hoe de verschillende indexen te berekenen.

Op het forum van The Things Network kun je een hele thread vinden over sensoren met de nodige verwijzingen. Hier is een beschrijving te vinden van (nog) een oplossing gebaseerd op LoraWAN

Het aansluiten van de PMS5003 gaat net weer wat anders dan van de andere sensoren, maar ook daar is informatie over te vinden online. Hij maakt gebruik van een seriële verbinding, net zoals (zo begrijp ik van het RIVM) de SDS011.

Dit bericht ten slotte is niet erg positief over de betrouwbaarheid van de PPDN402 en op dit blog deden ze een test in de keuken waarbij de conclusie was dat het aantal deeltjes dat daar de lucht in geslingerd wordt minstens zo erg is als buiten.

Lees verder….

Deel dit bericht: