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

Płytka rozszerzeń do Raspberry Pi

pawelp11 17 Wrz 2013 14:42 16752 31
  • Płytka rozszerzeń do Raspberry Pi
    W internecie można znaleźć wiele płytek rozszerzeń dla komputerka Raspberry PI.
    Postanowiłem zrobić płytkę rozszerzeń spełniającą moje oczekiwania. Na tej płytce rozszerzeń nazwanej w dalszej części tekstu "frontpanelem" umieściłem następujące układy:
    - wyświetlacz LCD dołączony do szyny równoległej GPIO
    - sterownik LED RGB PCA9633 dołączony poprzez szynę I2C do podświtlania wyświetlacza LCD
    - ekspander I2C -> parallel do klawiatury MCP23008 sterowany przez I2C
    - czujnik temperatury i wilgotności SHT21 - szyna I2C
    - zegar RTC PCF8563 sterowany poprzez I2C
    - pamięć EEPROM 24C02 dołączona do I2C
    - odbiornik podczerwieni TSOP4836 dołączony do portu GPIO
    - buzzer sygnalizacyjny dołączony do portu GPIO
    - moduł komunikacyjny BlueTooth dołączony do interfejsu UART
    - przyciski dołączone do ekspanera I2C
    Płytka zawiera tylko układy peryferyjne więc całe oprogramowanie i sterowanie pochodzi z Raspberry Pi.

    Schemat i płytka
    Schemat blokowy frontpanelu został przedstawiony na poniższym rysunku:

    Płytka rozszerzeń do Raspberry Pi

    W załączniku publikuję schemat ideowy płytki.

    Na poniższym rysunku przedstawiam projekt płytki drukowanej:

    Płytka rozszerzeń do Raspberry Pi

    Płytka rozszerzeń do Raspberry Pi

    A tu fotki wykonanej i uruchomionej płytki.

    Płytka rozszerzeń do Raspberry Pi Płytka rozszerzeń do Raspberry Pi Płytka rozszerzeń do Raspberry Pi

    Program do obsługi I2C i wyświetlacza napisany w C. Ale software to już całkiem inna i całkiem obszerna historia.
    Płyteczka idealna (tak mi się wydaje) do budowy np radia internetowego ponieważ są przyciski, wyświetlacz, odbiornik podczerwieni.
    Jeżeli będzie zainteresowanie to dorzucę kod prostej aplikacji działającej na Raspberrym.


    Fajne! Ranking DIY
    Potrafisz napisać podobny artykuł? Wyślij do mnie a otrzymasz pendrive 32GB.
  • Mitronik
  • #2 17 Wrz 2013 17:05
    vwpassat
    Poziom 14  

    Albo mi się tylko wydaje albo tak jest na prawdę że nakładają się teksty na wyświetlaczu.

  • #3 17 Wrz 2013 17:45
    krru
    Poziom 32  

    Pewnie napisy są scrollowane, a czas naświetlania zdjęcia jest długi.

  • #4 17 Wrz 2013 20:53
    pawelp11
    Poziom 10  

    krru ma rację. Napis był przewijany a fotka była robiona bez lampy więc czas naświetlania był długi.

  • Mitronik
  • #5 17 Wrz 2013 22:58
    Overclocker
    Poziom 13  

    Gdzie robiłeś płytkę, i jaki był koszt? z tego co widzę całkiem ładnie wyszła.

  • #6 17 Wrz 2013 23:38
    pawelp11
    Poziom 10  

    Płytkę drukowaną robiłem w Gdańsku w Satlandzie. Koszt to ok 60 zł. Płytka dwustronna z metalizacją, soldermaską ale bez opisów. Koszty pozostałych elementów to poza SHT21 i modułem BlueTooth nie są duże.

  • #7 18 Wrz 2013 00:15
    narasta
    Poziom 21  

    Widzę, że coraz więcej ludzi kożysta z rPI :) Niestety muszę się przyczepić do EMC płytki bo raczej dalekiojej do jakiejkolwiek kompatybilności. Wygląda fajnie, ale tylko z wizualnej strony bo wykonałeś ja w płytkarni.

    Czy na tej płytce masz baterię do RTCka? Po co on w ogóle jest. Rozumiem, że da się wyciągnąć czas z rPI?

    EEprom? Po co skoro da się zapisywać cokolwiek w rPI?

    Podobają mi się kolorowe przyciski w moim ulubionym kolorze. :)

    __________________________________________________

    Przepraszam za offtop, ale muszę to napisać:

    Płytki z Satlandu są generalnie tragiczne... Zlecaliśmy ostatnio wykonanie serii różnych płytek. Nie są w stanie zrobić otworów 0,3mm... Gdy już zrobili to otwory były na granicy pierścienia przelotki. Soldermaska zdziera się byle narzędziem. Marudzą, że ścieżki po 0,2mm i odległość do poligonów 0,2mm.

    Dla porównania Unidruk ok - nie mam zastrzeżeń - dokładni i cena sensowna.

    Innym razem Printor - całkiem ładne płytki. Cena w miarę - mają termin ekspres 5 dni - to skłoniło mnie do wyboru i się nie zawiodłem. Drugim razem płytki także były ok. Raz tylko dołożyli mi roboty bo po złożeniu prototypu 2 godziny straciłem na znalezienie niedotrawionego niemal niewidocznego włoska pomiędzy ścieżką a poligonem.

    eve sp zoo - tragedia. Zamawia się jedno a otrzymuje co innego. Najpierw zapewniają, że specjalizują się w danym temacie a okazuje się to dalekie od prawdy,

    Unidruk jest najtańszy w tym zestawieniu - stosunek cena/jakość moim zdaniem najlepszy.

  • #8 18 Wrz 2013 01:33
    Karol966
    Poziom 30  

    narasta napisał:
    Przepraszam za offtop

    Satland schodzi na psy. Osobiście na 99% nie zamówię więcej u nich płytek. Zawiedli mnie więcej niż 3 razy w ostatnim czasie.
    Unidruk - tam można robić masowo płytki, tylko te prototypu wychodzą drogo przez przygotowanie. Obsługa super.

  • #9 18 Wrz 2013 08:54
    michalko12
    Specjalista - Mikrokontrolery

    Co rzuca się w oczy to 6 LED podłączonych do jednego pinu PCA9633. Przy obecnej konfiguracji diody pobierają około 36mA, a możliwości pojedynczego pinu to 25mA. Sugerowałbym użycie rezystorów 510R, żeby zejść z prądem do akceptowalnego poziomu.
    Myślę, że jasność LED nie wiele się zmieni.
    Druga sprawa to ten EEPROM. Jak ktoś już wspomniał mało sensowna opcja, ale użycie w to miejsce pamięci FRAM może już jakieś korzyści przynieść.

  • #10 18 Wrz 2013 08:54
    PiotrPitucha
    Poziom 33  

    Witam
    Brawo brawo brawo !!
    Brak mi kilku rzeczy by mieć płytkę wszystkomającą :)
    - zasilania RTC lub conajmniej mały supercap
    - 1Wire a jeszcze lepiej expander 8 kanałowy 1Wire
    - można wymienić expander 8 kanałowy na 16 kanałowy
    Uff chyba to wszystko, może jeszcze marzy mi się żeby ktoś zrobił tyle płytek by można je odkupić za max 20zł, AVT wzięło się za dość uniwersalne ale nie tak zaawansowane konstrukcje i chwała im za to bo można kupić płytki interfejsów do RPi za kilka złotych.
    Co do expandera 1Wire to po własnych doświadczeniach uważam go za konieczny ze względu na (jak myślę) błędy w bibliotekach które nie pozwalają na zasilanie czujników w trybie parasite power oraz na bezpieczeństwo RPi.
    Pozdrawiam Piotr

  • #11 18 Wrz 2013 09:58
    pawelp11
    Poziom 10  

    Czyli jednak nie jest to jednak "wszystkomająca" płytka :-(

    W projekcie jest goldpin PP2 o oznaczeniu battery i tam miało być podłączone zasilanie RTC. O supercapie nie pomyślałem. Ale płytka ma cel wyłącznie dydaktyczny.

    1wire nie zrobiłem ponieważ nie korzystałem z tego interfejsu. Kiedyś w jednym z projektów korzystałem z DS2438 ale jakoś nie przypadło mi to do gustu. Jednak faktycznie warto pomyśleć o tym ekspanderze na 1wire bo dallasy są dość popularne.

    Wielkie dzięki za wnikliwe obejrzenie schematu i zwrócenie uwagi na przekroczony prąd w PCA9633.

    Pamięć EEPROM jest w podstawce (jedyny na płytce DIL) więc można tam włożyć jakąś inną. Faktem jest, że wszystko można zapisać na karcie pamięci...

    Odp do narasta: Czas z RPi da się wyciągnąć ale konieczne jest połączenie z internetem w celu pobrania czasu.

  • #12 18 Wrz 2013 16:23
    sylwek_b86

    Poziom 15  

    Jeżeli chodzi o produkcję płytek to polecam MERKAR

  • #13 18 Wrz 2013 16:45
    PiotrPitucha
    Poziom 33  

    Witam
    Pawelp11 będę bronił EEPROMu na płytce, może być też inna pamięć, ale co do zasady jest to często potrzebne, dajemy klientowi płytkę z zapisaną konfiguracją wyświetlacza, numerami czujników 1Wire czy też adresami urządzeń I2C.
    Jeśli klient dostaje cały oprogramowany komplet razem z RPi to nie ma problemu, w innym wypadku jest to dość przydatne.
    DS2438 załatwia problem podpinania czujników po 2 drutach zamiast 3, natomiast jak się zamiast magistrali zaczyna robić choinka to DS2438-800 może nam dać luksus robienia bardziej rozległej sieci na 8 niezależnych wejściach.
    Piotr

  • #14 18 Wrz 2013 20:22
    michalko12
    Specjalista - Mikrokontrolery

    PiotrPitucha napisał:
    DS2438 załatwia problem podpinania czujników po 2 drutach zamiast 3, natomiast jak się zamiast magistrali zaczyna robić choinka to DS2438-800 może nam dać luksus robienia bardziej rozległej sieci na 8 niezależnych wejściach.



    DS2483
    DS2482-x00
    http://para.maximintegrated.com/search.mvp?fam=1wire&tree=master

    To tak dla ścisłości, bo sam chciałem sprawdzić co to jest i na jakiś Smart Battery Monitor trafiałem

  • #16 18 Wrz 2013 22:28
    narasta
    Poziom 21  

    Jestem zawiedziony, że żaden z kolegów nie poruszył tematu EMI, pomimo zwrócenia na to uwagi.

    Z eepromem i zapisem dedykowanej konfiguracji to słuszna uwaga.

    Z ciekawości - czy ten moduł bluetooth ma jakikolwiek zasięg bez zewnętrznej anteny (a w zasadzie dipola)?

  • #17 18 Wrz 2013 23:00
    PiotrPitucha
    Poziom 33  

    Witam
    Zauważyłeś coś szczególnego w kwestii EMI?
    Całość biega na relatywnie wolnym I2C, płytka jest dla mnie mało czytelna przy wyświetlaniu dwu warstw na jednej fotce, ale odnoszę wrażenie że przynajmniej przy znanym mi układzie expandera wszystko jest prowadzone wręcz wzorcowo a całość oblana masą gdzie tylko się da.
    Układ expandera pobiera tak mało prądu że jest bardzo złym emitentem pola.
    Co do BT bez zewnętrznych anten to w całym mieszkaniu mam zasięg BT na USB kupionym gdzieś za grosze i przy wymiarach typowego mieszkania w bloku nie przeszkadzają nawet żelbetowe ściany, zawsze jest jakaś antenka na druku a współczesne technologie pozwalają na wykonanie mniejszych anten niż prosty dipol w powietrzu.
    Pozdrawiam

  • #18 19 Wrz 2013 08:54
    Modecom601
    Poziom 13  

    Czy ktoś z Was zamawiał płytki w Faldruk? Jakie jeszcze polecacie firmy zajmujące się produkcją płytek z przystępną ceną?

  • #20 19 Wrz 2013 09:48
    2091744
    Użytkownik usunął konto  
  • #21 19 Wrz 2013 12:01
    pawelp11
    Poziom 10  

    Fajnie, że zaczęła się dyskusja.
    Ja w dalszym ciągu twierdzę, że płytka ma charakter "edukacyjny" i nie była robiona pod jakieś jedno konkretne zastosowanie. Założeniem było, że ma być interfejsem do komunikacji z użytkownikiem a przy okazji czymś więcej (stąd np. RTC, BlueTooth) i nie być jakimś kłębkiem jakoś podłączonych przewodów gdzie łatwo coś zewrzeć (pająkiem).
    Jak zauważył kaamil1984 wyświetlacz LCD jest zasilany napięciem 5V zaś porty RPi to 3,3V. Po pierwsze sprawdzałem w internecie i wszędzie tak jest zrobione
    a po drugie wyprowadzenie RW wyświetlacza mamy zwarte do masy a więc to RPi wysyła sygnały a wyświetlacz nic nie może nadać więc nie uszkodzi portów wejściowych RPi.
    Sprawa EMI.
    Projektując płytkę nie zwracałem szczególnej uwagi na te zagadnienia. Na pewno daloby się uniknąć wielu niepotrzebnych przelotek i poprowadzić troszkę inaczej ścieżki aby nie szatkować tak masy. Pewnie więcej połączeń pomiędzy masą na stronie górnej i dolnej też by się przydało ale to wymagałoby więcej czasu poświęconego na projektowanie. Temat dość interesujący więc jeżeli ktoś ma coś do powiedzenia to proszę. W załączniku rysunki płytek drukowanych.
    Zastosowany moduł BlueTooth jest klasy 1 więc zasięg jego to 100m - pewnie w otwartej przestrzeni. W pomieszczeniach przez 3-4 ściany spokojnie działa. Jest do niego podłączona antenka AN9520. Cena tego modułu nie jakoś strasznie wysoka. Można go kupić za 52PLN (brutto).
    O podczerwieni i RPi jest w internecie dość dużo już napisane. Ja zainstalowałem lirc-a i doszedłem do momentu, że RPi odbiera i dekoduje rozkazy - wypisuje który przycisk na pilocie był wciśnięty. Mam to opisane ale zanim opublikuję muszę najpierw przeczytać.
    Idąc za namową PiotrPitucha teraz pewnie bym wsadził tam jeszcze DS2482-100 albo DS2482-800 choć z tym drugim byłby problem jak wyprowadzić tyle przewodów - listwa zaciskowa, nawet taka z rastrem 2,54 jest dość duża a płytka jest jaka jest... Ale ten z jedną magistrala 1wire do celów edukacyjnych by wystarczył.
    O komunikacji poprzez SPI też myślałem ale do każdego układu trzeba by jakiegoś CS-a. A tych GPIO to nie za wiele, tym bardziej, że część mi poszła do LCD. Można by CS-y podpiąć do ekspandera i podciągnąć rezystorami do plusa na wypadek stanów nieustalonych przed inicjalizacją ekspandera ...

  • #22 19 Wrz 2013 13:17
    2091744
    Użytkownik usunął konto  
  • #23 19 Wrz 2013 13:38
    pawelp11
    Poziom 10  

    No tak ale ja tam nie mam wolnych trzech linii. Jeżeli bym zrezygnował z I2C na rzecz SPI (które nawiasem mówiąc wyprowadziłem na złącze) to miałbym dwie wolne linie GPIO czyli do czterech urządzeń.

    Miałem pogratulować Piotrowi jego pomysłu na "PP Interface do Raspberry Pi". Że też mu się chciało tak powycinać tą płytkę. Ja też kombinowałem z montażem "kanapkowym" tych płytek i dlatego płytka ma złącze w tym miejscu. Ale podłączyłem taśmą.

  • #24 19 Wrz 2013 14:06
    2091744
    Użytkownik usunął konto  
  • #25 19 Wrz 2013 14:15
    pawelp11
    Poziom 10  

    Coś tam mam w postaci złącza P5 :-) - bez goldpinów.

  • #26 19 Wrz 2013 14:16
    2091744
    Użytkownik usunął konto  
  • #27 19 Wrz 2013 15:28
    PiotrPitucha
    Poziom 33  

    Witam
    Dziękuję za uznanie za mój interface :) jeden pracuje w monitoringu temperatury a reszta czeka na półce na lepsze czasy.
    Co do wyboru I2C lub SPI to kwestia gustu, w podstawowych zastosowaniach prędkość I2C nie boli, jeśli mamy więcej urządzeń I2C to sensowne jest stosowanie tego interface, przy większych wymaganiach stosowanie SPI daje 10 razy szybszą transmisję co z pewnością jest zaletą.
    CS wcale w mojej płytce nie stosowałem, expander jest włączony cały czas, wywoływanie go po adresie jest wystarczające, w moim przypadku expander jest 16 wyjściowy, do tego 8 różnych adresów daje 128 wejść/wyjść co jest z praktycznego punktu wartością nieograniczoną, jak komuś mało to może zrobić taki sam manewr na I2C i ilość możliwości rośnie do 256 :)
    Co do wyświetlacza to jest pewna możliwość sterowania 5V wersji z wyjść 3,3V poprzez konwerter na 2 opornikach i jednym Mosfecie, taka konstrukcja jest namiętnie stosowana w komercyjnych interfejsach do RPi przed expanderami, czyli na liniach I2C czy SPI, w ten sposób cztery oporniki + dwa Mosfety załatwiają konwersję dla wszystkich portów expanderów.
    Co do wycinania mojej płytki to musiała być kanapka i inaczej się nie dało, teraz mam dłuższe złącza i nie jest problemem by spozycjonować płytkę na takiej wysokości by płytka była nad gniazdami RPi.
    Zaświtał mi nawet pomysł by do jednego złącza przylutować dwie płytki :) , będzie to z natury nienaprawialne ale przy małych płytkach i niskich elementach może być świetnym rozwiązaniem.
    Piotr

  • #28 19 Wrz 2013 20:04
    drzasiek
    Specjalista - Mikrokontrolery

    A ja zapytam trochę z innej beczki.
    W czym piszesz soft na rassbianie?
    Korzystasz z jakiegoś IDE czy Edytor (jeśli tak to jaki) i terminal?

  • #29 19 Wrz 2013 22:26
    PiotrPitucha
    Poziom 33  

    Witam
    Jestem głównie sprzętowcem a jak muszę coś zrobić to Python, szukam właśnie jakiejś dobrej książki do nauki, w końcu trzeba się za to zabrać poważnie.
    Jak trafię na jakiś dobry materiał to się podzielę wrażeniami.
    Na razie upolowałem "Zanurkuj w Pythonie" ale to okropnie gruba biblia i chyba prościej zacząć na małych angielskojęzycznych manualach. Większość projektów jakie znalazłem jest ilustrowana programami w Pythonie, nieliczne w C.
    Jak znajdę ciekawe materiały to wystawię tu linki do nich.
    Piotr