Zoekresultaten : micropython

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

apr 082018
 

Ik realiseer me dat de titel van dit bericht weer eens absoluut geen click-bait is. Als je toch verder leest: leuk! 🙂

Voor wie denkt: waar heeft hij het nou weer over, eerst even kort wat uitleg. Zoals je wellicht weet zijn er naast Arduino en Micro:bit tal van andere interessante oplossingen op het gebied van microprocessoren, kleine uitbreidingskaartjes met een chip er op die net als Arduino en Micro:bit gebruikt kunnen worden om sensoren te lezen, randapparaten aan te sturen, maar die vaak een fractie van het geld kosten. Bekendste op dit gebied was ongetwijfeld de ESP8266, als je de link volgt kom je bij een aantal berichten op dit blog daarover. De ESP8266 heeft inmiddels een opvolger, de ESP32. Het heeft even geduurd voordat ook de firmware en ondersteuning voor de chip op orde was, maar inmiddels zijn ontwikkelbordjes met de ESP32 goed en goedkoop te krijgen (zeker via online shops zoals AliExpress). Ook over de ESP32 heb je hier al meer kunnen lezen, de LoPy van Pycom was de eerste ESP32 die ik hier in huis haalde naar aanleiding van de Kickstarter in augustus 2016 alweer. Dat was ook mijn eerste kennismaking met MicroPython. Een programmeertaal die voor mij helemaal niet zo vanzelfsprekend was omdat ik (toen) nog niet eerder met Python geprogrammeerd had.

Sindsdien gebruikte ik MicroPython uitsluitend op de LoPy’s. Want pogingen om het op een ESP8266 handig aan het werken te krijgen waren op niets uitgelopen. Het was simpelweg teveel gedoe om de code te wijzigen.

Bij toeval kwam ik echter op YouTube deze serie instructiefilmpjes tegen:

Ik bekeek hem en was onder de indruk van het gemak waarmee, met dank aan rshell het nu mogelijk was om bestanden te uploaden en wijzigen op de ESP32. Overschakelen naar de REPL, weer terug naar de shell, het ging allemaal heel soepel. En ik had toevallig nog een ESP32 liggen die niks lag te doen.
Ik had hem aangeschaft al node voor LoRaWAN / TTN, maar helaas had ik bij het bestellen niet goed opgelet en een versie op 433Mhz besteld in plaats van op 868Mhz. Je kunt hem hier vinden (even opletten dus!). Je hebt helemaal gelijk als je zegt “maar voor 16 euro kan ik ook een Micro:bit kopen”. Klopt. Maar dat komt door de LoRa-module en het kleine LCD-schermpje. Wil je een gewone ESP32 zonder LoRa-module en zonder LCD, dan kun je er hier al eentje voor minder van 4 euro (incl. verzenden) vinden. En dan heb je dus een microprocessor mét WiFi en BLE en batterij-aansluiting.

Goed, ik ging het proberen. Maar ik wilde het niet op een Raspberry Pi doen, maar in het Linux Subsystem dat ik op Windows 10 heb draaien. Waarom? Omdat ik wilde weten of het nu eindelijk een volwaardig alternatief geworden is. Spoiler: ja, dat is het, maar je moet er wel even wat voor doen.

Lees verder….

sep 112016
 

micropythonHet was hier weer even een paar dagen stil. En ook nu nog geen kant en klare “zo moet je nadoen wat ik gedaan heb” blogpost, meer een “dit heb ik zover voor elkaar”.
Het logo hiernaast is van MicroPython, zie het maar als het kleinere broertje of zusje van Python. Waarom kleiner (“micro”)? Kleiner, omdat het daarom mogelijk geworden is om Python zo goed als volledig/volwaardig te draaien op devices waarvan dat voorheen niet mogelijk was. Een voorbeeld daarvan is de micro:bit, maar die zal voorlopig nog erg zeldzaam zijn in Nederland. Met dank aan een succesvolle Kickstarter die onlangs plaats gevonden heeft, is er nu ook een versie voor de ESP8266. En daar heb ik er wel een paar van in huis. Daarnaast zal ook de LoPy, die als het goed is eind deze maand verstuurd wordt, direct ondersteuning hebben voor MicroPython. Tijd dus om er alvast eens in te duiken.

