3.30. Sammanfattning

Du har gått igenom de delar av modulen machine som dyker upp i samma ögonblick som ett skript pratar med den fysiska världen:

  • GPIO-utgång och -ingång – att driva en LED eller en transistor, att läsa en knapp eller en ändlägesbrytare. Byggstenarna som varje hårdvaruprojekt vilar på, med pull-motstånd och mjukvarustudsavstörning för läsningar som måste vara tillförlitliga.

  • Analoga signaler – att läsa en sensor, en potentiometer eller någon annan kontinuerligt varierande spänning med ADC:n; och, när ingen DAC finns tillgänglig, att producera en kontrollerad spänning med PWM och ett lågpass-RC-filter.

  • PWM-tillämpningar – att dimma en LED, att variera hastigheten på en DC-motor genom en H-brygga, att positionera en servo. En vågform, olika fysiska medelvärdesbildare (ögat, motorns induktans) och olika inramningar (pulskvot kontra absolut pulsbredd).

  • Seriella bussarUART för asynkrona punkt-till-punkt-länkar; SPI för snabb kringutrustning på kortet med ett chip-select per enhet; I2C för långsamma sensorbussar med flera enheter på bara två ledningar; CAN för robusta fältbussar med flera master mellan moduler.

  • Produktionsmönster – en watchdog-timer för att återhämta sig från hängningar, viloläge för att förlänga ett batteri. Båda blir oumbärliga första gången en kamera lämnar arbetsbänken.

Det räcker för att bygga den känn av – planera – agera-loop som en inbäddad enhet använder: läs sensorer över I2C / SPI / ADC, fatta beslut i Python, driv ställdon genom PWM / GPIO, rapportera status över UART / CAN, vila mellan händelser.

3.30.1. Att använda denna referens senare

Behandla hårdvarukapitlen som referensmaterial, inte en genomläsning i ett svep. Referenssidan för modulen machine listar varje klass och metod på ett ställe när frågan bara är ”vad är det exakta namnet på det här anropet”. Sidorna per kapitel här är dit man kommer tillbaka för perspektivet ”vilken ratt gör vad, och varför” som referensmaterialet inte ger på egen hand.

3.30.2. Vart man går härifrån

Visionssensorer är nästa stora ämne. Där detta avsnitt lärde ut den generiska kringutrustningen – Pin, ADC, PWM, UART, SPI, I2C, CAN – som dyker upp på nästan varje MCU, lär nästa avsnitt ut kamerans definierande kringutrustning på djupet: bildsensorn, och den långa kedjan av optik, kisel och signalbehandling mellan fotoner som träffar glaset och en buffert av pixlar i RAM. Verktygslådan skiftar till modulerna csi och image, men allt du har lärt dig om att driva GPIO:er, att kommunicera över I2C och att använda PWM förs vidare oförändrat – blixtar, triggers och sensorsköldar använder alla samma bussar som du just har gått igenom.