Elektroda.pl
Elektroda.pl
X
Elektroda.pl
PCBway
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Led Cube 8x8x8 @Atmega16

Dawid523 23 Gru 2012 09:52 57693 100
  • Led Cube 8x8x8 @Atmega16

    Witam ;)

    Na elce coraz więcej projektów świąteczno-świetlnych, więc i ja coś dorzucę :D
    Już od dłuższego czasu chodził mi po głowie projekt kostki led, i w ostateczności zdecydowałem się na 8x8x8 z niebieskimi ledami.

    Projekt

    Wzorowałem się na projekcie z instructables.com, jednak zrobienie tego na płytce uniwersalnej z masą przewodów całkowicie nie wchodziło w grę.
    Wiadomo że całą „brudną” robotę odwala tutaj soft, więc generalnie elektronika to nic specjalnego, procesor Atmega16 taktowana zew. kwarcem, piętra są wybierane poprzez klucze tranzystorowe (po 3 tranzystory).
    Same piętra są sterowane poprzez demultiplekser 74138, który w danej chwili wybiera odpowiedni rejestr wysterowując złącze zegarowe. Dodatkowo w projekcie był zawarty max232 do komunikacji, ja go nie montowałem (miejsce na pcb jest), za to dorzuciłem odbiornik TSOP1736.

    Płytka zaprojektowana w Eagle, jest dwustronna, na górnej części znajduje się cała logika, dolną częścią poprowadzona jest magistrala łącząca układy 74hc574 z mikroprocesorem oraz zasilacz + kondensatory filtrujące. Pozostała część płytki to w zależności od potrzeb, masa lub plus zasilania, całądrobnica w rozmiarze 1206.
    Miejsce na złącze ISP jest u góry, jednak nie zrobiłem wcześniej przelotek z góry na dół, i ciężko było przylutować je od pod plastikiem, więc przeniosłem je na spód, w projekcie z załącznika jest to już poprawione, tak że złącze lutujemy od dołu.
    Po lekkich modyfikacjach użyłem oryginalnego programu, po prostu nie mam ochoty siedzieć nad softem, stracę tylko czas, a nic lepszego nie wymyślę, a prawdę mówiąc to już znudził mi się ten projekt :P Działa wszystko, trzeba dopisać tylko (albo aż) sterowanie z pilota.

    Led Cube 8x8x8 @Atmega16Led Cube 8x8x8 @Atmega16

    Wykonanie

    Płytka jest zarówno sterownikiem jak i podstawą dla całej konstrukcji, więc została wykonana z dwóch osobnych laminatów jednostronnych, zamiast jednego dwustronnego, zapewnia to doskonałą sztywność całej konstrukcji, nic się nie wygina itd.
    PCB wykonana klasycznie, termotransferem, później została pocynowana z użyciem „Środka do cynowania bezprądowego” dostępnego na wiadomym portalu aukcyjnym. Metoda wygodna, jednak efekt marny, warstwa cyny jest matowa, żeby nie powiedzieć brzydka, do lutowania i tak trzeba dużo topnika, ogólnie odradzam. Z tego względu na sam koniec, już po zamontowaniu elementów całość pomalowałem lakierem bezbarwnym, teraz jest ok

    Po polutowaniu trzech pięter, stwierdziłem że użycie ledów 5mm było sporym błędem. Pomijam już kąt świecenia, i to że niektóre diody miały różnej długości wyprowadzenia, najgorsze jest to że 5tki są za duże, i bardzo trudno jest utrzymać „pion”, tak aby nie były przesunięte, dlatego cała konstrukcja jest delikatnie pochylona. Najlepiej użyć 3mm, mają wyprowadzenia przy samym boku obudowy, więc powinno ładnie wszystko spasować i być bardziej przejrzyste.

    Cała konstrukcja nie jest lutowana do płytki, nóżki są wprowadzone do pojedynczych pinów z podstawek precyzyjnych, trzyma się pewnie, spokojnie można powiesić „do góry nogami”.

    Led Cube 8x8x8 @Atmega16 Led Cube 8x8x8 @Atmega16 Led Cube 8x8x8 @Atmega16 Led Cube 8x8x8 @Atmega16 Led Cube 8x8x8 @Atmega16 Led Cube 8x8x8 @Atmega16 Led Cube 8x8x8 @Atmega16 Led Cube 8x8x8 @Atmega16 Led Cube 8x8x8 @Atmega16 Led Cube 8x8x8 @Atmega16 Led Cube 8x8x8 @Atmega16 Led Cube 8x8x8 @Atmega16


    Podsumowanie

    W załączniku kompletna dokumentacja, wrzucam też 2 filmy, jeden nagrany przy świetle, drugi w ciemności. Z góry przepraszam za słabą jakość, ale nagrywane aparatem a nie kamerą, niemniej jednak coś tam widać :|
    Postaram się później dołączyć video w lepszej jakości.





    31.12.2012
    Nową wersja schematu - bardziej uporządkowany, naniesione brakujące wartości elementów.

    19.08.2013 WAŻNE!
    Sporo osób pyta o "działające" pliki Eagle, odpowiadam że należy mieć wersję 6.1 lub wyższą. Dorzucam listę elementów.

    Code:
    Rezystory SMD 1206:
    

    64x 100R (dla Niebieskich LED)
    64x 0R 
    24x 1k   
    8x  10k
    4x 2k7
    1x 220R
    1x 4k7

    Kondensatory SMD 1206:
    2x  27pF 
    32x 100nF

    Pozostałe:
    512x LED 5mm
    5x   LED 1206 SMD

    8x NPN SOT23
    8x 74HC574
    1x Atmega32
    1x 74ACT138

    3x microswitch
    kwarc 16MHz
    4x 1n4007
    LM350 TO220
    3x 100uF 25V
    Goldpiny + inne akcesoria montażowe

    + ew.:
    1x MAX232
    1x TSOP1736


    Fajne! Ranking DIY
    Potrafisz napisać podobny artykuł? Wyślij do mnie a otrzymasz kartę SD 64GB.
    O autorze
    Specjalizuje się w: informatyka/elektronika/audio
    Dawid523 napisał 158 postów o ocenie 208, pomógł 2 razy. Mieszka w mieście Kraków. Jest z nami od 2005 roku.
  • PCBway
  • #3
    marcin1990
    Poziom 14  
    Podoba mi się ten projekt. Z racji zastosowania dwustronnej płytki wiele zyskał na estetyce chociaż do pełni szczęścia brakuje mi obudowy. PCB schował bym pod ciemna pleksi a samą kostkę obudowałbym bezbarwną, może nie tyle ze względów estetycznych co dla bezpieczeństwa np. przed kotem ze zdjęcia :). Poza tym po kilku miesiącach nie będzie problemu z przetarciem "obudowy". Z diod możesz co najwyżej zdmuchnąć kurz.
    P.S.
    Ledy są wpięte w podstawki precyzyjne czy jest możliwość wypiąć je i wpiąć bez uszkadzania konstrukcji ? Chodzi o montaż w obudowie.
  • #4
    hehehehuhuhu
    Poziom 19  
    Sam myślałem nad kostką 8x8x8, jednak uznałem że najpierw zrobię 4x4x4.
    Gdzie kolega zakupił diody Led?
    Ile czasy zajęło polutowanie 512 sztuk diod w kostkę?
  • #5
    Dawid523
    Poziom 14  
    @Leszcz72
    Diody rgb mocno skomplikowałyby sterowanie jak i sam program, sterowanie wierszy mnożymy wtedy przez 3 :D
    Byłoby to dosyć kłopotliwe przy tej ilości ledów, co nie znaczy że niema takich projektów, jest gdzieś film chyba z kostką 32x32x32 RGB ;]

    @marcin1990
    O obudowie nie myślę, specjalnie wykonałem podstawe z podwójnego laminatu, dodatkowo pcb jest pomalowana grubą warstwą lakieru bezbarwnego.
    Jeśli chodzi o wypięcie konstrukcji to niema większego problemu, nóżki weszły na wcisk, a w paru miejscach są dodatkowo zaciśnięte.

    @hehehehuhuhu & Hoptymista
    Diody kupione na wiadomym portalu aukcyjnym.
    Jak widać na jednym ze zdjęć, zrobiłem sobie szablon do lutowania "pięter", jest to bardzo wygodne, i czas polutowania wynosi około pół godziny.
    Łączenie poziomów to też około pół godziny na piętro, więc tragedii niema :P
    Całą konstrukcję robiłem z doskoku, chyba przez 2 miesiące, więc cieżko określić ile czasu poświęciłem całościowo.

    Widzę że administracja dzisiaj niezwykle aktywna, jednak post kolegi mirekk36 widziałem :D Wielkie dzięki, zawsze się staram żeby wyszło jak najlepiej, co do czasu to tak jak pisałem wyżej.
  • PCBway
  • #6
    karol9966
    Poziom 9  
    Diody RGB przede wszystkim zwiększyły by koszty.
    Po ile kupowałeś diody? Czym to zasilasz?
  • #7
    Dawid523
    Poziom 14  
    okrab1 Idealnie nie jest, tak jak pisałem znacznie lepiej byłoby użyć ledów 3mm.

    karol9966 Za 600szt dałem około 80/90zł.
    RGB są droższe, ale można by zrobić np. 4x4x4, wtedy nie będzie tragedii z kosztami i sterowaniem.
  • #8
    tmf
    Moderator Mikrokontrolery Projektowanie
    Projekt fajny, ale rysowanie schematów w eagle koszmarne :) Jak robisz magistrale to wyprowadzając i wprowadzając sygnał dodaj do niego opis, inaczej nie wiadomo co jest z czym połączone. Podobnie z opisami elementów. Jest opcja smash, klikasz i możesz opis elementu przenieść w dowolne miejsce. BTW, po co dawałeś równolegle 3 tranzystory bipolarne? Nie prościej było użyć pojedynczego MOSFETa, taki na 3-5A to w SOT23 jest. Nie grzeje się i sterowanie łatwe. Zmniejszyłbyś też ilość scalaków i połączeń wykorzystując tanie (<2zł) scalaki SCT. Mają po 16 wyjść z regulacją prądu, więc też rezystory odpadają. No i jak sądzę diody ciągną prąd większy niż dopuszcza specyfikacja HC574 (70mA/kość).
    Ale działa fajnie.
  • #9
    Jaremka
    Poziom 14  
    Ja też stwierdzam ze schemat to masakra Internetowa Laurka Elektroniczna.
    W jakiej wersji Eagle był projekt bo mam wersje 5.11.0 nie otwiera plików.
    Pokazuje mi Invalid data in file.
  • #10
    Dawid523
    Poziom 14  
    @tmf Znam te wszystkie opcje, mój błąd że ich nie użyłem, jednak uważam że schemat dla kogoś kto ma jakieś podstawy elektroniki jest czytelny, bo oprócz części wokół atmegi reszta jest powtarzalna.
    Użyłem bipolarnych bo mam ich bardzo dużo na stanie, wystarczyłyby nawet 2, no ale tak wyszła ładna gwiazda :D Prąd hd574 jest przekroczony, jednak animacje są dynamiczne więc niema dużego obciążenia przez dłuższą chwilę.

    Jaremka Normalne że wywala taki błąd, projektowane było w wersji 6.1, a jest już bodajże 6.3 :)
  • #11
    keseszel
    Poziom 26  
    Mam pytanie co do programu. Czy masz go w C lub innym, a nie tylko w hex? Byłbym zainteresowany modyfikacją pod 4x4.
  • #14
    konrad.nowik
    Poziom 9  
    Stworzenie tego typu animacji bez odpowiedniego programu na pewno zajmie trochę czasu.

    Fajny taki sześcian, lecz bez zastosowania pamięci zewnętrznej, to ta Twoja praca jest syzyfowym "arcydziełem". (ATmega168 ma za mało wewnętrznych zasobów by okazać co taki sześcian potrafi)
  • #15
    piotrek7700
    Poziom 16  
    Chcialbym zapytac w jaki sposob kolega tworzy animacje? Jakies dodatkowe oprogramowanie wspomagajace?
  • #16
    Dawid523
    Poziom 14  
    Właśnie z tego względu, ze trzeba by pisać wszystko ręcznie, napisanie softu z fajnymi animacjami byłoby dosyć skomplikowane i pracochłonne, po małych modyfikacjach użyłem gotowego softu ;)
  • #17
    konrad.nowik
    Poziom 9  
    Dawid523 napisał:
    po małych modyfikacjach użyłem gotowego softu


    Fajnie iż wiesz co i gdzie znaleźć.
    Ja akurat nie mam takiego szczęścia, bo sam projektuję układy do których jestem "zmuszony" napisać soft-a (jeśli robisz coś nowego i własnego, to uwierz mi iż nigdzie nie znajdziesz gotowca do prostej przeróbki )
  • #18
    Dawid523
    Poziom 14  
    Cytat:
    Fajnie iż wiesz co i gdzie znaleźć.
    Ja akurat nie mam takiego szczęścia, bo sam projektuję układy do których jestem "zmuszony" napisać soft-a (jeśli robisz coś nowego i własnego, to uwierz mi iż nigdzie nie znajdziesz gotowca do prostej przeróbki )


    Zwykle też muszę napisać wszystko od podstaw, jednak tu wzorowałem się na gotowym projekcie, oprócz tego kod był bogaty w komentarze i napisany bardzo przejrzyście, bardzo szybko szło zrozumieć zasadę działania i nanieść zmiany :P
  • #19
    konrad.nowik
    Poziom 9  
    Też się cieszę, iż z softem tak łatwo Ci poszło, lecz jeśli programujesz od podstaw, to zapewne wiesz ile czasem trzeba się nagłowić nad określonym programem, biorąc pod uwagę dostępne zasoby mikrokontrolera.
    Moim zdaniem, powinieneś pomyśleć nad obsługą pamięci zewnętrznej, w końcu tak rozbudowany rejestr zewnętrzny w czasie nietypowych animacji, chłonie bajty pamięci mikrokontrolera niczym gąbka wodę... (zewnętrzna pamięć da Ci większe możliwości)
  • #20
    Dawid523
    Poziom 14  
    Projekt skończony - zewnętrznej pamięci nie będzie :)

    W związku z dużym zainteresowaniem uaktualniłem schemat w opisie i w załączniku, jest bardziej uporządkowany, naniesione brakujące wartości elementów, myślę że teraz każdy poradzi sobie z montażem 8-)
  • #22
    Dawid523
    Poziom 14  
    Myślałem właśnie o małym module od dołu, bo nie musiałbym ingerować w płytkę.
    Może w późniejszym czasie coś wykombinuję :)
  • #23
    Longer1989
    Poziom 24  
    Gratuluje udanego projektu. Robiłem na podstawie tego samego projektu z instructables.
    Tylko ja coś zrypałem czy robieniu PCB, bo działało przynajmnej dziwnie. chyba wykorzystam twoje PCB. Mam tylko pytanie, czy na PCB oznaczenie TPxx, to wszystkie są to przelotki miedzy warstwami tak? I jeszcze jedno pytanie, czy te wszystkie ostrzeżenia w ERC mają jakiś wpływ na działanie? bo Troche ich tam jest. Jakie użyłeś tranzystory? Czym sklejałeś laminaty?
  • #24
    Dawid523
    Poziom 14  
    A więc po kolei:

    TPx to wyprowadzenia anod ledów, nie przelotki - pady, podświetl sobie na schemacie taki pad i przełącz na widok płytki, będzie widać o co biega ;)

    Płytka działa jak najbardziej poprawnie, także ERC można pominąć.
    Jako tranzystorów użyłem bodajże bc817/bc847, będą pasować praktycznie każde npn w sot23.

    Laminaty nie są klejone, trzymają się bardzo solidnie na przelotkach, do tego są skręcone czterema śrubami, jest nawet miejsce na więcej (te największe przelotki), ale nie trzeba ich montować, konstrukcja i tak jest bardzo solidna 8-)
  • #25
    Longer1989
    Poziom 24  
    Dzieki za objaśnienia. Ale masz od TP0 do TP 145, anod tylko 64:) i chodzi mi o te pozostałe. I jeszcze takie dwa pytanka, odstęp miedzy anodami masz 2,5 cm? I pisałeś coś że wprowadziłeś modyfikacje do programu, co w nim zmieniłeś, zauważyłem że masz szybsze taktowanie.
  • #26
    Dawid523
    Poziom 14  
    A no tak, bo część punktów TP to rzeczywiście przelotki, zapomniałem o tym. Przelotki to te punkty które układają się w "choinkę" przed każdym z układów, widać na zdjęciach ;)

    Odstęp to ok 2,5cm, z programu usunąłem niektóre animacje, a niektóre przerobiłem, na filmach jest oryginalny program.
    Kwarc dałem 16Mhz, będzie działać bez najmniejszego problemu.

    Uzasadnieniem zastosowania kwarcu 14.7456Mhz jest komunikacja z komputerem przez rs'a, a ściślej:

    Cytat:
    We use an external crystal of 14.7456 MHz to drive the ATmega system clock.
    You may be thinking that this is an odd number to use, and why we didn't run the ATmega at the 16MHz it is rated for.

    We want to be able to control the LED cube from a computer, using RS232. Serial communication requires precise timing. If the timing is off, only by a little bit, some bits
    are going to be missed or counted double from time to time.

    We won't be running any error correcting algorithms on the serial communications, so any error over the line
    would be represented in the LED cube as a voxel being on or off in the wrong place.

    To get flawless serial communication, you have to use a clock frequency that can be divided by the serial frequency you want to use.
    14.7456 MHz is dividable by all the popular RS232 baud rates.

    (14.7456MHz*1000*1000) / 9600 baud = 1536.0
    (14.7456MHz*1000*1000) / 19200 baud = 768.0
    (14.7456MHz*1000*1000) / 38400 baud = 384.0
    (14.7456MHz*1000*1000) / 115200 baud = 128.0

    The formula inside the parentheses converts from MHz to Hz. First *1000 gives you KHz, the next Hz.
    As you can see all of these RS232 baud rates can be cleanly divided by our clock rate. Serial communication will be error free!


    Akurat ja nie zamierzam wykorzystywać rs'a, aczkolwiek miejsce na płytce jest ;]
    Co więcej nie wiadomo jak z dostępnością takiego kwarcu.
  • #27
    Longer1989
    Poziom 24  
    Kwarc dostępny jest bez problemu:)
    Sorry za serie pytań, ale teraz już naprawdę ostatnie. Czy używałeś jakiegoś specjalnego lakieru do PCB? Jak zabezpieczyłeś piny z podstawek precyzyjnych przed polakierowaniem? I chyba wkradł się mały błąd, użyłeś atmegi32, a napisaleś w tytule że 16:)
  • #28
    Dawid523
    Poziom 14  
    Spoko, spoko ;) Lakier zwykły bezbarwny w sprayu, podstawki zabezpieczyłem w ten sposób że na czas malowania powkładałem kawałki cienkiego drutu, a na przyciski nakleiłem kawałki izolacji, tak samo jak na pady pod przewody.

    Użyty procesor to Atmega16, widocznie w eaglu nie było 16-stki, jednak nie różnią się one jakoś bardzo (odsyłam do dokumentacji :P), a mechanicznie są zgodne w 100%.
  • #29
    Longer1989
    Poziom 24  
    Więcej pytań nie mam:) Po niedzieli sie zabieram za robotę. Bo sześcian już z miesiąc stoi może w końcu zacznie działać tak jak ma działać:) Czyli program wrzucam z paczki "cube8.rar" i ma działac bez żadnego zmieniania tak?
  • #30
    Dawid523
    Poziom 14  
    Tak, a Fuse bity są zapisane w pliku txt 8-)