Je kunt best veel lezen over MicroPython, maar ik kan je zeker de videoserie aanraden die Tony DiCola op het moment maakt voor Adafruit. Ze zijn wat langer, soms 45 minuten of iets langer, Maar Tony gaat heel uitgebreid en geduldig op de verschillende aspecten van MicroPython in. De video’s worden als livestream gemaakt, maar daarna toegevoegd aan hun eigen pagina met veel tekstuele toelichting, code-snippets en verwijzingen. Je kunt die op de Adafruit Learn website vinden.

Voor wat betreft “lezen” is deze eerste pagina sowieso een heel goede om te beginnen. Daar kun je o.a. verwijzingen vinden naar:

Lees verder….

jul 242016
 

In de categorie “ik kan niet alles zelf uitproberen” zal ik de komende tijd ook een aantal voorbeelden die anderen gemaakt hebben met de micro:bit laten zien. Hierboven zie je er eentje die qua code (de code is beschikbaar op github) heel eenvoudig is, geen écht doel heeft (nou ja, een spelletje) en daarmee wellicht wel juist een idee van iets wat je met je kinderen, leerlingen of studenten zou willen uitproberen.

Je moet er wel een strip Neopixels voor hebben. Dat zijn “leds” die verschillende kleuren kunnen hebben en allemaal individueel aan of uit te zetten zijn. De “originele” van Adafruit zijn hier te vinden, in Nederland kwam ik ze hier tegen.

Ik kon geen uitgebreide uitleg vinden bij de werking, maar over de wijze van aansturen zal ik nog wel een andere blogpost maken.

 Reacties uitgeschakeld voor BBC micro:bit NeoPixel pong met MicroPython  Tags: ,
mei 252019
 

Toen ik vorig jaar oktober de aankondiging van de Kickstarter voor o.a. een uitbreidingsbordje waarmee je een Micro:bit via het The Things Network kunt laten communiceren, had ik al zo mijn bedenkingen bij de logica ervan. Meer daarover in dat vorige bericht, vandaag kwam de bestelde node binnen (minder dan 2 maanden later dan gepland, heel normaal voor een Kickstarter) en kon ik ermee aan de slag.

Assemblage is eenvoudig. De antenne schroef je op het ene uiteinde van de kabel, de andere kant druk je voorzichtig op de juiste plek op de node. Je hebt zelf een Micro:bit nodig. Die had ik uiteraard.

Daarna is het een kwestie van de stappen volgen in de online handleiding.

Daarin wordt uitgelegd hoe je bij The Things Netwerk (TTN) een nieuw device aanmaakt. Dat was voor mij zeker niet voor het eerst dus tamelijk gesneden koek, ik heb geen idee hoe complex dat voor iemand is om te doen als je het voor het eerst doet.

Lees verder….

jan 212019
 

Ik zag dat ik er een tijdje geleden wel al een tweet over gestuurd had, maar dat ik er nog geen blogpost over gemaakt had. Ik heb het over Thonny, een open source, gratis ontwikkelomgeving (IDE) voor Python en (micro-)Python.

De tweet stuurde ik toen ik zag dat de omgeving standaardonderdeel zou worden van de Linuxversie die voor de Raspberry Pi gemaakt wordt, maar dit weekend ontdekte ik dat je hem ook voor microPython kunt gebruiken. En dat is handig in combinatie met bijvoorbeeld een ESP8266 of een ESP32. Vooral ook omdat Thonny dan ook het uploaden en downloaden van de bestanden voor zijn rekening neemt en een REPL-console ingebouwd heeft.

Het flashen / updaten van de firmware op de ESP8266/ESP32 vanuit de tool heb ik niet gedaan/geprobeerd, daarvoor vertrouw ik liever op esptool.py. Voor de ESP8266 die ik bij de hand had gebruikte ik de kale microPython versie  op de EPS32 heb ik de Loboris-firmware gezet. Die heeft als voordeel dat er al heel wat modulen bijgevoegd zijn.

