Physical computing: verschil tussen versies
(8 tussenliggende versies door dezelfde gebruiker niet weergegeven) | |||
Regel 3: | Regel 3: | ||
== Inleiding == | == Inleiding == | ||
: 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. Wat zijn de regels voor het gebruik en voor het combineren van deze bouwstenen? Hoe kun je daarmee je eigen project maken? Daarvoor is deze cursus bedoeld. | |||
In deze cursus Physical computing maak je kennis met de Physical computing "bouwdoos". | |||
Bij elke bouwdoos gaat het om de volgende zaken: | Bij elke bouwdoos gaat het om de volgende zaken: | ||
* wat zijn de beschikbare bouwstenen? | * wat zijn de beschikbare bouwstenen? | ||
Regel 14: | Regel 16: | ||
Het doel is dat je met de kennis van deze cursus weet hoe je een aantal elementaire bouwstenen kunt gebruiken en kunt combineren. | 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). | Bovendien moet je van een nieuwe bouwsteen kunnen begrijpen hoe je deze gebruikt, en hoe je deze met andere bouwstenen kunt combineren (of niet). | ||
=== Hardware is anders === | === Hardware is anders === | ||
Regel 26: | Regel 26: | ||
Dit betekent dat sommige combinaties van onderdelen niet mogelijk zijn. | 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 | 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 waarde 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. | 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 een oorverdovende 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. | 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. | 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: microPython === | |||
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. | |||
=== Voorkennis: programmeren in Python === | |||
We gaan er vanuit dat je kunt programmeren in Python. | |||
Deze cursus is niet bedoeld om te leren programmeren: | |||
in het bijzonder is de micro:bit versie van Python minder geschikt om te leren programmeren. | |||
De MakeCode-omgeving voor de micro:bit lijkt daarvoor beter geschikt. | |||
=== Opbouw van de cursus === | |||
* elementaire bouwstenen - zoals digitale en analoge i/o; seriële output | |||
** deze maken gebruik van elektrische schakelingen; deze worden apart uitgelegd, als de voorkennis ontbreekt. | |||
* foutzoeken | |||
* volgorde en tijd (timers) | |||
* actuatoren: power | |||
* sensoren, signalen en events | |||
* libraries; | |||
* interactie; eindige automaten | |||
* communicatie; protocollen | |||
== Wat zijn de bouwstenen == | == Wat zijn de bouwstenen == | ||
* [[/Sensoren en actuatoren]] | * [[/Sensoren en actuatoren]] | ||
* [[/Interfaces]] | |||
* [[/Controllers]] | * [[/Controllers]] | ||
* [[/microPython]] | * [[/microPython]] | ||
* [[/Signalen en | * [[/Signalen, events en toestanden]] | ||
* [[/Hardware: microcontrollers]] | * [[/Hardware: microcontrollers]] | ||
* [[/Hardware: motoren, relais en "power"]] | |||
== Elementaire hardware-schakelingen == | == Elementaire hardware-schakelingen == | ||
Regel 60: | Regel 89: | ||
* [[/Transistor]] | * [[/Transistor]] | ||
* [[/Relais]] | * [[/Relais]] | ||
** schakelverschijnselen | |||
* [[/DC motor]] | * [[/DC motor]] | ||
* [[/H-brug]] | * [[/H-brug]] | ||
== Basisbouwstenen == | == Basisbouwstenen == | ||
Regel 76: | Regel 105: | ||
* [[/Seriële input]] | * [[/Seriële input]] | ||
* [[/Timers]] | * [[/Timers]] | ||
* [[/micro:bit Python API]] |
Huidige versie van 17 mrt 2021 om 21:25
Inleiding
- 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. Wat zijn de regels voor het gebruik en voor het combineren van deze bouwstenen? Hoe kun je daarmee je eigen project maken? Daarvoor is deze cursus bedoeld.
In deze cursus Physical computing maak je kennis 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).
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 waarde 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 een oorverdovende 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: microPython
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.
Voorkennis: programmeren in Python
We gaan er vanuit dat je kunt programmeren in Python. Deze cursus is niet bedoeld om te leren programmeren: in het bijzonder is de micro:bit versie van Python minder geschikt om te leren programmeren. De MakeCode-omgeving voor de micro:bit lijkt daarvoor beter geschikt.
Opbouw van de cursus
- elementaire bouwstenen - zoals digitale en analoge i/o; seriële output
- deze maken gebruik van elektrische schakelingen; deze worden apart uitgelegd, als de voorkennis ontbreekt.
- foutzoeken
- volgorde en tijd (timers)
- actuatoren: power
- sensoren, signalen en events
- libraries;
- interactie; eindige automaten
- communicatie; protocollen
Wat zijn de bouwstenen
- /Sensoren en actuatoren
- /Interfaces
- /Controllers
- /microPython
- /Signalen, events en toestanden
- /Hardware: microcontrollers
- /Hardware: motoren, relais en "power"
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
- /Transistor
- /Relais
- schakelverschijnselen
- /DC motor
- /H-brug
Basisbouwstenen
Deze basisbouwstenen kom je in veel programma's tegen. Je kunt hiermee al veel leuke dingen maken.