Historia pewnego LedCuba, czyli od projektu do realizacji

Slides:



Advertisements
Podobne prezentacje
Znaki informacyjne.
Advertisements

Co to jest BIOS ? Piotr Pierzchalski kl. III B.
Wprowadzenie do informatyki Wykład 6
Ludwik Antal - Numeryczna analiza pól elektromagnetycznych –W10
Liczby pierwsze.
UTK Zestaw I.
Wykład 9 Dedykowane procesory DSP oraz mikrokontrolery z jednostką DSP
Magistrale.
Ksantypa2: Architektura
Systemy operacyjne Copyright, 2000 © Jerzy R. Nawrocki Wprowadzenie do informatyki.
Systemy operacyjne Copyright, 2000 © Jerzy R. Nawrocki Wprowadzenie do informatyki.
Klawiatura i urządzenia wskazujące
Wstaw tekst Płyta główna (ang. mainboard) najważniejsza płyta drukowana urządzenia elektronicznego, na której zamontowano najważniejsze elementy urządzenia,
Schemat blokowy komputera
Komputer, procesor, rozkaz.
Praca dyplomowa inżynierska
Płyta główna.
UKŁADY SZEREGOWO-RÓWNOLEGŁE
Klasyfikacja systemów
PODSTAWOWY ZESTAW KOMPUTEROWY
PROJEKT GRUPOWY SYSTEM ANTYKOLIZYJNY DLA ROBOTÓW PRZEMYSŁOWYCH Grupa: P. Bocian K. Czułkowski A. Hryniewicz opiekun: mgr inż. Piotr Fiertek.
ZESTAW KOMPUTEROWY.
Procesory jednoukładowe
Tytuł prezentacji Warszawa, r..
Autor: Piotr Wojtowicz Opiekun naukowy referatu: dr inż. Cezary Worek
Wykonawcy:Magdalena Bęczkowska Łukasz Maliszewski Piotr Kwiatek Piotr Litwiniuk Paweł Głębocki.
Technika Mikroprocesorowa 1
Przyciski i klawiatury
Budowa wnętrza komputera
POLITECHNIKA POZNAŃSKA
Układ sterowania ramieniem teleskopu
Płyta główna. Magistrale I/O
Wirujący tekst Lekcja fizyki projektu Comenius ul.Skłodowskiej 6
Elementy składowe komputera
Autor: Justyna Radomska
Montaż kominka wentylacyjnego Technologia Szybki Syntan SBS
KOLEKTOR ZASOBNIK 2 ZASOBNIK 1 POMPA P2 POMPA P1 30°C Zasada działanie instalacji solarnej.
Budowa i rodzaje procesorów.
Mikroprocesory mgr inż. Sylwia Glińska.
ŻYWE JĘZYKI PROGRAMOWANIA LIVING IT UP WITH A LIVE PROGRAMMING LANGUAGE Sean McDirmid Ecole Polytechnique Fédérale de Lausanne (EPFL)
Architektura PC.
  Prof.. dr hab.. Janusz A. Dobrowolski Instytut Systemów Elektronicznych, Politechnika Warszawska.
Etapy uruchamiania systemu Pliki konfiguracyjne
EcoCondens Kompakt BBK 7-22 E.
Prezentacja Multimedialna
SPRZET KOMPUTEROWY.
Procesor – charakterystyka elementów systemu. Parametry procesora.
Zintegrowany sterownik przycisków. Informacje podstawowe Każdy przycisk jest podłączony do sterownika za pośrednictwem dwóch przewodów, oraz dwóch linii.
BUDOWA I ZASADA DZIAŁANIA
PRACA MAGISTERSKA Wykorzystanie środowiska LABVIEW jako platformy do sterowania procesem wymuszenia w badaniach zmęczeniowych Grzegorz Sus Wydział Mechaniczny.
Klawiatura i mysz.
Dokumentacja techniczna
Układ sterowania modelu napędu dźwigowego na bazie programowalnych mikrokontrolerów Autor: Łukasz Gębarowski Opiekun: dr inż. Andrzej Ożadowicz
Elementy geometryczne i relacje
Struktura wewnętrzna mikrokontrolera zamkniętego
Dokumentacja techniczna
Dokumentacja obsługi programów Kamil Smużyński Piotr Kościński.
STM32F429I Discovery WARSZTATY DLA STUDENCKIEGO KOŁA NAUKOWEGO CHIP.
Kłodzka Grupa EME SP6JLW SP6OPN SQ6OPG
Budowa komputera.
POLITECHNIKA POZNAŃSKA
POLITECHNIKA POZNAŃSKA WBMiZ Zakład Urządzeń Mechatronicznych STEROWNIKI URZĄDZEŃ MECHATRONICZNYCH
Wyższa Szkoła Informatyki i Zarządzania
mysz drukarka Jednostka centralna monitor klawiatura.
SunFollower Projekt zespołowy Prowadzący: Dr inż. Marek Woda Wykonał: Bartosz Przybyłek Data prezentacji:
Płyta główna. Magistrale I/O
Schemat blokowy komputera
BUDOWA KOMPUTERA I JEGO FUNKCJE
Sterowane ramię robota
Mikrokontrolery z rdzeniem ARM Cortex-M0+ Energooszczędność
Zapis prezentacji:

Historia pewnego LedCuba, czyli od projektu do realizacji Grzegorz Marczak

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…

Czym jest LedCube?

Czym jest LedCube?

Czym jest LedCube?

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

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

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

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

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ść)

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?

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

Etapy projektowania LedCuba v2.5

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

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

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

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

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

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

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ę

Schemat ideowy

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

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

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

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

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

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

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ń

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

Filmiki

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ł

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

ZALEŻY, czasem się nie da 

Ale czasem się da 

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

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

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.

Zestaw deweloperski Libra firmy Atnel

Zestaw deweloperski Libra firmy Atnel

Zestaw deweloperski Libra firmy Atnel

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

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

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)

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.

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

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

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

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

Kontrola procesora przez programistę Do tego celu wykorzystuje się rejestry funkcyjne Każdy rejestr jest komórką pamięci: liczbą całkowitą 0..255 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

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

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

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.)

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

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 }

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)

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)

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