32 KiB
Głębsze spojrzenie na IoT
Szkic autorstwa Nitya Narasimhan. Kliknij obraz, aby zobaczyć większą wersję.
Ta lekcja była częścią serii Hello IoT prowadzonej przez Microsoft Reactor. Lekcja została podzielona na dwa filmy: godzinny wykład oraz godzinne konsultacje, podczas których szczegółowo omówiono wybrane zagadnienia i odpowiadano na pytania.
🎥 Kliknij obrazy powyżej, aby obejrzeć filmy
Quiz przed wykładem
Wprowadzenie
W tej lekcji zagłębimy się w niektóre z koncepcji omówionych w poprzedniej lekcji.
W tej lekcji omówimy:
- Komponenty aplikacji IoT
- Głębsze spojrzenie na mikrokontrolery
- Głębsze spojrzenie na komputery jednopłytkowe
Komponenty aplikacji IoT
Dwa główne komponenty aplikacji IoT to Internet i urządzenie. Przyjrzyjmy się im bliżej.
Urządzenie
Część Urządzenie w IoT odnosi się do urządzenia, które może wchodzić w interakcję ze światem fizycznym. Są to zazwyczaj małe, niedrogie komputery, działające z niską prędkością i zużywające niewiele energii – na przykład proste mikrokontrolery z kilobajtami pamięci RAM (w porównaniu do gigabajtów w komputerach PC), działające z częstotliwością kilkuset megaherców (w porównaniu do gigaherców w komputerach PC), ale zużywające tak mało energii, że mogą działać przez tygodnie, miesiące, a nawet lata na bateriach.
Urządzenia te wchodzą w interakcję ze światem fizycznym, używając czujników do zbierania danych z otoczenia lub kontrolując wyjścia czy siłowniki, aby wprowadzać zmiany fizyczne. Typowym przykładem jest inteligentny termostat – urządzenie wyposażone w czujnik temperatury, sposób ustawiania pożądanej temperatury, np. za pomocą pokrętła lub ekranu dotykowego, oraz połączenie z systemem grzewczym lub chłodzącym, który można włączyć, gdy wykryta temperatura jest poza zakresem docelowym. Czujnik temperatury wykrywa, że w pomieszczeniu jest za zimno, a siłownik włącza ogrzewanie.
Istnieje ogromna różnorodność urządzeń, które mogą działać jako urządzenia IoT – od dedykowanego sprzętu wykrywającego jedno zjawisko, po urządzenia ogólnego przeznaczenia, a nawet Twój smartfon! Smartfon może używać czujników do wykrywania otoczenia i siłowników do interakcji ze światem – na przykład używając czujnika GPS do określenia lokalizacji i głośnika do przekazywania instrukcji nawigacyjnych.
✅ Pomyśl o innych systemach wokół Ciebie, które odczytują dane z czujnika i wykorzystują je do podejmowania decyzji. Jednym z przykładów może być termostat w piekarniku. Czy znajdziesz więcej?
Internet
Część Internet w aplikacji IoT obejmuje aplikacje, z którymi urządzenie IoT może się łączyć, aby wysyłać i odbierać dane, a także inne aplikacje, które mogą przetwarzać dane z urządzenia IoT i pomagać w podejmowaniu decyzji dotyczących żądań wysyłanych do siłowników urządzenia IoT.
Typowym rozwiązaniem jest korzystanie z jakiejś usługi w chmurze, z którą urządzenie IoT się łączy. Taka usługa zajmuje się kwestiami bezpieczeństwa, odbieraniem wiadomości od urządzenia IoT i wysyłaniem wiadomości z powrotem do urządzenia. Usługa w chmurze może następnie łączyć się z innymi aplikacjami, które mogą przetwarzać lub przechowywać dane z czujników, albo wykorzystywać te dane wraz z danymi z innych systemów do podejmowania decyzji.
Urządzenia nie zawsze łączą się bezpośrednio z Internetem za pomocą WiFi lub połączeń przewodowych. Niektóre urządzenia korzystają z sieci kratowych, aby komunikować się ze sobą za pomocą technologii takich jak Bluetooth, łącząc się przez urządzenie centralne, które ma połączenie z Internetem.
W przypadku inteligentnego termostatu, termostat łączyłby się z domową siecią WiFi i usługą w chmurze. Wysyłałby dane o temperaturze do tej usługi, a stamtąd byłyby one zapisywane w bazie danych, umożliwiając właścicielowi domu sprawdzenie aktualnej i przeszłej temperatury za pomocą aplikacji na telefonie. Inna usługa w chmurze wiedziałaby, jaką temperaturę chce właściciel domu, i wysyłałaby wiadomości z powrotem do urządzenia IoT za pośrednictwem usługi w chmurze, aby poinformować system grzewczy, czy ma się włączyć lub wyłączyć.
Jeszcze bardziej zaawansowana wersja mogłaby korzystać ze sztucznej inteligencji w chmurze, wykorzystując dane z innych czujników podłączonych do innych urządzeń IoT, takich jak czujniki obecności wykrywające, które pomieszczenia są używane, a także dane takie jak pogoda czy Twój kalendarz, aby inteligentnie ustawiać temperaturę. Na przykład mogłaby wyłączyć ogrzewanie, jeśli z kalendarza wynika, że jesteś na wakacjach, lub wyłączać ogrzewanie w poszczególnych pomieszczeniach w zależności od tego, które z nich są używane, ucząc się na podstawie danych, aby z czasem być coraz bardziej precyzyjną.
✅ Jakie inne dane mogłyby pomóc w stworzeniu inteligentniejszego termostatu podłączonego do Internetu?
IoT na krawędzi
Chociaż litera "I" w IoT oznacza Internet, urządzenia te nie muszą łączyć się z Internetem. W niektórych przypadkach urządzenia mogą łączyć się z urządzeniami brzegowymi – urządzeniami bramkowymi działającymi w Twojej lokalnej sieci, co pozwala na przetwarzanie danych bez konieczności korzystania z połączenia internetowego. Może to być szybsze, gdy masz dużo danych lub wolne połączenie internetowe, pozwala działać offline w miejscach, gdzie połączenie z Internetem nie jest możliwe, takich jak statek czy obszar dotknięty katastrofą podczas akcji humanitarnej, a także pozwala zachować prywatność danych. Niektóre urządzenia zawierają kod przetwarzający stworzony za pomocą narzędzi chmurowych i uruchamiają go lokalnie, aby zbierać i reagować na dane bez użycia połączenia internetowego do podejmowania decyzji.
Przykładem może być inteligentne urządzenie domowe, takie jak Apple HomePod, Amazon Alexa czy Google Home, które nasłuchuje Twojego głosu za pomocą modeli AI wytrenowanych w chmurze, ale działających lokalnie na urządzeniu. Urządzenia te "budzą się", gdy wypowiesz określone słowo lub frazę, i dopiero wtedy przesyłają Twoją mowę przez Internet do przetworzenia. Urządzenie przestaje przesyłać mowę w odpowiednim momencie, na przykład gdy wykryje pauzę w Twojej wypowiedzi. Wszystko, co powiesz przed obudzeniem urządzenia za pomocą słowa kluczowego, i wszystko, co powiesz po tym, jak urządzenie przestanie słuchać, nie zostanie przesłane przez Internet do dostawcy urządzenia, a zatem pozostanie prywatne.
✅ Pomyśl o innych scenariuszach, w których prywatność jest ważna, więc przetwarzanie danych byłoby lepsze na krawędzi niż w chmurze. Podpowiedź – pomyśl o urządzeniach IoT z kamerami lub innymi urządzeniami obrazującymi.
Bezpieczeństwo IoT
W przypadku każdego połączenia z Internetem bezpieczeństwo jest ważnym zagadnieniem. Istnieje stare powiedzenie, że "litera S w IoT oznacza bezpieczeństwo" – w IoT nie ma litery "S", co sugeruje, że nie jest ono bezpieczne.
Urządzenia IoT łączą się z usługą w chmurze, a zatem są tak bezpieczne, jak ta usługa w chmurze – jeśli Twoja usługa w chmurze pozwala na połączenie dowolnego urządzenia, może dojść do przesyłania złośliwych danych lub ataków wirusowych. Może to mieć bardzo realne konsekwencje, ponieważ urządzenia IoT wchodzą w interakcję i kontrolują inne urządzenia. Na przykład robak Stuxnet manipulował zaworami w wirówkach, aby je uszkodzić. Hakerzy wykorzystali również słabe zabezpieczenia, aby uzyskać dostęp do monitorów dla dzieci i innych urządzeń monitorujących w domach.
💁 Czasami urządzenia IoT i urządzenia brzegowe działają w sieci całkowicie odizolowanej od Internetu, aby zachować prywatność i bezpieczeństwo danych. Jest to znane jako air-gapping.
Głębsze spojrzenie na mikrokontrolery
W poprzedniej lekcji wprowadziliśmy mikrokontrolery. Teraz przyjrzyjmy się im bliżej.
CPU
CPU to "mózg" mikrokontrolera. Jest to procesor, który uruchamia Twój kod i może wysyłać dane do oraz odbierać dane od podłączonych urządzeń. CPU może zawierać jeden lub więcej rdzeni – w zasadzie jeden lub więcej procesorów, które mogą współpracować, aby uruchamiać Twój kod.
CPU opiera się na zegarze, który tyka miliony lub miliardy razy na sekundę. Każde tyknięcie, czyli cykl, synchronizuje działania, które CPU może wykonać. Przy każdym tyknięciu CPU może wykonać instrukcję z programu, na przykład pobrać dane z urządzenia zewnętrznego lub wykonać obliczenie matematyczne. Ten regularny cykl pozwala na zakończenie wszystkich działań przed przetworzeniem kolejnej instrukcji.
Im szybszy cykl zegara, tym więcej instrukcji można przetworzyć w ciągu sekundy, a zatem tym szybszy jest CPU. Prędkości CPU mierzy się w hercach (Hz), standardowej jednostce, gdzie 1 Hz oznacza jeden cykl lub tyknięcie zegara na sekundę.
🎓 Prędkości CPU często podaje się w MHz lub GHz. 1 MHz to 1 milion Hz, 1 GHz to 1 miliard Hz.
💁 CPU wykonuje programy za pomocą cyklu pobierania-dekodowania-wykonywania. Przy każdym tyknięciu zegara CPU pobiera kolejną instrukcję z pamięci, dekoduje ją, a następnie wykonuje, na przykład używając jednostki arytmetyczno-logicznej (ALU) do dodania dwóch liczb. Niektóre instrukcje wymagają wielu cykli do wykonania, więc kolejny cykl rozpoczyna się przy następnym tyknięciu po zakończeniu instrukcji.
Mikrokontrolery mają znacznie niższe prędkości zegara niż komputery stacjonarne, laptopy czy nawet większość smartfonów. Na przykład Wio Terminal ma CPU działający z prędkością 120 MHz, czyli 120 000 000 cykli na sekundę.
✅ Przeciętny komputer PC lub Mac ma CPU z wieloma rdzeniami działającymi z prędkością kilku gigaherców, co oznacza, że zegar tyka miliardy razy na sekundę. Sprawdź prędkość zegara swojego komputera i porównaj, ile razy jest szybszy od Wio Terminal.
Każdy cykl zegara zużywa energię i generuje ciepło. Im szybsze tyknięcia, tym więcej zużywanej energii i więcej generowanego ciepła. Komputery PC mają radiatory i wentylatory do odprowadzania ciepła, bez których przegrzałyby się i wyłączyły w ciągu kilku sekund. Mikrokontrolery często nie mają ani jednego, ani drugiego, ponieważ działają znacznie chłodniej, a zatem znacznie wolniej. Komputery PC działają na zasilaniu sieciowym lub dużych bateriach przez kilka godzin, mikrokontrolery mogą działać przez dni, miesiące, a nawet lata na małych bateriach. Mikrokontrolery mogą również mieć rdzenie działające z różnymi prędkościami, przełączając się na wolniejsze rdzenie o niskim poborze mocy, gdy obciążenie CPU jest niskie, aby zmniejszyć zużycie energii.
💁 Niektóre komputery PC i Maci przyjmują podobne podejście, łącząc szybkie rdzenie o wysokiej wydajności z wolniejszymi rdzeniami o niskim poborze mocy, przełączając się, aby oszczędzać baterię. Na przykład chip M1 w najnowszych laptopach Apple może przełączać się między 4 rdzeniami wydajnościowymi a 4 rdzeniami efektywnościowymi, aby zoptymalizować żywotność baterii lub prędkość w zależności od wykonywanego zadania.
✅ Zrób małe badanie: Przeczytaj o CPU w artykule na Wikipedii o procesorach.
Zadanie
Zbadaj Wio Terminal.
Jeśli używasz Wio Terminal w tych lekcjach, spróbuj znaleźć CPU. Znajdź sekcję Hardware Overview na stronie produktu Wio Terminal, aby zobaczyć zdjęcie wnętrza, i spróbuj znaleźć CPU przez przezroczyste plastikowe okienko z tyłu.
Pamięć
Mikrokontrolery zazwyczaj mają dwa rodzaje pamięci – pamięć programu i pamięć o dostępie swobodnym (RAM).
Pamięć programu jest nieulotna, co oznacza, że to, co zostało do niej zapisane, pozostaje, gdy urządzenie jest wyłączone. To właśnie w tej pamięci przechowywany jest Twój kod programu.
RAM to pamięć używana przez program do działania, zawierająca zmienne przydzielone przez Twój program i dane zebrane z urządzeń peryferyjnych. RAM jest ulotna – gdy zasilanie zostanie odłączone, 🎓 Pamięć programu przechowuje Twój kod i pozostaje nawet po odcięciu zasilania. 🎓 RAM jest używana do uruchamiania programu i resetuje się, gdy nie ma zasilania
Podobnie jak w przypadku CPU, pamięć w mikrokontrolerze jest o rzędy wielkości mniejsza niż w komputerze PC lub Mac. Typowy komputer PC może mieć 8 gigabajtów (GB) RAM, czyli 8 000 000 000 bajtów, gdzie każdy bajt to wystarczająca ilość miejsca na przechowanie jednej litery lub liczby od 0 do 255. Mikrokontroler ma zazwyczaj tylko kilobajty (KB) RAM, gdzie kilobajt to 1 000 bajtów. Wspomniany wcześniej terminal Wio ma 192 KB RAM, czyli 192 000 bajtów - ponad 40 000 razy mniej niż przeciętny komputer PC!
Poniższy diagram pokazuje względną różnicę wielkości między 192 KB a 8 GB - mała kropka w środku reprezentuje 192 KB.
Pamięć na programy również jest mniejsza niż w komputerze PC. Typowy komputer PC może mieć dysk twardy o pojemności 500 GB na przechowywanie programów, podczas gdy mikrokontroler może mieć tylko kilobajty lub może kilka megabajtów (MB) pamięci (1 MB to 1 000 KB, czyli 1 000 000 bajtów). Terminal Wio ma 4 MB pamięci na programy.
✅ Zrób małe badanie: Ile RAM i pamięci ma komputer, którego używasz do czytania tego tekstu? Jak to się ma do mikrokontrolera?
Wejście/Wyjście
Mikrokontrolery potrzebują połączeń wejścia i wyjścia (I/O), aby odczytywać dane z czujników i wysyłać sygnały sterujące do siłowników. Zazwyczaj zawierają one kilka uniwersalnych pinów wejścia/wyjścia (GPIO). Piny te można skonfigurować w oprogramowaniu jako wejście (czyli odbierają sygnał) lub wyjście (wysyłają sygnał).
🧠⬅️ Piny wejściowe służą do odczytu wartości z czujników
🧠➡️ Piny wyjściowe wysyłają instrukcje do siłowników
✅ Dowiesz się więcej na ten temat w kolejnej lekcji.
Zadanie
Zbadaj terminal Wio.
Jeśli używasz terminala Wio w tych lekcjach, znajdź piny GPIO. Znajdź sekcję Pinout diagram na stronie produktu terminala Wio, aby dowiedzieć się, które piny są które. Terminal Wio jest dostarczany z naklejką, którą można zamontować z tyłu z numerami pinów, więc dodaj ją teraz, jeśli jeszcze tego nie zrobiłeś.
Rozmiar fizyczny
Mikrokontrolery są zazwyczaj małe, a najmniejszy, Freescale Kinetis KL03 MCU, jest wystarczająco mały, aby zmieścić się w wgłębieniu piłki golfowej. Sam procesor w komputerze PC może mieć wymiary 40 mm x 40 mm, nie licząc radiatorów i wentylatorów potrzebnych do zapewnienia, że procesor może działać dłużej niż kilka sekund bez przegrzania, co jest znacznie większe niż kompletny mikrokontroler. Zestaw deweloperski terminala Wio z mikrokontrolerem, obudową, ekranem i szeregiem połączeń i komponentów nie jest dużo większy niż sam procesor Intel i9, a znacznie mniejszy niż procesor z radiatorem i wentylatorem!
Urządzenie | Rozmiar |
---|---|
Freescale Kinetis KL03 | 1,6 mm x 2 mm x 1 mm |
Terminal Wio | 72 mm x 57 mm x 12 mm |
Intel i9 CPU, radiator i wentylator | 136 mm x 145 mm x 103 mm |
Frameworki i systemy operacyjne
Ze względu na niską prędkość i rozmiar pamięci, mikrokontrolery nie uruchamiają systemu operacyjnego (OS) w sensie znanym z komputerów stacjonarnych. System operacyjny, który sprawia, że Twój komputer działa (Windows, Linux lub macOS), potrzebuje dużo pamięci i mocy obliczeniowej do wykonywania zadań, które są całkowicie zbędne dla mikrokontrolera. Pamiętaj, że mikrokontrolery są zazwyczaj programowane do wykonywania jednego lub kilku bardzo specyficznych zadań, w przeciwieństwie do komputerów ogólnego przeznaczenia, takich jak PC czy Mac, które muszą obsługiwać interfejs użytkownika, odtwarzać muzykę lub filmy, zapewniać narzędzia do pisania dokumentów lub kodu, grać w gry czy przeglądać Internet.
Aby zaprogramować mikrokontroler bez systemu operacyjnego, potrzebujesz narzędzi umożliwiających budowanie kodu w sposób, który mikrokontroler może uruchomić, korzystając z API umożliwiających komunikację z peryferiami. Każdy mikrokontroler jest inny, więc producenci zazwyczaj wspierają standardowe frameworki, które pozwalają na stosowanie standardowego "przepisu" do budowania kodu i uruchamiania go na dowolnym mikrokontrolerze obsługującym ten framework.
Możesz programować mikrokontrolery używając systemu operacyjnego - często nazywanego systemem operacyjnym czasu rzeczywistego (RTOS), ponieważ są one zaprojektowane do obsługi przesyłania danych do i z peryferiów w czasie rzeczywistym. Te systemy operacyjne są bardzo lekkie i oferują funkcje takie jak:
- Wielowątkowość, pozwalająca na uruchamianie więcej niż jednego bloku kodu jednocześnie, albo na wielu rdzeniach, albo na jednym rdzeniu na zmianę
- Sieciowanie, umożliwiające bezpieczną komunikację przez Internet
- Komponenty graficznego interfejsu użytkownika (GUI) do budowy interfejsów na urządzeniach z ekranami.
✅ Przeczytaj o różnych RTOS-ach: Azure RTOS, FreeRTOS, Zephyr
Arduino
Arduino jest prawdopodobnie najpopularniejszym frameworkiem dla mikrokontrolerów, szczególnie wśród studentów, hobbystów i twórców. Arduino to otwartoźródłowa platforma elektroniczna łącząca oprogramowanie i sprzęt. Możesz kupić kompatybilne płytki Arduino od samego Arduino lub od innych producentów, a następnie kodować za pomocą frameworka Arduino.
Płytki Arduino są programowane w językach C lub C++. Użycie C/C++ pozwala na kompilację kodu do bardzo małych rozmiarów i szybkie działanie, co jest konieczne na urządzeniach o ograniczonych zasobach, takich jak mikrokontrolery. Rdzeń aplikacji Arduino nazywany jest szkicem i jest to kod C/C++ z 2 funkcjami - setup
i loop
. Gdy płytka się uruchamia, kod frameworka Arduino uruchamia funkcję setup
raz, a następnie uruchamia funkcję loop
w kółko, aż do wyłączenia zasilania.
Kod inicjalizacyjny umieściłbyś w funkcji setup
, na przykład łączenie z WiFi i usługami w chmurze lub inicjalizację pinów wejścia/wyjścia. Kod w pętli zawierałby przetwarzanie, na przykład odczyt z czujnika i wysyłanie wartości do chmury. Zazwyczaj dodaje się opóźnienie w każdej pętli, na przykład jeśli chcesz, aby dane z czujnika były wysyłane co 10 sekund, dodajesz opóźnienie 10 sekund na końcu pętli, aby mikrokontroler mógł przejść w stan uśpienia, oszczędzając energię, a następnie uruchomić pętlę ponownie po 10 sekundach.
✅ Ta architektura programu jest znana jako pętla zdarzeń lub pętla komunikatów. Wiele aplikacji korzysta z niej w tle i jest to standard dla większości aplikacji desktopowych działających na systemach operacyjnych takich jak Windows, macOS czy Linux. Możesz przeczytać więcej w tym artykule o pętli zdarzeń.
Arduino dostarcza standardowe biblioteki do interakcji z mikrokontrolerami i pinami I/O, z różnymi implementacjami pod spodem, aby działały na różnych mikrokontrolerach. Na przykład funkcja delay
wstrzymuje program na określony czas, a funkcja digitalRead
odczytuje wartość HIGH
lub LOW
z danego pinu, niezależnie od tego, na której płytce kod jest uruchamiany. Te standardowe biblioteki oznaczają, że kod Arduino napisany dla jednej płytki może być skompilowany dla dowolnej innej płytki Arduino i będzie działał, zakładając, że piny są takie same i płytki obsługują te same funkcje.
Istnieje duży ekosystem bibliotek Arduino od firm trzecich, które pozwalają na dodanie dodatkowych funkcji do projektów Arduino, takich jak używanie czujników i siłowników lub łączenie się z usługami IoT w chmurze.
Zadanie
Zbadaj terminal Wio.
Jeśli używasz terminala Wio w tych lekcjach, przeczytaj ponownie kod, który napisałeś w poprzedniej lekcji. Znajdź funkcje setup
i loop
. Monitoruj wyjście szeregowe, aby zobaczyć, że funkcja loop
jest wywoływana wielokrotnie. Spróbuj dodać kod do funkcji setup
, aby zapisać coś na porcie szeregowym i zaobserwuj, że ten kod jest wywoływany tylko raz przy każdym ponownym uruchomieniu. Spróbuj ponownie uruchomić urządzenie za pomocą przełącznika zasilania z boku, aby pokazać, że funkcja ta jest wywoływana za każdym razem, gdy urządzenie się restartuje.
Głębsze spojrzenie na komputery jednopłytkowe
W poprzedniej lekcji wprowadziliśmy komputery jednopłytkowe. Teraz przyjrzyjmy się im bliżej.
Raspberry Pi
Raspberry Pi Foundation to organizacja charytatywna z Wielkiej Brytanii założona w 2009 roku w celu promowania nauki informatyki, szczególnie na poziomie szkolnym. W ramach tej misji opracowali komputer jednopłytkowy, nazwany Raspberry Pi. Raspberry Pi są obecnie dostępne w 3 wariantach - pełnowymiarowym, mniejszym Pi Zero oraz module obliczeniowym, który można wbudować w końcowe urządzenie IoT.
Najnowsza wersja pełnowymiarowego Raspberry Pi to Raspberry Pi 4B. Ma czterordzeniowy procesor (4 rdzenie) o taktowaniu 1,5 GHz, 2, 4 lub 8 GB RAM, gigabitowy Ethernet, WiFi, 2 porty HDMI obsługujące ekrany 4k, port wyjścia audio i wideo kompozytowego, porty USB (2 USB 2.0, 2 USB 3.0), 40 pinów GPIO, złącze kamery dla modułu kamery Raspberry Pi oraz gniazdo na kartę SD. Wszystko to na płytce o wymiarach 88 mm x 58 mm x 19,5 mm, zasilanej przez zasilacz USB-C o mocy 3A. Ceny zaczynają się od 35 USD, co jest znacznie tańsze niż PC czy Mac.
💁 Jest także Pi400, komputer typu all-in-one z Pi4 wbudowanym w klawiaturę.
Pi Zero jest znacznie mniejszy i mniej wydajny. Ma jednordzeniowy procesor 1 GHz, 512 MB RAM, WiFi (w modelu Zero W), pojedynczy port HDMI, port micro-USB, 40 pinów GPIO, złącze kamery dla modułu kamery Raspberry Pi oraz gniazdo na kartę SD. Ma wymiary 65 mm x 30 mm x 5 mm i zużywa bardzo mało energii. Pi Zero kosztuje 5 USD, a wersja W z WiFi - 10 USD.
🎓 Procesory w obu tych urządzeniach to procesory ARM, w przeciwieństwie do procesorów Intel/AMD x86 lub x64, które znajdziesz w większości komputerów PC i Mac. Są one podobne do procesorów, które znajdziesz w niektórych mikrokontrolerach, a także w prawie wszystkich telefonach komórkowych, Microsoft Surface X i nowych komputerach Mac z Apple Silicon.
Wszystkie warianty Raspberry Pi działają na wersji systemu Debian Linux o nazwie Raspberry Pi OS. Jest on dostępny w wersji lite bez pulpitu, idealnej do projektów "headless", gdzie nie potrzebujesz ekranu, lub w pełnej wersji z pełnym środowiskiem graficznym, przeglądarką internetową, aplikacjami biurowymi, narzędziami do kodowania i grami. Ponieważ system operacyjny jest wersją Debiana, możesz zainstalować dowolną aplikację lub narzędzie, które działa na Debianie i jest zbudowane dla procesora ARM w Pi.
Zadanie
Zbadaj Raspberry Pi.
Jeśli używasz Raspberry Pi w tych lekcjach, przeczytaj o różnych komponentach sprzętowych na płytce.
- Możesz znaleźć szczegóły dotyczące procesorów używanych w dokumentacji sprzętowej Raspberry Pi. Przeczytaj o procesorze używanym w Twoim Pi.
- Zlokalizuj piny GPIO. Przeczytaj więcej o nich w dokumentacji GPIO Raspberry Pi. Skorzystaj z przewodnika po użyciu pinów GPIO, aby zidentyfikować różne piny na Twoim Pi.
Programowanie komputerów jednopłytkowych
Komputery jednopłytkowe to pełne komputery, działające na pełnym systemie operacyjnym. Oznacza to, że istnieje szeroka gama języków programowania, frameworków i narzędzi, których możesz używać do ich kodowania, w przeciwieństwie do mikrokontrolerów, które polegają na wsparciu dla płytki w frameworkach takich jak Arduino. Większość języków programowania ma biblioteki umożliwiające dostęp do pinów GPIO w celu wysyłania i odbierania danych z czujników i siłowników.
✅ Jakie języki programowania znasz? Czy są one obsługiwane na Linuksie?
Najczęściej używanym językiem programowania do budowy aplikacji IoT na Raspberry Pi jest Python. Istnieje ogromny ekosystem sprzętu zaprojektowanego dla Pi, a prawie wszystkie z nich zawierają odpowiedni kod potrzebny do ich użycia jako bibliotek Pythona. Niektóre z tych ekosystemów opierają się na "czapkach" - tak nazwanych, ponieważ nakładają się na Pi jak czapka i łączą się z dużym gniazdem do 40 pinów GPIO. Te czapki zapewniają dodatkowe możliwości, takie jak ekrany, czujniki, zdalnie sterowane samochody lub adaptery umożliwiające podłączenie czujników za pomocą standaryzowanych kabli.
Wykorzystanie komputerów jednopłytkowych w profesjonalnych wdrożeniach IoT
Komputery jednopłytkowe są wykorzystywane w profesjonalnych wdrożeniach IoT, nie tylko jako zestawy deweloperskie. Mogą stanowić potężne narzędzie do sterowania sprzętem i wykonywania złożonych zadań, takich jak uruchamianie modeli uczenia maszynowego. Na przykład istnieje moduł obliczeniowy Raspberry Pi 4, który oferuje wszystkie możliwości Raspberry Pi 4, ale w bardziej kompaktowej i tańszej formie, bez większości portów, zaprojektowany do instalacji w niestandardowym sprzęcie.
🚀 Wyzwanie
Wyzwanie z ostatniej lekcji polegało na wymienieniu jak największej liczby urządzeń IoT, które znajdują się w Twoim domu, szkole lub miejscu pracy. Dla każdego urządzenia z tej listy zastanów się, czy są one oparte na mikrokontrolerach, komputerach jednopłytkowych, czy może na mieszance obu tych technologii.
Quiz po wykładzie
Przegląd i samodzielna nauka
- Przeczytaj przewodnik wprowadzający do Arduino, aby lepiej zrozumieć platformę Arduino.
- Zapoznaj się z wprowadzeniem do Raspberry Pi 4, aby dowiedzieć się więcej o Raspberry Pi.
- Dowiedz się więcej o niektórych koncepcjach i akronimach w artykule What the FAQ are CPUs, MPUs, MCUs, and GPUs w Electrical Engineering Journal.
✅ Skorzystaj z tych przewodników oraz z kosztów pokazanych w linkach w przewodniku sprzętowym, aby zdecydować, jaką platformę sprzętową chcesz użyć, lub czy wolisz skorzystać z wirtualnego urządzenia.
Zadanie
Porównaj i skontrastuj mikrokontrolery oraz komputery jednopłytkowe
Zastrzeżenie:
Ten dokument został przetłumaczony za pomocą usługi tłumaczeniowej AI Co-op Translator. Chociaż dokładamy wszelkich starań, aby zapewnić poprawność tłumaczenia, prosimy pamiętać, że automatyczne tłumaczenia mogą zawierać błędy lub nieścisłości. Oryginalny dokument w jego rodzimym języku powinien być uznawany za autorytatywne źródło. W przypadku informacji o kluczowym znaczeniu zaleca się skorzystanie z profesjonalnego tłumaczenia przez człowieka. Nie ponosimy odpowiedzialności za jakiekolwiek nieporozumienia lub błędne interpretacje wynikające z użycia tego tłumaczenia.