Voorlopig vind ik de combinatie best fijn. MicroPython op de ESP32 chips blijft toch hier en daar nog wat behelpen. Vooral omdat een van de extra features ten opzichte van de ESP8266, de ondersteuning voor BLE, nog niet beschikbaar is binnen microPython. En dan is de keuze voor terugkeer naar bv de Arduino IDE in de meeste gevallen het meest voor de hand liggend.

Wil je kennismaken met Python, dan hoef je niet eens zaken te installeren. Dan zou ik eerst eens bij Repl.it kijken. Zie ook de berichten op dit blog daarover.

 

 

Twitterarchief 14-11-2018

 Gepubliceerd door om 23:55  Twitterarchief
nov 142018
 

  • Now I’ll have to change the provided firmware to the @arduino Core  18:34:09
  • Which is a shame because I was/am starting to like #micropython and liked the fact that the LOLIN shipped with micropython pre-installed.  18:39:12

Programmeren & Kunst

 Gepubliceerd door om 21:45  coding, Onderwijs
mrt 072018
 

Waarschuwing! Als je weinig tijd hebt, een deadline voor je werk, klusjes die je echt nog moet doen, lees dan niet verder. Want de kans is groot dat je namelijk het komende uur of langer bezig bent naar aanleiding van deze blogpost.

Ok, je bent gewaarschuwd. Het bericht van vandaag gaat over de workshop die Felienne Hermans vandaag tijdens de tweede dag (ochtend) van de NIOC conferentie verzorgde. Hij was getiteld “Programmeren & Kunst” en ik had al uit de beschrijving begrepen dat we ook echt met Python aan de slag zouden gaan.

Nou ken ik voldoende (micro)Python om me wel te redden, maar het ging me om de combinatie met Kunst. Felienne had op dinsdag tijdens haar keynote er al kort iets over verteld.

De WORKshop begon met het op het beeldscherp typen van dat woord door Felienne: dit is een WORKshop, dus pak je laptop maar.

Voor de workshop maakten we gebruik van repl.it, een gratis dienst waarmee je o.a. een Python editor en live REPL in je browser krijgt. Geen noodzaak dus om Python op je computer te installeren. Handig en snel, zeker ook in een onderwijssetting. Wil je de code bewaren, dan is het aanmaken van een gratis account handig. Leuk ook is dat je je code heel eenvoudig kunt delen. De code voor de gif hierboven bij het bericht is hier te vinden. Wil je zelf verder werken met die code dan kun je op de “fork” knop klikken.

En het laat meteen de waarschuwing zien: vandaag bij de workshop was ‘spirograaf’ niet de opdracht waar we aan gewerkt hebben. Dat heb ik daarna gedaan, toen ik eigenlijk ‘even snel’ een blogpost had willen maken, waarvan het daarna een stuk langer duurde voordat die af was. De PDF met uitleg is hier te vinden.

Tijdens de workshop ging het om het verzinnen van gekke verhalen. Felienne liet kort zien dat je maar een klein stukje code nodig hebt (haar voorbeeld kun je hier forken) om te beginnen bouwen aan een gek verhaal. Daarna gaf ze het al snel aan ons over. Niet iedereen had een laptop en ook nu was dat handig. Want in groepjes was de opdracht veel leuker: maak een gek verhaal in Python. De docentinstructie kun je hier vinden.

Het resultaat van ons groepje staat hier. Elke keer als je op de run-knop drukt, krijg je een ander verhaaltje.

Leuk was dat er heel verschillende resultaten uit kwamen van de verschillende groepjes. Dus niet alleen in gekozen woorden, maar sommigen waren wat verder gegaan met loops, keuzes, input opvragen etc.
Iedereen ging ook best wel los op de opdracht. En dat was heel grappig om te zien: minimale code vooraf uitgelegd, een heel eenvoudige online omgeving en je kunt volwassenen en kinderen/jongeren los laten gaan in hun creativiteit en dan intussen laten oefenen met hun programmeervaardigheden.

 

