mrt 012020
 

Het kon al op specifieke apparaten zoals de Lopy of in custom builds of als je Circuit Python gebruikte op hardware die daar ondersteuning voor heeft. Maar op de ESP32 had je tot voor kort nog niet de mogelijkheid om BLE (Bluetooth Low Energy) te gebruiken binnen MicroPython als je gebruik maakte van een van de officiële firmware images. Met ingang van release 1.12 is dat eindelijk wél zo. Flashen van mijn ESP32 deed ik volgens de instructies die hier staan. Nieuw, wat mij betreft, was ook dat Thonny, de gratis open source IDE voor Python (en MicroPython) ook ondersteuning heeft voor het rechtstreeks werken op de ESP32.

Dat was tot voor kort nogal een gedoe. Anders dan bij de apparaten die Adafruit maakt, kon je de ESP32 niet als USB-drive zien na aansluiten op je laptop. Maar de Thonny “ziet” de ESP32 en je kunt dan bestanden openen die er op staan (ander dan bij Arduino vindt compilatie niet al vooraf plaats dus je kunt de programmacode ook achteraf nog lezen), nieuwe bestanden aanmaken én je hebt de REPL beschikbaar om interactief commando’s uit te voeren die dan op de ESP32 worden uitgevoerd.

Dat maakt het debuggen een stuk gemakkelijker. Mauro Riva  heeft op zijn blog niet alleen blogposts over het gebruik van MicroPython staan (zoals deze over het zelf compileren van de firmware met BLE support), maar ook een github repository. Daar kun je ook een aantal voorbeelden vinden.

Lees verder….

feb 242020
 

Ik weet het: echte ontwikkelaars maken voor hun versiebeheer geen gebruik van Onedrive. Dan moet het op zijn minst via Github. Prima, gebruik ik ook, af en toe. Als iets af is, om te delen.

Maar als ik gewoon wat aan het klooien ben,  als ik bv een TCRT5000 sensor op de watermeter in de meterkast geplakt heb om het ronddraaien van het tellerschijfje te registreren en dat dan weer via MQTT over Wifi vanaf een ESP8266 door te sturen naar een Mosquitto-server zodat ik die waarden in Home Assistant weer kan geven en in influxDB kan archiveren, dan ben ik meestal eerst even gewoon met code aan het stoeien.
Met een beetje mazzel (zoals deze keer) met Over The Air (OTA) updates zodat ik niet op een krukje op USB-kabel lengte afstand van de meterkast hoef te blijven zitten.

Tijdens zo’n traject kan het wel eens voorkomen dat ik denk “oei, nu heb ik een stuk code weggegooid of aangepast en dat had ik niet moeten doen”.

In dat geval kan het helpen om het .ino bestand op te slaan binnen een map die gesynchroniseerd wordt met Onedrive. Privé of zakelijk maakt niet uit. Ik gebruik in dit geval mijn privé Onedrive. Het mooie van Onedrive (en waarschijnlijk een aantal van de andere beschikbare diensten ook) is dat hij aan versiebeheer doet. Dus in dit geval, waarbij ik een stuk code had verwijderd dat ik toch nog wilde gebruiken, ging ik naar onedrive.com, zocht daar de map en het programma-code bestand op en selecteerde een oudere versie. Onedrive kan ze niet online weergeven zodat je even snel kunt knippen en plakken, het bestand wordt gedownload naar je computer. Ook goed. Als backup voor foutjes tijdens het klooien in de Arduino IDE in ieder geval iets wat mij al wat tijd bespaard heeft vandaag. 🙂

feb 102020
 

Van de hand van Dejan Nedelkovski  is op Howtomechatronics.com een prachtig zelfbouwproject verschenen. Het gaat om een “Hot Wire Cutter”, een apparaat waarmee je vormen uit piepschuim kunt snijden. Het principe is eenvoudig: je hebt een draad waar je stroom op zet, die draad wordt warm en daarmee kun je dan piepschuim snijden. De draad wordt, via een mechanisme van aluminium buizen, steppermotoren en kabels naar voor, naar achteren en naar boven en onder bewogen. Daarnaast kan het plateau waar de piepschuim blok op bevestigd is ronddraaien. In de video wordt het uitgebreid toegelicht.

Het geheel wordt aangestuurd door een Arduino Uno (+ Arduino CNC Shield + 3 A4988 Stepper Drivers),  GRBL firmware, Universal G-Code Sender en Inkscape. De Arduino is open source hardware, de gebruikte firmware en software is eveneens open source. Alle verbindende onderdelen zijn uit de 3D-printer waarvoor de bestanden bijgeleverd zijn.

Alles bij elkaar moet het apparaat zo’n 220 euro kosten aan onderdelen. Daar zit wel een handsnijder voor 35 euro bij, ik zou me kunnen voorstellen dat je het draad waarmee je gaat snijden goedkoper kunt krijgen. Dan nog kost het ongeveer zo’n 200 euro, de aluminium balken (47 euro totaal) en de steppermotoren (33 euro totaal) hakken er stevig in  Ik heb ook niet meteen behoefte aan een machine die piepschuimfiguren voor me kan snijden. Maar cool vind ik het in ieder geval!

 

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.

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.

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….

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!

 

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.

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.

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.