wersja mobilna | kontakt z nami

RaspbPI_PLUS_GPIO Moduł rozszerzeń GPIO Pi B+

Numer: Czerwiec/2015

Opisywany projekt modułu rozszerzeń umożliwia zastosowanie Raspberry Pi+ w aplikacjach kontrolnych i sterujących, zapewniając dostęp do wszystkich sygnałów GPIO dostępnych w nowej wersji.

Pobierz PDFMateriały dodatkowe

Rysunek 1. Schemat ideowy modułu GPIO dla Raspberry Pi+

Schemat ideowy modułu pokazano na rysunku 1. Wśród jego parametrów można wymienić następujące funkcjonalności:

  • 14×GPIO o poziomie logicznym CMOS 3,3 V.
  • 8×GPIO z konwerterem poziomów do standardu CMOS 5 V.
  • Złącza UART, I²C.
  • Zegar czasu rzeczywistego z podtrzymaniem bateryjnym DS1338.
  • 4×wejście analogowe z 12-bitową rozdzielczością.
  • Złącze dla modułów komunikacyjnych zgodnych pod względem wyprowadzeń z Xbee.
  • Zasilacz impulsowy 3,3 V dla modułów Xbee.

Wszystkie złącza zgodne są ze standardem Arduino Bricks, co umożliwia bezpośrednie wykorzystanie szerokiej gamy czujników, przetworników i elementów wykonawczych.

Sygnały w standardzie 3,3 V ze złącza GPIO są doprowadzone do złącza DIO i razem ze złączami V33 i GND stanowią blok zgodny z Arduino Bricks 3,3 V. Złącze DIO ma powielone zasilanie na wyprowadzeniach 15 i 16 ułatwiając wyprowadzenie sygnałów wraz z zasilaniem taśmą SIP16. Taka konwencja jest zastosowana do wszystkich złącz GPIO.

Rysunek 2. Schemat montażowy modułu GPIO dla Raspberry Pi+

Sygnały z magistral szeregowych w standardzie 3,3 V mają odrębne złącza nazwane UART i I²C. Układ U4 pełni funkcję konwertera poziomów 3,3 V/5 V ułatwiając bezpośrednie wykorzystanie części wyprowadzeń GPIO do przyłączenia sygnałów 5-woltowych. Na płytce zamontowano również układ scalony zegara czasu rzeczywistego DS1338 (kompatybilny z DS1307) z podtrzymaniem bateryjnym, niezbędny w aplikacjach sterujących.

Ze względu na brak wejść analogowych w Raspberry Pi, kolejnym elementem modułu jest 4-wejściowy 12-bitowy przetwornik A/C typu ADS1015. Obwód C2,3, L1 filtruje zasilanie przetwornika. Sygnały wejściowe doprowadzone są do złącza AI, zakres napięcia wejściowego w konfiguracji asymetrycznej to 0...3,3 V.

Ostatnim elementem modułu jest złącze dla modułów komunikacyjnych zgodnych z Xbee. Ze względu na zróżnicowane wymagania odnośnie do standardów komunikacji szeregowej, w porównaniu do modułu komunikacji RaspbPI_Com dla Raspberry Pi A/B, zrezygnowałem z umieszczania wszystkich układów interfejsów na płytce modułu.

Zawsze okazuje się, że część jest niewykorzystana lub co gorsza - jakiegoś standardu brakuje. W kolejnym artykule zostanie kilka typów modułów zgodnych z Xbee, umożliwiających różne sposoby komunikacji szeregowej. Taki podział umożliwia wykorzystanie ich także do współpracy z PC, Launchpadem, Arduino i wszystkimi platformami prototypowymi mającymi złącze lub moduł rozszerzający Xbee.

Rysunek 3. Zaktualizowana lista GPIO

Oprócz sygnałów UART, do wyprowadzeń Xbee jest doprowadzony przycisk RES (reset) oraz dioda LD1 sygnalizująca poziom sygnału odbieranego RSSI (dla modułów radiowych). Ze względu na spory pobierany przez Xbee prąd, zastosowałem odrębny zasilacz 3,3 V z układem ADP2108.

Rozmieszczenie elementów na płytce drukowanej pokazano na rysunku 2. Jest ona zgodna mechanicznie z Raspberry B+, aby umożliwić wykorzystanie złącz wyświetlacza i kamery. Stabilność mechaniczną zapewniają cztery otwory mocujące. Montaż nie wymaga komentarza.

Aby uniknąć pomyłek, obszar z sygnałami zgodnymi z 5 V jest wyróżniony soldermaską. Należy pamiętać, że podłączenie sygnałów przekraczających 3,3V do pozostałych wyprowadzeń GPIO Raspberry Pi nieodwracalnie je uszkodzi. Ze względu na współdzielenie sygnałów interfejsu szeregowego UART i I²S przez moduł Xbee, złącza UART oraz I²C, należy zwrócić uwagę, aby nie wykorzystywać ich równocześnie.

Moduł nie wymaga uruchamiania. Należy jedynie skonfigurować system do obsługi poszczególnych peryferiów. W celu wykorzystania RTC konieczne jest dodanie obsługi magistrali I²C. W tym celu sprawdzamy czy w pliku sudo nano /etc/modules znajduje się definicja i2c-dev. Jeżeli nie, to musimy ją dodać, zapisać zmiany i zrestartować PI. Po uruchomieniu należy pobrać narzędzia odpowiadające za obsługę I²C:
sudo apt-get install python-smbus
sudo apt-get install i2c-tools

