Для перевірки роботи з портом GPIO я використав тестову плату KAmodLED8. На платі є мікросхема 74LVC541 – восьмиканальний буфер – та вісім світлодіодів. Таке рішення не навантажує портів процесора на платі Raspberry Pi, як це сталося б у разі безпосереднього під'єднання світлодіодів.
Розташування сигналів на роз'ємі P1 комп'ютера Raspberry Pi показано на рисунку.
Рис. Розташування сигналів на роз'ємі P1 версії 2.
Рис. Розташування сигналів на роз'ємі P1 версії 4.
Рис. Вигляд модуля KAmodLED8.
Модуль під'єднано до роз'єму P1 згідно з наведеною нижче схемою.
Рис. Схема з'єднань модуля KAmodLED8 з комп'ютером Raspberry Pi.
Для під'єднання використано провідники зі спеціально підготовленими наконечниками. Вигляд під'єднаного модуля показано на рисунку нижче.
Рис. Вигляд під'єднаного модуля KAmodLED8.
З'єднання виконано так, щоб залишити інтерфейси SPI, I2C та UART для інших застосувань. На рисунку роз'єму це сигнали, позначені синім кольором.
Щоб скористатися портом GPIO, нам знадобиться пакет wiringPi, який з командного рядка дозволяє керувати напрямком і станами окремих виходів GPIO. Отже, треба його завантажити та скомпілювати. Завантажуємо його зі сторінки https://projects.drogon.net/raspberry-pi/wiringpi/ , а потім розпаковуємо у своєму домашньому каталозі.
tar xfz wiringPi.tgz
Слід також встановити бібліотеку підтримки стандарту I2C, бо інакше може виникнути проблема з компіляцією пакета wiringPi. Для цього виконуємо команду:
sudo apt-get install libi2c-dev
Щоб скомпілювати бібліотеку, виконуємо по черзі команди:
cd
wiringPi/wiringPi
make
sudo make install
cd ../gpio
make
Щоб керувати вихідною лінією GPIO, виконуємо команду:
sudo ./gpio -g mode 4 out
де 4 означає номер лінії порту GPIO, а "out" – що налаштовуємо лінію як вихід. Щоб встановити стан 1 на налаштованій лінії GPIO, вводимо:
sudo ./gpio -g write 4 1
де 4 означає номер порту GPIO, а 1 – логічний стан на цьому виході. Іноді виникає потреба зчитати лінію GPIO. Після налаштування її як входу (параметр "in") зчитуємо, виконавши з командного рядка:
sudo ./gpio -g read 4
Порту GPIO вистачає для простих експериментів, але за більшої кількості сигналів потрібна власна плата розширень – така, як описаний нами frontpanel для Raspberry Pi. Такі модулі ми проєктуємо та виготовляємо на замовлення.