Circuit Playground Express

 Gepubliceerd door om 07:25  Algemeen
mei 282017
 

Before the Circuit Playground Express, there was the Circuit Playground Developer Edition (now: “Classic). They look almost the same, but there are some small, yet important, differences between the two iterations (see the table with the overview). One is very important: the processor is different and the Express has got 2 MB of flash memory.

Because of this difference, the Circuit Playground Express, unlike the Classic can be programmed using this online programmer. It uses a Blockly like language, in an environment very similar to what you can use for the Micro:bit. This of course makes it more suitable for use in schools and with younger students with less experience in programming. With the Classic you had to use the Arduino environment to program it.

Another difference between the two versions is the infrared receiver and transmitter, allowing for data transmission using infrared light, similar to what the Puck.js does. It also can be used as a proximity/distance sensor. You can hear lady Ada explain how that works here.

 

Now, just as with the Classic, for me the use-cases for the Express are a bit harder to find. I can understand that it is a cool device to get children programming. And of course, a lot of the use-cases of the Micro:bit, where you attach peripherals using alligator clips and do cool stuff based on values that you measure with either the build in sensors or other external sensors. The Express then allows you to have a nice mix of programming languages: either the Blockly variant with the one-on-one switch to JavaScript in the editor and CircuitPython, the microPython fork that Adafruit is developing (see this video where Tony demos CircuitPython on the Express).

Resources for the Express are still somewhat limited, the board is still very limited in availability which was one of the reasons why I was very glad that after it actually was in stock for a couple of hours last week, it was sent and transferred from the US to Europe in exactly 7 days. Not bad. It is a bit more expensive than a Micro:bit, which you currently can buy direct in the Netherlands. We’ll see how this develops. If you’ve got any questions related to stuff that I could test with the Circuit Playground Express, let me know.

LoRaWAN with LoPy and KPN + Loggly

 Gepubliceerd door om 15:49  Hardware, LoRaWAN
mei 202017
 

In the Netherlands, KPN was the first to offer nationwide coverage of a IoT network based on LoRaWAN. You can read about my first tests using their Network in combination with the Marvin node in this post. Unlike with the IoT network that for example is currently being rolled out by T-Mobile, which uses NB-IoT and different hardware than The Things Network (TTN), switching a device from the TTN network to the KPN network is simple: just change the DEV_ADDR, NWK_SWKEY, APP_SWKEY values in the config.py of you Pycom LoPy to the values that are provided in the management environment of KPN (see image left). No changes in the microPython code needed. You could even have a device connect to both networks and switch between them (although you probably don’t want to do that when you’ve got a battery powered node).

KPN offers a free test period where you can test your nodes on their infrastructure without having to pay. It is what I used for my train trip last month where I used both the Marvin node (connected to KPN) and the LoPy (connected to TTN) as a way to get a feel for coverage while moving in the Netherlands.

Besides the fact that KPN offers a commercial solution, the free test version (don’t know about the paid version) has a number of differences: unlike TTN where they provide a number of integration options (Cayenne, Data Storage provided by TTN, HTTP integration, IFTTT Maker), KPN only offers HTTP integration. This means you have to provide a destination URL for an HTTPS endpoint where the data is stored. In the Marvin workshop they use Hookbin.com as a free and easy to setup endpoint. But endpoints created there only store data for a limited time. That is why I now use the free version of Loggly.com to collect the data. But of course, the data is only useful if I manage to get it from Loggly to my own local system.

A second difference is a bit of a mystery. If I used the Marvin to send data over the KPN network, the data gets encrypted by the Marvin, but automatically is being decrypted again on the KPN server. But if I use the LoPy to send data over the KPN network, the data shown in the debug console at KPN and the data received by Loggly is still encrypted.

I managed to get both challenges resolved and in this post I’ll do a write-up not of the (lengthy) process of getting to the working code, but of the end result. All code is available on Github.

Lees verder….