Po zainstalowaniu, w pierwszej kolejności sprawdzamy w konsoli prawidłowe działanie I²C sudo i2cdetect -y 1. Pod adresem 0x68 powinno pojawić się urządzenie - DS1307, (pod adresem 0x48 jest widoczny ADS1015). Następnie ładujemy moduł zegara:
sudo modprobe rtc-ds1307
sudo bash echo ds1307 0x68 > /sys/class/i2c-adapter/i2c-1/new_device

Rysunek 4. Odczyt z przetwornika ADS1015

Ustawienia czasu i daty systemowej dokonujemy poleceniem sudo date. Zapis czasu systemowego do RTC wykonujemy poleceniem sudo hwclock -w. Sprawdzenie poprawności zapisu sudo hwclock -r. Aby czas systemowy po uruchomieniu PI był automatycznie aktualizowany przez RTC, musimy w pliku sudo nano /etc/modules dodać linię rtc-ds1307, a w pliku sudo nano /etc/rc.local linie:
echo ds1307 0x68 > /sys/class/i2c-adapter/i2c-1/new_device
sudo hwclock -s

przed poleceniem exit 0. Przy kolejnym uruchomieniu PI, czas zostanie pobrany z RTC bez synchronizacji z zegarem sieciowym. Dla sprawdzenia gpio można wykorzystać WebIOPI. W tym celu należy pobrać i zainstalować https://code.google.com/p/webiopi/wiki/DOWNLOADS. Wersja 0.7.0 nie ma obsługi rozszerzonego GPIO, więc należy wykonać pewne modyfikacje plików źródłowych. W pliku ./python/utils/version.py file należy edytować linię 11 i dopisać do niej wartości pogrubione: _MAPPING[2] = ["V33", "V50", 2, "V50", 3, "GND", 4, 14, "GND", 15, 17, 18, 27, "GND", 22, 23, "V33", 24, 10, "GND", 9, 25, 11, 8, "GND", 7, "DNC", "DNC" , 5, "GND", 6, 12, 13, "GND", 19, 16, 26, 20, "GND", 21] oraz edytować plik ./htdocs/webiopi.js. Trzeba w nim odszukać:
linię 76 zawierającą this.PINS = Array(27); i zamienić ją na this.PINS = Array(41);
linię 560 zawierającą for (var pin=1; pin<=26; pin++) i zamienić ją na for (var pin=1; pin<=40; pin++).

Następnie należy skompilować zmiany poleceniem sudo ./setup.sh skip-apt. Po kompilacji skonfigurować Webiopi do obsługi przetwornika ADS1015. W tym celu, w pliku /etc/webiopi/config w sekcji przetworników ADC dodać wpis ads0=ADS1015 zapisać zmiany i uruchomić serwer Webioipi sudo /etc/init.d/webiopi start. Po uruchomieniu przeglądarki internetowej i wpisaniu adresu http://localhost:8000/ (użytkownik: webiopi, hasło: raspberry) w linku GPIO-header powinna być widoczna zaktualizowana lista GPIO (rysunek 3). Po wybraniu linku Device Monitor, powinny być widoczne odczyty z wejść ADS1015, jak na rysunku 4.

Opis modułów komunikacyjnych zostanie umieszczony w kolejnym artykule.

Adam Tatuś, EP

Pozostałe artykuły

Animowana choinka LED 3D

Numer: Grudzień/2017

Aby uatrakcyjnić wystrój pokoju dziecka lub biurka w pracy proponujemy czytelnikom EP wykonanie animowanej, trójwymiarowej choinki złożonej z LED. Można jej również użyć w charakterze dekoracji witryny sklepowej, interesującego gadżetu, który będzie przyciągał uwagę.

Wzmacniacz mocy audio klasy D o mocy 100 W

Numer: Grudzień/2017

Texas Instruments systematycznie rozwija rodzinę układów wzmacniaczy mocy audio opartych o technologię cyfrową. W artykule przedstawiono układ monofonicznej końcówki o mocy znamionowej 100 W przy obciążeniu z zakresu 4...8 V opartej o najnowszy TPA3255.

Animowana bombka LED 3D

Numer: Grudzień/2017

Proponujemy czytelnikom Elektroniki Praktycznej wykonanie animowanej, trójwymiarowej bombki, złożonej z diod LED. Ma ona estetyczną, przestrzenną formę, co prezentuje fotografia tytułowa. Z pewnością taka ozdoba spodoba się każdemu dziecku w każdym wieku.

Ładowarka akumulatorów NiMH

Numer: Grudzień/2017

Ładowarka może być zasilana ze złącza USB komputera PC lub z zasilacza z takim gniazdem. Jest ona przeznaczona do ładowania akumulatorów NiMH o napięciu znamionowym 1,2 V, odpowiedników popularnych paluszków. Sposób zasilania oraz miniaturowe wymiary sprawiają, że idealnie nadaje się do ładowania akumulatorów zasilających popularne akcesoria komputerowe.

Monitor mocy prądu stałego (32 V/2 A) z alarmem

Numer: Styczeń/2018

Uniwersalny układ przetwornika moc/napięcie o szerokim zakresie mierzonej mocy, ustalanym doborem kilku elementów zewnętrznych. Wynik pomiaru jest przetwarzany na napięcie stałe, które może być mierzone za pomocą przetwornika A/C lub miernika wychyłowego. Monitor ma wbudowany komparator o progu zadziałania ustalanym potencjometrem wieloobrotowym, którego można użyć do sygnalizowania przeciążenia.

Mobilna
Elektronika
Praktyczna

Elektronika Praktyczna

Luty 2019

PrenumerataePrenumerataKup w kiosku wysyłkowym

Elektronika Praktyczna Plus

lipiec - grudzień 2012

Kup w kiosku wysyłkowym