O'Reilly logo

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Programowanie układów AVR dla praktyków

Book Description

Współczesny świat elektroniki jest podbijany przez układ Arduino. Przemawia za nim wygoda oraz proste tworzenie całkiem zaawansowanych projektów. Jeżeli jednak wymagasz najwyższej wydajności, reakcji na zdarzenia w czasie rzeczywistym lub wielozadaniowości, warto, żebyś wykonał kolejny krok i poznał układy AVR firmy Atmel. Brzmi zachęcająco? Doskonale! W Twoje ręce oddajemy książkę, która pozwoli Ci poznać pasjonujący świat tych układów. W kolejnych rozdziałach nauczysz się wykorzystywać ich potencjał do pisania swoich własnych programów w języku C oraz komunikowania się ze światem zewnętrznym. Ponadto dowiesz się, jak korzystać z komunikacji szeregowej, wejść cyfrowych oraz przerwań sprzętowych. Na sam koniec, w części poświęconej zaawansowanym zagadnieniom, zobaczysz, jak używać przełączników i protokołu I2C oraz sterować silnikami. Książka ta przyda się wszystkim pasjonatom elektroniki, którzy pragną odkryć potencjał układów AVR.

Table of Contents

  1. Wstęp
    1. Po co powstała ta książka?
    2. Programista czy sprzętowiec?
    3. Manifest!
    4. Czego będziesz potrzebować?
      1. Zestaw podstawowy
      2. Dla podstawowych projektów
      3. Dla średnio zaawansowanych projektów
      4. Dla rozdziałów o silnikach i mostkach H
      5. Luksusowe dodatki
    5. Konwencje stosowane w książce
    6. Przykładowe kody źródłowe
    7. Podziękowania
  2. I. Podstawy
    1. 1. Wprowadzenie
      1. Czym jest mikrokontroler? Obraz ogólny
        1. Komputer w jednym układzie...
        2. ...naprawdę mały komputer
        3. Co mogą mikrokontrolery?
      2. Sprzęt: obraz ogólny
        1. Rdzeń: procesor, pamięć i układy wejścia-wyjścia
        2. Układy peryferyjne: ułatwianie sobie życia
    2. 2. Programowanie układów AVR
      1. Witaj, Świecie!
      2. Programowanie układu AVR
        1. Łańcuch narzędzi
          1. Przegląd łańcucha narzędzi
      3. Narzędzia programowe
        1. Konfiguracja w systemie Linux
        2. Konfiguracja w systemie Windows
        3. Konfiguracja w systemie Mac
        4. Konfiguracja modułu Arduino
        5. Program make i pliki makefile
      4. AVR i Arduino
        1. Zalety platformy Arduino
        2. Wady platformy Arduino
        3. Arduino: sprzęt czy oprogramowanie? I to, i to!
        4. Arduino to AVR
          1. Programowanie w języku C w IDE Arduino
          2. Zapisywanie programu w module Arduino
        5. Arduino to programator układów AVR
          1. Okablowanie modułu Arduino
          2. Zapisywanie programów w układach AVR za pomocą modułu Arduino
          3. Wykorzystanie modułu Arduino jako programatora bez użycia IDE Arduino
      5. Inne programatory sprzętowe
        1. Moje ulubione programatory
      6. Zaczynamy: błyskające diody LED
        1. Podłączenia
        2. Złącza ISP
        3. Program AVRDUDE
          1. Błędy programu AVRDUDE
        4. Konfigurowanie plików makefile
        5. Pamięć Flash
        6. Rozwiązywanie problemów
    3. 3. Wyjścia cyfrowe
      1. Wykorzystanie bezwładności wzroku
      2. blinkLED wersja 2.0
        1. Struktura kodu języka C dla układu AVR
        2. Rejestry sprzętowe
          1. Rejestry sprzętowe: podsumowanie
          2. Trzy najważniejsze rejestry sprzętowe
          3. Konfigurowanie wyjścia: rejestry DDR i PORT
        3. Podsumowanie programu blinkLED
      3. Zabawka świetlna
        1. Budowanie układu
          1. Blinkenlights
          2. Najprostsza zabawka świetlna
          3. Triki z tranzystorem
        2. Ładne wzorki: kod zabawki
        3. Eksperymentuj!
    4. 4. Manipulacje na bitach
      1. Oczy Cylonów i coś jeszcze
      2. Praca z kodem: oczy Cylonów
      3. Manipulowanie bitami a oczy Cylonów
        1. Przesuwanie bitów
      4. Zaawansowane manipulowanie bitami: coś więcej niż oczy Cylonów
        1. Włączanie bitów operatorem OR
        2. Przełączanie bitów operatorem XOR
        3. Wyłączanie bitów operatorami AND i NOT
      5. Popisy
      6. Podsumowanie
    5. 5. Szeregowe wejście i wyjście
      1. Organy z mikrokontrolera
      2. Komunikacja szeregowa
      3. Implementowanie komunikacji szeregowej w układzie AVR: projekt pętli zwrotnej
        1. Konfigurowanie: układ AVR
        2. Konfigurowanie: komputer
        3. Konfigurowanie: adapter USB-port szeregowy
        4. Sprawdzanie całości: testowanie pętli zwrotnej
        5. Usuwanie problemów z połączeniami szeregowymi
      4. Konfigurowanie modułu USART: szczegóły
      5. Organy z układu AVR
        1. Muzyka z mikrokontrolera
          1. Wzmocnienie
        2. Biblioteka muzyczna
        3. Kod
        4. Superdodatki
      6. Podsumowanie
    6. 6. Wejścia cyfrowe
      1. Pozytywka z AVR i przycisk na szefa
      2. Przyciski, przełączniki itd.
        1. Konfigurowanie wejść: rejestry DDR, PORT i PIN
        2. Interpretowanie naciśnięć przycisków
          1. Testowanie wartości bitów operatorem AND
          2. Wygodne makra kompilatora GCC
          3. Przykładowy program simpleButton
      3. Zmiana stanu
      4. Eliminowanie odbić
      5. Przykład kodu obsługującego odbicia
      6. Pozytywka
        1. Kod programu
      7. Przycisk na szefa
        1. Skrypty dla komputera stacjonarnego
        2. Rozszerzenia
    7. 7. Konwerter analogowo-cyfrowy — część 1.
      1. Czujnik światła i powolny oscyloskop
      2. Przegląd elementów układu AVR
      3. Miernik światła
        1. Schemat
          1. Piny zasilania konwertera AC
          2. Alternatywa dla fotorezystora: potencjometr
        2. Kod programu
        3. Inicjacja konwertera AC
        4. Rozszerzenia
      4. Powolny oscyloskop
        1. Kod dla układu AVR
        2. Kod dla komputera
        3. Podobieństwa
      5. Oświetlenie nocne i multiplekser
        1. Multiplekser
        2. Konfigurowanie bitów multipleksera
        3. Schemat
        4. Kod
      6. Podsumowanie
  3. II. Średnio zaawansowana
    1. 8. Przerwania sprzętowe
      1. Reakcje w czasie rzeczywistym i czujnik pojemnościowy
      2. Przerwania zewnętrzne: przykłady użycia przycisku
        1. Przykład z zewnętrznym przerwaniem INT0
        2. Przykład przerwania wywoływanego zmianą stanu pinu
      3. Czujnik pojemnościowy
        1. Czujnik
        2. Kod programu
        3. Zmienne ulotne i globalne
          1. Słowo kluczowe volatile
          2. Drobna uwaga: zmienne ulotne w pętlach for
      4. Debugowanie układu
    2. 9. Wprowadzenie do sprzętowego zegara/licznika
      1. Transmiter częstotliwości radiowych i miernik czasu reakcji
      2. Zegary i liczniki — do czego mają służyć?
      3. Sprawdź swój refleks
      4. Użycie zegara numer 0 do poprawienia 8-bitowych organów
      5. Radio AM
        1. Schemat
        2. Szybkość procesora
          1. Bity bezpiecznika
          2. Programowe wybieranie szybkości zegara
        3. Radio AM: kod programu
      6. Podsumowanie
    3. 10. Modulacja szerokości impulsu
      1. Przygaszanie diod i „analogowe” wyjście
      2. Jasne i ciemne diody: technika PWM
      3. Siłowe rozwiązanie PWM
      4. Modulowanie impulsów za pomocą liczników
        1. Inicjowanie liczników dla trybu PWM
      5. Modulowanie szerokości impulsu na dowolnym pinie
        1. Przykład modulacji impulsu na dowolnym pinie
      6. Zakończenie: inne możliwości dla PWM i listy kontrolne liczników
    4. 11. Sterowanie serwomotorami
      1. Zegar czasu rzeczywistego i laserowy „zegar słoneczny”
      2. Serwomotory
        1. Sekretne życie serwomotorów
        2. Schemat
        3. Kod programu
      3. Zegar słoneczny z serwomotorem
        1. Budowanie zegara
        2. Przygotuj lasery!
        3. Kod programu
          1. Funkcja main() i serwomotor
          2. Plik nagłówkowy
          3. Zegar
          4. Port szeregowy
        4. Kalibracja serwomotoru zegara słonecznego
    5. 12. Konwerter analogowo-cyfrowy — część 2.
      1. Dokładny woltomierz i wykrywacz kroków
      2. Woltomierz
        1. Schemat
          1. Ogólne zasady skalowania napięcia
        2. Kod programu
          1. Tryb uśpienia
          2. Nadpróbkowanie
      3. Wykrywacz kroków
        1. Schemat
        2. Teoria
        3. Wykładniczo ważona średnia krocząca
        4. Kod programu
      4. Podsumowanie
  4. III. Tematy zaawansowane
    1. 13. Zaawansowane sztuczki z PWM
      1. Cyfrowy syntezator dźwięków
      2. Bezpośrednia synteza cyfrowa
      3. Tworzenie fali sinusoidalnej
      4. Następny krok: miksowanie i głośność
        1. Miksowanie
        2. Dynamiczna kontrola głośności
      5. Odpytywanie portu USART
      6. Obwiednia ADSR
      7. Pliki uzupełniające
    2. 14. Przełączniki
      1. Sterowanie silników prądu stałego za pomocą tranzystorów lub przełączników
      2. Sterowanie dużymi prądami: przełączniki
        1. Tranzystory bipolarne
        2. Tranzystory polowe (MOSFET)
        3. Polowe tranzystory mocy
        4. Przekaźniki
        5. Triaki i przekaźniki statyczne
        6. Przełączniki: podsumowanie
      3. Silniki prądu stałego
    3. 15. Zaawansowane sterowanie silnikami
      1. Mostki typu H i silniki krokowe
      2. Cofanie: mostki typu H
      3. Program: zakręćmy sobie mostkiem
        1. Mostek H tylko dla ekspertów
      4. Mostek H i modulacja szerokości impulsu
        1. Tryb napędu znak-moduł
        2. Tryb napędu blokada-antyfaza
        3. Porównanie trybów napędu
      5. Silniki krokowe
      6. Rodzaje silników krokowych
      7. Pełne kroki i półkroki
      8. Identyfikowanie przewodów silnika krokowego
        1. Zbyt wiele przewodów!
      9. Podwójny mostek H: układ SN754410
      10. Kod programu
      11. Kontrola przyspieszeń
      12. Mikrokroki
    4. 16. SPI
      1. Obsługa zewnętrznej pamięci
      2. Jak działa protokół SPI?
        1. Przykład wymiany bitów
        2. Rejestry przesuwające
      3. Zewnętrzna pamięć EEPROM
        1. Pamięć zewnętrzna
      4. Połączenia elektryczne przykładu z protokołem SPI
      5. Kod programu demonstracyjnego
        1. Plik nagłówkowy biblioteki
        2. Kod biblioteki obsługującej pamięci EEPROM SPI
        3. Funkcja initSPI()
        4. Funkcja SPI_tradeByte()
        5. Funkcje pomocnicze
      6. Podsumowanie
    5. 17. 12C
      1. Protokołującego termometr cyfrowy
      2. Jak działa protokół I2C?
      3. Połączenia w przykładowym projekcie
      4. Biblioteka obsługi magistrali I2C
      5. Termometr z interfejsem I2C
      6. Protokołowanie danych z użyciem protokołów I2C i SPI
        1. Wskaźniki w pamięci EEPROM
        2. Menu tworzone przez port szeregowy
        3. Pętla główna termometru protokołującego
    6. 18. Używanie pamięci programu
      1. Gadający woltomierz
      2. Wykorzystanie pamięci programu
        1. Adresy pamięci
        2. Operator adresu: &
      3. Wskaźniki
        1. Wskaźniki w skrócie
        2. Wskaźniki jak parametry funkcji
        3. Podsumowanie
        4. Opcjonalnie: dereferencje wskaźników
      4. Gadający woltomierz
        1. Struktury danych w pamięci programu i plik nagłówkowy
          1. Tablice indeksujące: tablice wskaźników na pamięć programu
        2. Odtwarzanie dźwięku i odczyt wartości napięcia: plik .c
          1. Procedura obsługi przerwania
          2. Funkcja main()
      5. Generowanie danych audio
        1. Różnicowa modulacja kodowo-impulsowa
        2. Kodowanie dźwięku metodą dwubitowego DPCM
        3. Kodowanie DPCM: program wave2DPCM.py
    7. 19. EEPROM
      1. Układ AVR jako szyfrator i deszyfrator
      2. Używanie pamięci EEPROM
        1. Zapisywanie danych w pamięci
          1. Program AVRDUDE i pamięć EEPROM
        2. Odczytywanie danych z pamięci
        3. Zapisywanie i odczytywanie pamięci EEPROM
        4. Organizacja danych w pamięci EEPROM
          1. Inicjowanie pamięci EEPROM
      3. Projekt: szyfrator kodu Vigenère’a
    8. 20. Wnioski, pożegnanie i zachęta
      1. Układ AVR: brakujące rozdziały
        1. Licznik watchdog
        2. Oszczędzanie energii
        3. Zewnętrzne oscylatory i inne źródła taktowania
        4. Programy rozruchowe
        5. Komparator analogowy
      2. Debugowanie
      3. Odłóż książkę i twórz!
  5. A. O autorze
  6. Indeks
  7. Copyright