3.30. Podsumowanie

Przeszedłeś przez części modułu machine, które pojawiają się w chwili, gdy skrypt zaczyna komunikować się ze światem fizycznym:

  • Wyjście i wejście GPIO – sterowanie diodą LED lub tranzystorem, odczyt przycisku lub krańcówki. Klocki, na których opiera się każdy projekt sprzętowy, wraz z rezystorami podciągającymi i programowym eliminowaniem drgań styków dla odczytów, które muszą być niezawodne.

  • Sygnały analogowe – odczyt sensora, potencjometru lub dowolnego innego napięcia zmieniającego się w sposób ciągły za pomocą ADC; oraz, gdy DAC jest niedostępny, wytwarzanie kontrolowanego napięcia za pomocą PWM i dolnoprzepustowego filtra RC.

  • Zastosowania PWM – ściemnianie diody LED, zmiana prędkości silnika DC przez mostek H, pozycjonowanie serwomechanizmu. Jeden przebieg, różne fizyczne uśredniacze (oko, indukcyjność silnika) i różne ujęcia (współczynnik wypełnienia kontra bezwzględna szerokość impulsu).

  • Magistrale szeregoweUART dla asynchronicznych łączy punkt-punkt; SPI dla szybkich urządzeń peryferyjnych na płytce z jednym sygnałem chip-select na urządzenie; I2C dla wolnych wielourządzeniowych magistral sensorów na zaledwie dwóch przewodach; CAN dla odpornych wielomistrzowych magistral polowych między modułami.

  • Wzorce produkcyjne – licznik czasu (timer) watchdog do odzyskiwania sprawności po zawieszeniach, tryby uśpienia do wydłużenia czasu pracy na baterii. Oba stają się niezbędne, gdy kamera po raz pierwszy opuszcza stanowisko warsztatowe.

To wystarczy, by zbudować pętlę odbieraj – planuj – działaj urządzenia wbudowanego: odczytuj sensory przez I2C / SPI / ADC, podejmuj decyzje w Pythonie, steruj elementami wykonawczymi przez PWM / GPIO, raportuj status przez UART / CAN, śpij między zdarzeniami.

3.30.1. Późniejsze korzystanie z tego dokumentu referencyjnego

Traktuj rozdziały o sprzęcie jako materiał referencyjny, a nie lekturę do jednorazowego przeczytania. Strona referencyjna modułu machine wymienia w jednym miejscu każdą klasę i metodę, gdy pytanie brzmi po prostu „jaka jest dokładna nazwa tego wywołania”. Strony poszczególnych rozdziałów są miejscem, do którego warto wrócić po spojrzenie „które pokrętło co robi i dlaczego”, którego sam materiał referencyjny nie zapewnia.

3.30.2. Dokąd dalej

Sensory wizyjne to kolejny ważny temat. Tam, gdzie ta sekcja uczyła ogólnych urządzeń peryferyjnych – Pin, ADC, PWM, UART, SPI, I2C, CAN – które pojawiają się niemal na każdym MCU, następna sekcja bardzo dogłębnie uczy kluczowego urządzenia peryferyjnego kamery: sensora obrazu oraz długiego łańcucha optyki, krzemu i przetwarzania sygnału między fotonami padającymi na szkło a buforem pikseli w RAM. Zestaw narzędzi przenosi się na moduły csi i image, ale wszystko, czego nauczyłeś się o sterowaniu GPIO, komunikacji przez I2C i używaniu PWM, przenosi się dalej bez zmian – lampy błyskowe, wyzwalacze i nakładki sensorów korzystają z tych samych magistral, które właśnie omówiłeś.