Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Historia pewnego LedCuba, czyli od projektu do realizacji Grzegorz Marczak 1.

Podobne prezentacje


Prezentacja na temat: "Historia pewnego LedCuba, czyli od projektu do realizacji Grzegorz Marczak 1."— Zapis prezentacji:

1 Historia pewnego LedCuba, czyli od projektu do realizacji Grzegorz Marczak 1

2 Czym jest LedCube? Jest to trójwymiarowy wyświetlacz złożony z diod świecących, mający kształt sześcianu. Różne projekty tego wyświetlacza można znaleźć w Internecie, ale zwykle nie są większe niż 5x5x5. A my chcieliśmy zrobić coś więcej… 2

3 Czym jest LedCube? 3

4 4

5 5

6 Ewolucja naszego LedCuba LedCube v1 – Prosty, jednokolorowy wyświetlacz o wymiarach 8x8x8, sterowany przez komputer (port drukarkowy) – Zbudowany w celu przetestowania układu sterowania diod oraz przećwiczenia montażu mechanicznego kostki 6

7 Ewolucja naszego LedCuba LedCube v2 – Wersja dwukolorowa, działająca autonomicznie lub sterowany przez komputer (przez USB), wyposażony w gniazdo kart SD, możliwość podłączenie padów od PS2, analizator widma audio i wiele innych peryferiów – Nigdy nie wyszedł z fazy prototypu 7

8 Ewolucja naszego LedCuba LedCube v2.5 – Uproszczona wersja v2 – Dwukolorowy, działający autonomicznie lub sterowany przez USB, wyposażony w analizator widma audio i zegar czasu rzeczywistego – Powstał w kilku egzemplarzach, eliminujących wcześniej wykryte błędy i dodających usprawnienia – Tej wersji będzie poświęcona dalsza część prezentacji 8

9 Ewolucja naszego LedCuba LedCube v3 – Obecnie w końcowej fazie projektowania – Dwukolorowy, 8x8x8, wyposażony w zmodyfikowany układ sterowania diod i wydajniejszy procesor (ARM) – Możliwość sterowania pilotem zamiast niewygodnej miniaturowej klawiatury 9

10 Założenia LedCube ma być duży: co najmniej 8x8x8 ( projekty z Internetu mają zwykle rozmiary 3x3x3 lub 4x4x4, czasem 5x5x5) Ma być dwukolorowy (większość projektów to wyświetlacze jednokolorowe) Ma mieć możliwość pracy autonomicznej lub być sterowany przez PC (większość projektów z Internetu ma ograniczoną funkcjonalność) 10

11 Dylematy i wątpliwości Koszt – same tylko 512 diod to ok. 300zł Wątpliwości dotyczące jasności świecenia i możliwości mrugania diod Wątpliwości na temat połączeń diod led: czy wyświetlacz złożony z 512 bipolarnych diod da się w ogóle wysterować? Czy możliwe jest zapalenie dowolnej kombinacji diod? A może zbudować większy? 11

12 A dlaczego nie większy? Koszt Dylemat między brakiem osi symetrii i jej posiadaniem Wymiary nie będące wielokrotnością liczby 4 to marnotrawstwo elementów i komplikacja układu: czasem trzeba dołożyć nowy układ scalony tylko po to, żeby sterował 1 diodą, mimo że jest przewidziany do sterowania 8 lub 16 12

13 Etapy projektowania LedCuba v2.5 13

14 Pomysł Najważniejszy etap projektowania Trzeba podjąć decyzję mające wpływ na wszystkie dalsze prace Nasz pomysł: zbudować wyświetlacz większy i posiadający więcej możliwości niż podobne konstrukcje w Internecie 14

15 Założenia związane z funkcjonalnością Wyświetlanie dowolnych efektów graficznych w kolorze czerwonym, zielonym i żółtym Wyświetlanie tekstu w dowolnym z kolorów Wyświetlanie godziny i daty Funkcja analizatora widma dla sygnału audio Komunikacja i możliwość sterownia przez PC 15

16 Schemat blokowy Podział układu na bloki pełniące dające się wydzielić i nazwać funkcje. Pozwala oszacować złożoność układu i zaplanować jego podział na mniejsze części 16

17 Schemat blokowy 17 Matryca led 8x8x8 Sterownik warstw Sterownik warstwy CPU Konwerter USB  RS232 Klawiatura Wzmacniacz i normalizator audio Gniazdo 3,5mm Gniazdo USB

18 Poszukiwanie elementów Elementy, które chcemy użyć powinny: – Być dostępne w Polsce – Mieć rozsądną cenę – Posiadać parametry wymagane przez projekt – Ich stopień złożoności nie powinien być zbyt duży w stosunku do funkcji, którą mają pełnić w naszym projekcie – Ich obudowy muszą umożliwiać wykonanie płytki i montaż w warunkach amatorskich – Powinny być ze sobą możliwie kompatybilne 18

