Physical computing: verschil tussen versies

Uit Lab
Naar navigatie springen Naar zoeken springen
Regel 33: Regel 33:
Als je oplossing niet werkt, kun je een fout gemaakt hebben in je programma, in de hardware-schakeling, of in de aansluiting tussen beide.
Als je oplossing niet werkt, kun je een fout gemaakt hebben in je programma, in de hardware-schakeling, of in de aansluiting tussen beide.
Het voorkomen van fouten, en het zoeken naar de bron van een fout, vereist een aparte aanpak.
Het voorkomen van fouten, en het zoeken naar de bron van een fout, vereist een aparte aanpak.
=== Software ===
In deze cursus gebruiken we microPython als programmeertaal.
microPython is tegenwoordig voor veel verschillende soorten microprocessoren beschikbaar,
soms onder verschillende namen, zoals CircuitPython of micro:bit Python.
: Een nadeel van die verschillende versies is dat de afspraken voor het gebruik van de hardware verschillen. Dit betekent dat een oplossing in microPython niet zomaar werkt op een micro:bit, of omgekeerd. Ten opzichte van de Arduino IDE, met vaste afspraken voor allerlei verschillende systemen, is dat een nadeel. Daar staat tegenover dat de programma's vaak veel kleiner en begrijpelijker zijn.
=== Opbouw van de cursus ===


== Wat zijn de bouwstenen ==
== Wat zijn de bouwstenen ==

Versie van 9 nov 2019 19:08

Physical computing
Arduino Basis
  1. Led-0: breadboard, LED, weerstand
  2. Blink-1
  3. Button-1
  4. Blink-freq: frequentie
  5. Blink-PWM: pulsbreedte-modulatie
  6. Analoge input

Inleiding

Deze cursus Physical computing is bedoeld om kennis te maken met de Physical computing "bouwdoos". Bij elke bouwdoos gaat het om de volgende zaken:

  • wat zijn de beschikbare bouwstenen?
  • hoe kun je deze bouwstenen combineren?
  • hoe los je een probleem op met behulp van deze bouwstenen?

In het geval van Physical computing hebben we te maken met hardware-bouwstenen, met software-bouwstenen, en met interfaces en programma's die deze bouwstenen combineren tot een werkende oplossing.

Het doel is dat je met de kennis van deze cursus weet hoe je een aantal elementaire bouwstenen kunt gebruiken en kunt combineren. Bovendien moet je van een nieuwe bouwsteen kunnen begrijpen hoe je deze gebruikt, en hoe je deze met andere bouwstenen kunt combineren (of niet).

Op het web vind je veel voorbeelden van leuke projecten. Het is zeker de moeite waard om een aantal projecten na te bouwen. Maar op een bepaald moment wil je je eigen projecten gaan maken: daarvoor moet je iets begrijpen van de bouwstenen die in zulke projecten gebruikt worden. Daarvoor is deze cursus bedoeld.

Hardware is anders

In de wereld van de software ben je gewend dat vrijwel alle combinaties van bouwstenen mogelijk zijn. Niet alle combinaties zijn zinvol, maar er zijn nauwelijks beperkingen op de combinaties.

Hardware is anders: je hebt te maken met beperkte "resources" zoals pinnen, timers, adressen enz. Als een resource gebruikt wordt door één bouwsteen, kun je deze niet gebruiken voor een andere bouwsteen - in elk geval, niet op hetzelfde moment. Dit betekent dat sommige combinaties van onderdelen niet mogelijk zijn.

Bovendien heb je te maken met een fysieke wereld: opdrachten kosten tijd; het aansturen van onderdelen kost energie; sensoren zijn niet perfect, en meten niet precies de waarden die je dacht te meten; de fysieke buitenwereld reageert misschien anders dan je gedacht had; enz.

Hardware kan kapot gaan als je deze niet op de juiste manier behandelt. In software kun je van alles uitproberen, maar in hardware moet je voorzichtig zijn met het aansluiten van onderdelen, het voorkomen van kortsluiting, enz. De regels hiervoor zijn niet heel ingewikkeld, maar als je een fout maakt zie je soms een foutmelding in de vorm van een rookpluim of een stinkend onderdeel; of soms juist stilte.

Werken op de grens van de virtuele wereld (van informatie) en de fysieke wereld betekent bovendien dat je op meerdere plaatsen fouten kunt maken. Als je oplossing niet werkt, kun je een fout gemaakt hebben in je programma, in de hardware-schakeling, of in de aansluiting tussen beide. Het voorkomen van fouten, en het zoeken naar de bron van een fout, vereist een aparte aanpak.

Software

In deze cursus gebruiken we microPython als programmeertaal. microPython is tegenwoordig voor veel verschillende soorten microprocessoren beschikbaar, soms onder verschillende namen, zoals CircuitPython of micro:bit Python.

Een nadeel van die verschillende versies is dat de afspraken voor het gebruik van de hardware verschillen. Dit betekent dat een oplossing in microPython niet zomaar werkt op een micro:bit, of omgekeerd. Ten opzichte van de Arduino IDE, met vaste afspraken voor allerlei verschillende systemen, is dat een nadeel. Daar staat tegenover dat de programma's vaak veel kleiner en begrijpelijker zijn.

Opbouw van de cursus

Wat zijn de bouwstenen

Elementaire hardware-schakelingen

Voor deze elementaire schakelingen heb je geen computer nodig: je hebt alleen een voedingsspanning van 3V en/of 5V nodig.

Bij deze elementaire schakelingen behandelen we ook een aantal zaken rond elektriciteit, zoals spanning, stroom, weerstanden en schakelaars.

Iets meer gevorderd


Basisbouwstenen

Deze basisbouwstenen kom je in veel programma's tegen. Je kunt hiermee al veel leuke dingen maken.