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

Zasilacz do modułów audio

Numer: Maj/2017

Moduł jest zgodnym mechanicznie zasilaczem dla modułów "domowego" studia.

"Paluszkowy" zasilacz LED 1 W

Numer: Maj/2017

W artykule przedstawiono bateryjny zasilacz białej LED o mocy 1 W wymagający do pracy tylko jednej baterii AA.

Generator 3,686 MHz z modulacją AM sygnałem 1 kHz

Numer: Maj/2017

Generator wytwarza przebieg o częstotliwości 3,686 MHz z modulacją AM sygnałem sinusoidalnym 1 kHz. Generatora można użyć do strojenia odbiorników na pasmo amatorskie 80 m metodą "na najsilniejszy sygnał". Może też przydać się przy budowie wzmacniaczy liniowych mocy na pasmo 80 m.

Soft start do silników DC

Numer: Kwiecień/2017

Moduł łagodnego startu może służyć nie tylko do obsługi silników, równie dobrze sprawdzi się przy współpracy z żarówkami, taśmami LED lub innymi odbiornikami zasilanymi napięciem 12...24 V DC o maksymalnym prądzie 10 A, którym nie służą udary prądowe powstające w momencie włączania napięcia zasilania.

Izolator USB z LTM2284

Numer: Kwiecień/2017

Świat składa się z większych lub mniejszych "klocków", z których natura w sposób jeszcze nie do końca poznany buduje nasze otoczenie. ?Klocki? takie w formie gotowych modułów funkcjonalnych pojawiają się także w elektronice, rozwiązując nietrywialne problemy współczesnych konstruktorów.

Mobilna
Elektronika
Praktyczna

Elektronika Praktyczna

Wrzesień 2018

PrenumerataePrenumerataKup w kiosku wysyłkowym

Elektronika Praktyczna Plus

lipiec - grudzień 2012

Kup w kiosku wysyłkowym