19 Do naszego projektu wybraliśmy: Bipolarne diody RG o średnicy 5mm Atmega328p – jako mikrokontroler sterujący Rejestry przesuwne 74HC595 – jako sterowniki warstwy i wyboru warstwy Tranzystory BC327 i BC237 jako stopnie mocy sterownika wyboru warstwy FT232RL jako konwerter RS-232  USB LM358 – jako normalizator i wzmacniacz audio 19

20 Schemat ideowy Wizualna prezentacja połączeń między elementami Podczas jego tworzenia dobiera się również ostateczne (choć nie zawsze) wartości elementów Błąd na tym etapie zwykle uniemożliwia dalszą pracę 20

21 Schemat ideowy 21

22 Projekt płytki PCB Płytka pozwala na pewny i niezawodny montaż elementów Jej projekt musi spełniać liczne wymagania: – ścieżki powinny być możliwie krótkie – szerokość ścieżek powinna być zależna od natężenia prądu, który ma nimi płynąć – szerokość ścieżek i odstępy między nimi muszą umożliwiać wykonanie płytki w warunkach amatorskich Do zaprojektowania płytki wykorzystaliśmy program Eagle 22

23 Projekt płytki PCB – płyta główna 23

24 Projekt płytki PCB – płyta wyświetlacza 24

25 Wykonanie płytki PCB Wykorzystujemy technikę termotransferową i środek trawiący B327 + kilka samodzielnie opracowanych rozwiązań, będących tajemnicą Jesteśmy w stanie uzyskać ścieżki i odstępy między nimi o szerokości do 1/4 mm 25

26 Montaż PCB Wycięcie PCB Wiercenie otworów Lutowanie – Niestaranność podczas lutowania może spowodować późniejszą frustrację, podobnie jak wykonanie przeskalowanej płytki 26

27 Pierwsze uruchomienie Test dymu i ognia Kontrola napięć W przypadku LedCuba nie da się wykonać więcej testów bez zaprogramowanego procesora 27

28 Program dla procesora AVR Program steruje pracą wyświetlacza, odpowiada za komunikację z komputerem PC Napisany w całości w języku C Jeśli coś nie działa to może to być wina tego programu, niestarannego montażu płytki bądź błędu na poziomie schematu połączeń 28

29 Program dla PC Steruje pracą kostki w trybie komunikacji z PC Napisany w C# Pozwala na wyświetlanie dowolnych efektów na wyświetlaczu oraz programowanie tekstów i godziny dla trybu autonomicznego 29

30 Filmiki 30

31 Dlaczego LedCube v3? Podczas budowy i uruchamiania wersji v2.5 stwierdziliśmy, że: – Użyty przez nas procesor ma za małą moc obliczeniową – Diody świecą za słabo – Prędkość transmisji szeregowej między PC i cubem jest za mała – Zmiana trybu pracy przyciskami to totalny niewypał 31

32 Czy można zacząć przygodę z elektroniką prościej?  32

33 ZALEŻY, czasem się nie da  33

34 Ale czasem się da 34

35 Od czego to zależy? Przede wszystkim od: – Stopnia komplikacji projektu: w przypadku prostych projektów część kroków można pominąć – „Typowości” jego podzespołów: niekiedy niektóre bloki można zastąpić „gotowcami” – Wymagań odnośnie budowy mechanicznej, czyli przede wszystkim wyglądu, wielkości czy obudowy: urządzenie brzydkie, bez obudowy można wykonać szybciej i mniejszym nakładem pracy niż „ozdobne” – Doświadczenia 35

36 Zestawy deweloperskie Czasem w przypadku potrzeby wypróbowania rozwiązania nie wymagającego specjalistycznych lub nietypowych peryferiów i gdy sam projekt nie jest zbyt skomplikowany, można skorzystać z pomocy zestawów deweloperskich 36

37 Czym jest zestaw deweloperski? Jest to urządzenie składające się z modułów (bloków), z których można zbudować określone urządzenia wkładając w to minimalną pracę. W przypadku zestawów deweloperskich do projektowania i testowania urządzeń mikroprocesorowych praca ta ogranicza się zwykle do wykonania połączeń złączkami kablowymi, podłączeniu zasilania i napisaniu programu. Dowolność w sposobie łączenia bloków pozwala na zbudowanie prototypu możliwie podobnego do finalnego urządzenia. 37

38 Zestaw deweloperski Libra firmy Atnel 38

39 Zestaw deweloperski Libra firmy Atnel 39

40 Zestaw deweloperski Libra firmy Atnel 40

41 Wyposażenie Mikrokontroler Atmel Atmega32 Port szeregowy Wyświetlacz alfanumeryczny Wyświetlacz led Diody led Buzzer Przyciski 41

42 Wyposażenie Gniazdo karty SD Wyjście mocy (np. do podłączenia silnika krokowego) Zegar RTC Termometr Odbiornik podczerwieni Zasilacz Wyprowadzone wszystkie porty I/O 42

43 Możliwości Programowanie przez USB Oprogramowanie może być pisane w dowolnym języku Zasilanie z zasilacza lub przez USB (wszystkie elementy posiadają podłączone zasilanie) 43

