Arduino cursus/Dag 4: verschil tussen versies
(8 tussenliggende versies door dezelfde gebruiker niet weergegeven) | |||
Regel 1: | Regel 1: | ||
{{Zijbalk Arduino cursus | {{Zijbalk Arduino cursus Dag4}} | ||
== Dag 4 Arduino cursus == | == Dag 4 Arduino cursus == | ||
Regel 9: | Regel 9: | ||
** test (voor zover het kan) het resultaat van elke stap | ** test (voor zover het kan) het resultaat van elke stap | ||
*** als het kan, test dan de hardware en de software eerst afzonderlijk | *** als het kan, test dan de hardware en de software eerst afzonderlijk | ||
* werk samen | |||
** als je programmeren (of elektronica) lastig vindt: zoek iemand in je buurt om je te helpen | |||
** op en rond school is heel veel kennis: bij docenten/toa's, leerlingen, en ouders | |||
== Arduino ontwikkelingen == | == Arduino ontwikkelingen == | ||
Regel 34: | Regel 37: | ||
* [[../ESP8266-Blink]] | * [[../ESP8266-Blink]] | ||
Voor deze microcontroller zijn er ook diverse libraries met bijbehorende voorbeelden geïnstalleerd. Deze vind je onder Bestand->Voorbeelden. Deze microcontroller biedt via WiFi veel communicatiemogelijkheden - bijvoorbeeld een eenvoudige webserver. Via deze webserver kun je ook de hardware aansturen - bijvoorbeeld om een LED aan- en uit te zetten. | |||
* [[../ESP8266-Webserver]] | |||
== Internet of Things == | == Internet of Things == | ||
Een belangrijke ontwikkeling is het Internet of Things: | Een belangrijke ontwikkeling is het Internet of Things: naast computers -de begintijd- en mensen -met het web en de smartphone- verbindt het internet nu ook dingen. In het bijzonder is het nu mogelijk om "dingen" te verbinden die gewoonlijk geen computer of zelfs geen stekker hebben, zoals een stoel, een fiets, een parkeerplaats, een koe, een dijk, een brug, enz. Er zijn heel veel toepassingen mogelijk - een groot deel daarvan is nog niet bedacht. | ||
Voor het verbinden van fysieke dingen in het internet vormt "physical computing" (zoals je dat met Arduino's e.d. doet) een belangrijke bouwsteen van het Internet of Things. Een voorbeeld van een IoT-omgeving is het LoRaWan-netwerk, zoals dat onder andere door TheThingsNetwork (TTN) aangeboden wordt. TTN biedt o.a. een Arduino met LoRa-radio hiervoor aan, maar je kunt ook de nieuwe Arduino MKR WAN met LoRa radio gebruiken. Deze LoRa-radio's hebben een groot bereik - tot ca. 10 km. Dit grote bereik gaat ten kost van de bandbreedte: deze is dan beperkt tot enkele bytes per seconde. Vanwege de beperkingen van de gebruikte radiofrequenties, en vanwege het energieverbuik, stuurt een node vaak slechts één bericht per 5 minuten of nog langer. | |||
* https://www.thethingsnetwork.org | |||
* https://shop.thethingsnetwork.com/index.php/product/the-things-uno/ | |||
* https://store.arduino.cc/mkr-wan-1300 | |||
TheThingsNetwork is een wereldwijde organisatie met veel lokale communities, met als doel om samen een IoT-netwerk met wereldwijde dekking te bieden. Allerlei vrijwilligers bieden hun gateway aan zodat lokale IoT-knopen daarmee toegang krijgen tot het netwerk. De drempel om mee te doen is laag, zowel financieel als technisch: voor scholen, docenten en leerlingen is dit zeer goed haalbaar. | |||
* https://www.thethingsnetwork.org/community | |||
* https://www.thethingsnetwork.org/forum/c/use-cases | |||
[[Bestand:IoT-mini-node.png|right|300px|IoT mini node]] | |||
Je kunt een dergelijke IoT-sensorknoop voor een LoRaWan-netwerk ook zelf bouwen, op basis van een Arduino mini: | |||
* https://www.tinytronics.nl/shop/nl/communicatie/rf(id)-wifi-bt/things-network-lorawan-node-workshop-2017 | |||
* https://www.thethingsnetwork.org/labs/story/creating-a-ttn-node | |||
Als je het jezelf gemakkelijker wilt maken, kun je de bouwstenen van PyCom gebruiken. Deze programmeer je niet via de Arduino IDE, maar met microPython: | |||
* https://www.tinytronics.nl/shop/nl/ | * https://pycom.io/ | ||
* https://www.tinytronics.nl/shop/nl/platforms/pycom/pycom-lopy | |||
* https://www.tinytronics.nl/shop/nl/platforms/pycom/pycom-pysense |
Huidige versie van 12 mrt 2018 om 09:53
Dag 4 Arduino cursus
Nu zelf aan de slag! Bedenk een project dat je kunt maken met de bouwstenen die je de vorige dagen geleerd hebt. Maak het niet te ingewikkeld: als je meer ervaring hebt, kun je later je project altijd nog uitbreiden.
Denk bij het uitvoeren van je project om de volgende zaken:
- bouw je project stap voor stap op
- maak de stappen "zo klein mogelijk"
- test (voor zover het kan) het resultaat van elke stap
- als het kan, test dan de hardware en de software eerst afzonderlijk
- werk samen
- als je programmeren (of elektronica) lastig vindt: zoek iemand in je buurt om je te helpen
- op en rond school is heel veel kennis: bij docenten/toa's, leerlingen, en ouders
Arduino ontwikkelingen
ARM-borden
De nieuwste borden van Arduino gebruiken een ARM-processor, in plaats van de processor die in de UNO e.d. gebruikt wordt. Deze nieuwere microcontrollers werken bovendien op 3.3V. Je kunt nog steeds de Arduino IDE voor deze microcontrollers gebruiken: je hoeft alleen via Hulpmiddelen->board het juiste bord in te stellen.
3.3V versus 5V
De huidige microcontrollers gebruiken 3.3V in plaats van 5V voor de voeding en voor de logische niveaus. Je kunt deze verschillende spanningen niet zonder meer door elkaar gebruiken. Ook veel van de huidige sensoren gebruiken 3.3V. Deze kun je zonder problemen gebruiken met de 3.3V microcontrollers. Als je deze wilt aansturen met 5V moet je de spanningsniveaus omzetten, bijvoorbeeld met:
- https://www.tinytronics.nl/shop/nl/spanning-converters/level-converters/i2c-uart-bi-directionele-logic-level-converter-5v-3.3v-2-kanaals-met-voeding
- https://www.tinytronics.nl/shop/nl/spanning-converters/level-converters/spi-i2c-uart-bi-directionele-logic-level-converter-4-kanaals
Arduino alternatieven - met de Arduino IDE
In de eerste plaats kun je met de Arduino IDE vaak bordjes programmeren die dezelfde microcontroller gebruiken als de Arduino UNO e.d.. Een voorbeeld hiervan is de Adafruit Flora, voor "wearable computing". Deze kun je bijvoorbeeld samen met sensoren en LEDS in kleding naaien, met geleidende draad.
Je kunt tegenwoordig de Arduino-programmeeromgeving (IDE) ook gebruiken voor andere borden dan alleen de Arduino-familie. Adafruit heeft bijvoorbeeld een aantal borden ontwikkeld die je (ook) kunt programmeren met de Arduino IDE, zoals de Feather-familie
Andere populaire microcontroller-families zijn de ESP8266 of de nieuwere ESP32. Ook deze kun je met de Arduino IDE programmeren. Bekende borden die deze microcontroller gebruiken zijn de NodeMCU (V1.0 of hoger); en de Wemos D1 mini pro. (Andere borden zijn soms ook bruikbaar, maar hebben niet altijd een snel USB-interface.) De volgende opdracht laat je zien hoe je deze kunt programmeren met de Arduino IDE.
Voor deze microcontroller zijn er ook diverse libraries met bijbehorende voorbeelden geïnstalleerd. Deze vind je onder Bestand->Voorbeelden. Deze microcontroller biedt via WiFi veel communicatiemogelijkheden - bijvoorbeeld een eenvoudige webserver. Via deze webserver kun je ook de hardware aansturen - bijvoorbeeld om een LED aan- en uit te zetten.
Internet of Things
Een belangrijke ontwikkeling is het Internet of Things: naast computers -de begintijd- en mensen -met het web en de smartphone- verbindt het internet nu ook dingen. In het bijzonder is het nu mogelijk om "dingen" te verbinden die gewoonlijk geen computer of zelfs geen stekker hebben, zoals een stoel, een fiets, een parkeerplaats, een koe, een dijk, een brug, enz. Er zijn heel veel toepassingen mogelijk - een groot deel daarvan is nog niet bedacht.
Voor het verbinden van fysieke dingen in het internet vormt "physical computing" (zoals je dat met Arduino's e.d. doet) een belangrijke bouwsteen van het Internet of Things. Een voorbeeld van een IoT-omgeving is het LoRaWan-netwerk, zoals dat onder andere door TheThingsNetwork (TTN) aangeboden wordt. TTN biedt o.a. een Arduino met LoRa-radio hiervoor aan, maar je kunt ook de nieuwe Arduino MKR WAN met LoRa radio gebruiken. Deze LoRa-radio's hebben een groot bereik - tot ca. 10 km. Dit grote bereik gaat ten kost van de bandbreedte: deze is dan beperkt tot enkele bytes per seconde. Vanwege de beperkingen van de gebruikte radiofrequenties, en vanwege het energieverbuik, stuurt een node vaak slechts één bericht per 5 minuten of nog langer.
- https://www.thethingsnetwork.org
- https://shop.thethingsnetwork.com/index.php/product/the-things-uno/
- https://store.arduino.cc/mkr-wan-1300
TheThingsNetwork is een wereldwijde organisatie met veel lokale communities, met als doel om samen een IoT-netwerk met wereldwijde dekking te bieden. Allerlei vrijwilligers bieden hun gateway aan zodat lokale IoT-knopen daarmee toegang krijgen tot het netwerk. De drempel om mee te doen is laag, zowel financieel als technisch: voor scholen, docenten en leerlingen is dit zeer goed haalbaar.
Je kunt een dergelijke IoT-sensorknoop voor een LoRaWan-netwerk ook zelf bouwen, op basis van een Arduino mini:
- https://www.tinytronics.nl/shop/nl/communicatie/rf(id)-wifi-bt/things-network-lorawan-node-workshop-2017
- https://www.thethingsnetwork.org/labs/story/creating-a-ttn-node
Als je het jezelf gemakkelijker wilt maken, kun je de bouwstenen van PyCom gebruiken. Deze programmeer je niet via de Arduino IDE, maar met microPython: