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

Generator przebiegu prostokątnego

Numer: Kwiecień/2016

Niewielki, programowany generator przebiegu prostokątnego, niezbędny w laboratorium elektronika. Wykonano go w oparciu o układ CPLD typu XC9572.

Interfejs Ethernet dla Raspbery PI Zero

Numer: Kwiecień/2016

Nowy model Pi da się polubić, ale brak interfejsu Ethernet jest dokuczliwy, ponieważ jest to oczywiste okno na świat dla mikrokomputerów. Naturalnie, że można użyć karty Wi-Fi z USB, ale port USB jest tylko jeden...

Nadajnik/odbiornik różnicowy dla transmisji cyfrowej

Numer: Kwiecień/2016

Transmisja różnicowa sygnałów cyfrowych - pomimo komplikacji układu nadajnika/ odbiornika - ma sporo zalet. Są to między innymi.: odporność na zaburzenia oraz duży zasięg. Najbardziej rozpowszechnionym interfejsem wykorzystującym transmisję różnicową jest stosowany w technice AV interfejs HDMI.

Balanser do pakietów akumulatorów Li-Po

Numer: Marzec/2016

Układ balansera, niezbędny do prawidłowego ładowania szeregowych pakietów akumulatorów, przez co jest wydłużany czas ich eksploatacji i zapewniana maksymalna wydajność.

Przetwornica podwyższająca napięcie

Numer: Marzec/2016

Miniaturowa przetwornica podwyższająca do 5 V/1,5 A, ułatwiająca zasilanie "prądożernych" układów np. Raspberry PI, BeagleBone z zestawu ogniw 3×LR6 lub akumulatora Li-Po.

Mobilna
Elektronika
Praktyczna

Elektronika Praktyczna

Kwiecień 2017

PrenumerataePrenumerataKup w kiosku wysyłkowym

Elektronika Praktyczna Plus

lipiec - grudzień 2012

Kup w kiosku wysyłkowym