3.30. Afronding¶
Je hebt de onderdelen van de machine-module doorlopen die naar voren komen zodra een script met de fysieke wereld praat:
GPIO-uitvoer en -invoer – het aansturen van een LED of een transistor, het lezen van een knop of een eindschakelaar. De bouwstenen waar elk hardwareproject op rust, met pull-weerstanden en software-debouncing voor lezingen die betrouwbaar moeten zijn.
Analoge signalen – het lezen van een sensor, een potentiometer of elke andere continu variërende spanning met de ADC; en, wanneer er geen DAC beschikbaar is, het produceren van een gecontroleerde spanning met PWM en een laagdoorlaat-RC-filter.
PWM-toepassingen – het dimmen van een LED, het variëren van de snelheid van een DC-motor via een H-brug, het positioneren van een servo. Eén golfvorm, verschillende fysieke middelaars (het oog, de inductantie van de motor) en verschillende kaders (duty cycle versus absolute pulsbreedte).
Seriële bussen –
UARTvoor asynchrone punt-tot-puntverbindingen;SPIvoor snelle on-board randapparaten met één chip-select per apparaat;I2Cvoor trage multi-device sensorbussen op slechts twee draden;CANvoor robuuste multi-master veldbussen tussen modules.Productiepatronen – een watchdog-timer om te herstellen van vastlopers, slaapstanden om een batterij te rekken. Beide worden essentieel de eerste keer dat een camera de werkbank verlaat.
Dat is genoeg om de waarnemen – plannen – handelen-lus van een embedded apparaat te bouwen: sensoren lezen over I2C / SPI / ADC, beslissingen nemen in Python, actuatoren aansturen via PWM / GPIO, status rapporteren over UART / CAN, slapen tussen gebeurtenissen.
3.30.1. Deze referentie later gebruiken¶
Behandel de hardwarehoofdstukken als referentiemateriaal, niet als een eenmalige doorleeslees. De referentiepagina van de machine-module somt elke klasse en methode op één plek op wanneer de vraag simpelweg “wat is de exacte naam van deze aanroep” is. De hoofdstuksgewijze pagina’s hier zijn waar je terugkomt voor het “welke knop doet wat, en waarom”-perspectief dat het referentiemateriaal op zichzelf niet geeft.
3.30.2. Waar nu naartoe¶
Visiesensoren is het volgende grote onderwerp. Waar deze sectie de generieke randapparaten leerde – Pin, ADC, PWM, UART, SPI, I2C, CAN – die op vrijwel elke MCU opduiken, leert de volgende sectie het bepalende randapparaat van de camera heel diepgaand: de afbeeldingssensor, en de lange keten van optiek, silicium en signaalverwerking tussen fotonen die op glas vallen en een buffer met pixels in RAM. De toolkit verschuift naar de csi- en image-modules, maar alles wat je hebt geleerd over het aansturen van GPIO’s, communiceren over I2C en het gebruik van PWM gaat ongewijzigd mee – strobes, triggers en sensorshields gebruiken allemaal dezelfde bussen die je zojuist hebt behandeld.