XXIV BachoTEX Klawiatura i lutownica od algorytmów do kubków konferencyjnych Piotr Strzelczyk Bachotek, 3 maja 2016
Pierwsi byli Grecy Heron z Aleksandrii (10 n.e.)
Pierwsi byli Grecy Heron z Aleksandrii (10 n.e.)
Przodkowie mikrokontrolerów mechanizm Jacquarda (1805)
Przodkowie mikrokontrolerów mechanizm Jacquarda (1805) pralki automatyczne (1937 / 1971)
Mój własny przodek mikrokontrolera sterownik pieca ceramicznego
Mój własny przodek mikrokontrolera sterownik pieca ceramicznego (1991?)
Odrobina terminologii sterownik urządzenie sterowania automatycznego, dowolna implementacja algorytmu sterowania mikrokontroler zarówno układ scalony zawierający mikroprocesor zaprojektowany do zastosowań w automatyce, jak i cały sterownik zbudowany na jego podstawie
Wracając do historii: tranzystor (1947, John Bardeen, Walter Houser Brattain i William Bradford Shockley) układ scalony (1958, Jack Kilby i Robert Noyce) mikroprocesor Intel 4004 i mikrokontroler TMS1000 (1971) Intel 8080 (1974)
Wracając do historii: tranzystor (1947, John Bardeen, Walter Houser Brattain i William Bradford Shockley) układ scalony (1958, Jack Kilby i Robert Noyce) mikroprocesor Intel 4004 i mikrokontroler TMS1000 (1971) Intel 8080 (1974)
Mikrokontroler to kompletny komputer mikroprocesor + pamięć + wejście/wyjście
Mikrokontroler to kompletny komputer mikroprocesor + pamięć + wejście/wyjście mikroprocesor niekoniecznie architektura von Neumanna 8-, 16-, a nawet 32-bitowy pamięć Flash (obszar programu) RAM (obszar zmiennych) EEPROM (Electrically-Erasable Programmable Read-Only Memory) wejście/wyjście protokoły I/O przetworniki A/D i D/A (Analog/Digital) przerwania sprzętowe
Mikrokontroler to kompletny komputer mikroprocesor + pamięć + wejście/wyjście + dodatki mikroprocesor niekoniecznie architektura von Neumanna 8-, 16-, a nawet 32-bitowy pamięć Flash (obszar programu) RAM (obszar zmiennych) EEPROM (Electrically-Erasable Programmable Read-Only Memory) wejście/wyjście protokoły I/O przetworniki A/D i D/A (Analog/Digital) przerwania sprzętowe
Mikrokontrolery mają coraz więcej dodatków: układy czasowe RTC generatory programowane I 2 C, OneWire, CAN LCD, USB, WiFi, GSM watch-dog ISP, auto ISP RTC Real-Time Clock I 2 C Inter-Integrated Curcuit ISP In System Programing
Historia i teraźniejszość Intel 8051 (1980) Atmel AVR (1996) PowerPC (1992 / 2002) Broadcom chips (SoC) (2006 / 2012) SoC system on chip
Historia i teraźniejszość Intel 8051 (1980) Atmel AVR (1996) PowerPC (1992 / 2002) Broadcom chips (SoC) (2006 / 2012) rodzina MCS-51 wciąż rozwijana SoC system on chip
Mikrokontrolery są wokół nas: sterowniki przemysłowe wszelka automatyka telekomunikacja samochody sterowniki AGD/RTV
Mikrokontrolery są wokół nas: komputery tablety smartfony (często kilka w urządzeniu)
Mikrokontrolery są wokół nas: komputery tablety smartfony (często kilka w urządzeniu) w zasięgu wzroku mamy prawdopodobnie kilkadziesiąt mikrokontrolerów
Mikrokontrolery i open-source Twórcy mikrokontrolerów od początku wspierali ruch open-source. I wzajemnie liczy się sprzedaż układów, a nie licencji dobra dokumentacja ułatwia programowanie ogólnodostępne biblioteki
Nowe projekty korzystają z społeczności Rozwój społecznościowy okazał się dobrym modelem dla twórców mikrokontrolerów im więcej konstruktorów, tym więcej bibliotek im więcej bibliotek, tym więcej projektów im więcej projektów, tym więcej doświadczeń i rozwiązań
Nowe projekty korzystają z społeczności Rozwój społecznościowy okazał się dobrym modelem dla twórców mikrokontrolerów im więcej konstruktorów, tym więcej bibliotek im więcej bibliotek, tym więcej projektów im więcej projektów, tym więcej doświadczeń i rozwiązań moje ulubione społeczności: http://www.instructables.com/ a także: https://www.arduino.cc/
Dlaczego warto konstruować własne mikrokontrolery? Gotowe mikrokontrolery sprawdzają się w typowych zastosowaniach przy większych wymaganiach pozostaje: wiele prostych mikrokontrolerów mikrokontroler przewymiarowany
Dlaczego warto konstruować własne mikrokontrolery? Przy specyficznych wymaganiach najlepszym rozwiązaniem jest własny mikrokontroler (i własne oprogramowanie)
Dlaczego warto konstruować własne mikrokontrolery? Przy specyficznych wymaganiach najlepszym rozwiązaniem jest własny mikrokontroler (i własne oprogramowanie) ogrzewanie domu piec ceramiczny terrarium uniwersalny pilot sterowanie szklarnią
Jak zaprojektować mikrokontroler?
Jak zaprojektować mikrokontroler? Pierwsze pytania: Co ma robić? O czym powinien wiedzieć? Czym ma sterować?
Jak zaprojektować mikrokontroler? Pierwsze pytania: Co ma robić? funkcja O czym powinien wiedzieć? wejście: temperatura, światło itd.. Czym ma sterować? wyjście: przekaźniki, silniki, LEDy itd
Jak zaprojektować mikrokontroler? Wybór interfejsu użytkownika: od włącznika poprzez guziki i lampki wyświetlacze i joysticki po ekrany dotykowe No i najlepsza zabawa, czyli algorytmy wewnętrzne
Jak zaprojektować mikrokontroler? Interesujące rozterki, czyli sprzęt kontra program sporo zadań da się realizować i programowo, i sprzętowo: PWM, opóźnienia czasowe, kompensacja drgań styków itd. PWM pulse width modulation
Jak zaprojektować mikrokontroler? Interesujące rozterki, czyli sprzęt kontra program sporo zadań da się realizować i programowo, i sprzętowo: PWM, opóźnienia czasowe, kompensacja drgań styków itd. wybór zależy od zadania i zasobów procesora oraz złożoności elektroniki PWM pulse width modulation
Wybór poziomu i języka programowania asembler (współczesne asemblery są bardzo przyjazne) BASIC (BASCOM) inne: Pascal, Forth, VHDL C (GCC optymalizuje chyba lepiej niż człowiek) C++, Python, Java
Wybór platformy sprzętowej nie jest łatwy
Wybór platformy sprzętowej nie jest łatwy dostępnych jest wiele projektów (w dużej części open-source) o różnych kosztach, zasobach, możliwościach i mocach obliczeniowych
Wybór platformy sprzętowej nie jest łatwy dostępnych jest wiele projektów (w dużej części open-source) o różnych kosztach, zasobach, możliwościach i mocach obliczeniowych od Arduino Micro (25 zł, a import od 8 zł) do RaspberryPi (120 zł), czy Intel Edison (do 400 zł)
Platforma Arduino (open hardware) obecnie jedna z największych inicjatyw szeroka gama różnych rozwiązań Arduino Uno dla niedużych sterowników, sporo wejść i wyjść, nieduże rozmiary Arduino Nano malutka płytka, dla małych projektów Arduino Mega dużo wejść, większa pamięć programu (większość drukarek 3D działa na nim) https://www.arduino.cc/ lub http://www.arduino.org/
Platforma Arduino (open hardware) obecnie jedna z największych inicjatyw szeroka gama różnych rozwiązań Arduino Uno dla niedużych sterowników, sporo wejść i wyjść, nieduże rozmiary Arduino Nano malutka płytka, dla małych projektów Arduino Mega dużo wejść, większa pamięć programu (większość drukarek 3D działa na nim) https://www.arduino.cc/ lub http://www.arduino.org/ USA Włochy
Platforma Arduino (open hardware) Arduino Nano Arduino Uno
Platformy mikrokomputerowe rozwiązania z drugiego końca mikrokomputer do zastosowania także jako mikrokontroler Raspberry Pi https://www.raspberrypi.org/ BeagleBone http://beagleboard.org/ Intel Edison http://www.instructables.com/id/intel/
Jak zaprojektować mikrokontroler? Sprzęt (hardware) projektowanie elektroniki on-line łączenie modułów bez lutowania zasilanie i obudowa komplikują zadanie
Jak zaprojektować mikrokontroler? Program (software) wiele bibliotek dostępnych programowanie przyrostowe błogosławieństwo ISP testowanie i poprawianie
Jak zaprojektować mikrokontroler? Program (software) wiele bibliotek dostępnych programowanie przyrostowe błogosławieństwo ISP testowanie i poprawianie program łatwiejszy do modyfikacji od sprzętu (programowa kompensacja błędów sprzętowych)
Jak zaprojektować mikrokontroler? Skończone? To zależy od nas.
Jak zaprojektować mikrokontroler? Skończone? To zależy od nas. rozszerzanie funkcjonalności poprawianie interfejsu użytkownika testowanie i sprawdzanie warunków ulepszanie dopieszczanie algorytmów
Prosty przykład BachoTeX program // import bibliotek: #include <Arduino.h> #include <Wire.h> #include <LiquidCrystal_I2C.h>// v. 1.2.1 // ustawienie parametrow: LiquidCrystal_I2C lcd(0x27, 2,1,0,4,5,6,7,3,POSITIVE); voidsetup(){ lcd.begin(16, 2); lcd.print("bachotex"); lcd.setcursor(0, 1); lcd.print("convergence"); } voidloop(){ lcd.setcursor(11, 0); // liczba sekund od uruchomienia: lcd.print(millis()/1000); }
Prosty przykład BachoTeX sprzęt
Bezpieczeństwo i stabilność mikrokontrolerów błędy w programie błędy w bibliotekach błędy komunikacji zakłócenia na poziomie sprzętu (przepięcia, stany zabronione)
Bezpieczeństwo i stabilność mikrokontrolerów limity czasowe watchdog odtwarzanie stanu mikrokontrolera stany wyjść po restarcie zabezpieczenia elektroniczne
Bezpieczeństwo i stabilność mikrokontrolerów limity czasowe watchdog odtwarzanie stanu mikrokontrolera stany wyjść po restarcie zabezpieczenia elektroniczne
Moje przykładowe realizacje sterownik pieca, druga generacja
Moje przykładowe realizacje sterownik terrarium
Moje przykładowe realizacje sterownik terrarium
Moje przykładowe realizacje sterownik terrarium
Świetlana przyszłość mikrokontrolerów Inteligentny dom idea ma 30 lat i w końcu robi się realna klimatyzacja i systemy alarmowe powoli pojawiają się standardy
Świetlana przyszłość mikrokontrolerów Internet Rzeczy przyszłość świata
Świetlana przyszłość mikrokontrolerów Internet Rzeczy przyszłość świata większość rozwiązań nie wymaga programowania, ale naprawdę moc dają dopiero własne programy (modny jest Python)
Świetlana przyszłość mikrokontrolerów Internet Rzeczy przyszłość świata większość rozwiązań nie wymaga programowania, ale naprawdę moc dają dopiero własne programy (modny jest Python) MQTT TCP/IP WiFi Particle Photon https://www.particle.io/ MQTT Message Queuing Telemetry Transport
Bezpieczeństwo i stabilność mikrokontrolerów (cienie na obrazie przyszłości) spore ryzyko błędów w bibliotekach autoryzacja i kontrola uprawnień włamania niecelowane włamania celowane
Bezpieczeństwo i stabilność mikrokontrolerów (cienie na obrazie przyszłości) spore ryzyko błędów w bibliotekach autoryzacja i kontrola uprawnień włamania niecelowane ogromne botnety włamania celowane po co łom, wystarczy smartfon
Koniec
Koniec albo początek... dyskusji nowych projektów nowych projektantów
Koniec albo początek... dyskusji nowych projektów nowych projektantów piotr@eps.gda.pl