44 Czym jest mikrokontroler, czyli serce LedCuba i zestawu Libra? Układ scalony zawierający w sobie następujące elementy: – Jeden lub kilka rdzeni obliczeniowych – Pamięć (operacyjną, programu, ustawień) – Peryferia wewnętrzne Porty I/O Liczniki Moduły komunikacyjne (port szeregowy, I2C itp.) Przetworniki ADC, komparatory itp. 44

45 Parametry Atmega32 8–bitowy rdzeń o architekturze AVR 32kB pamięci programu (Flash) 2kB pamięci operacyjnej (SRAM) 1kB pamięci nieulotnej (EEPROM) 3 liczniki (2x 8-bitowy, 1x 16-bitowy) 32 porty I/O Taktowanie: 0..16MHz Wydajność do 16MIPS 45

46 W czym można napisać program dla mikrokontrolera AVR? Wybór jest stosunkowo niewielki: assembler, C/C++ lub basic, w praktyce: assembler i C (C++ wymaga zbyt dużo zasobów, basic ma ograniczoną liczbę narzędzi) Większy wybór… nie jest potrzebny Zaleta małego wyboru języków: mnóstwo przykładów i poradników do nich 46

47 Przykładowy program w C #include int main(void) { //inicjalizacja (ustawienie wartości początkowych rejestrów, zmiennych itp.) while(1) { //nieskończona pętla główna programu } return 0; } 47

48 Co należy zrobić z takim kodem C? Skompilować (np. kompilatorem gcc z pakietu WinAVR) Tak uzyskany plik.bin lub.hex załadować do pamięci Flash procesora za pomocą programatora i np. programu avrdude 48

49 Kontrola procesora przez programistę Do tego celu wykorzystuje się rejestry funkcyjne Każdy rejestr jest komórką pamięci: liczbą całkowitą Każdy z 8 bitów rejestru może (ale nie musi) pełnić jakąś funkcję Z poziomu programu rejestry są dla nas predefiniowanymi zmiennymi całkowitymi 49

50 Przykłady rejestrów GIFR - General Interrupt Flag Register – Bity 0..4 – nieużywane – Bit 5: INTF2 – przerwanie INT2 on/off – Bit 6: INTF1 – przerwanie INT1 on/off – Bit 7: INTF0 – przerwanie INT0 on/off UDR - USART I/O Data Register – Bity 0..7 – 8-bitowa liczba do wysłania/odebrania – Zapis do tego rejestru powoduje wysłanie liczby przez port szeregowy 50

51 Dostęp do bitów w języku C Ustawianie bitu GIFR |= (1<> INTF0) & 0x1); 51

52 Odmierzanie czasu Do odmierzania czasu, zliczania impulsów itp. wykorzystuję się liczniki Są to specjalne zmienne (8- lub 16-bitowe, kontrolowane przez układ zegarowy procesora, który może zmieniać ich stan w górę lub w dół Programista może je – Odczytać i zapisać, w tym wyzerować – Zmienić tryb pracy – Obsłużyć zdarzenie związane z ich pracą (przepełnienie, osiągnięcie wybranej wartości itp.) 52

53 Zdarzenia Procesor może reagować na różne zdarzenia. Jest to tzw. obsługa przerwań. Ich źródła: – Wejścia INT0, INT1, INT2 – Liczniki – Moduły komunikacyjne (np. port szeregowy) – Przetwornik ADC i komparator analogowy – Moduły obsługi pamięci 53

54 Obsługa przerwań w języku C Konfiguracja i zezwolenie na przerwanie (zależne od typu przerwania) poprzez ustawienie odpowiednich bitów w rejestrach funkcyjnych Funkcja obsługi przerwania w języku C ISR(NAZWA_SYGNAŁU) //np. SIG_OVERFLOW0 { //kod obsługujący przerwanie } 54

55 Porty I/O Każdy port może być wejściem lub wyjściem (zależnie od konfiguracji). Po włączeniu peryferiów wewnętrznych mikrokontrolera niektóre porty mogą nie być dostępne. Do sterowania portami I/O służą 3 rodzaje rejestrów: – PORTx – stan wyjściowy (0-niski, 1 – wysoki) – PINx – stan wejściowy (0-niski, 1 – wysoki)ss – DDRx – kierunek (0 – wejście, 1 – wyjście) 55

56 Komunikacja z komputerem przez port szeregowy Do komunikacji z komputerem przez RS-232 służy urządzenie peryferyjne USART Komunikacja z komputerem polega na zapisywaniu wartości do rejestru UDR, a odbieranie danych – odczyt wartości rejestru UDR Zarówno wysłanie danych, jak i odebranie może być źródłem zdarzenia (przerwania) 56

57 Więcej na zajęciach praktycznych Dziękuję za uwagę 57


Pobierz ppt "Historia pewnego LedCuba, czyli od projektu do realizacji Grzegorz Marczak 1."

Podobne prezentacje


Reklamy Google