Работа с GPIO и датчиками на Raspberry Pi
Raspberry Pi имеет GPIO контакты,на которые можно подключать разнообразные устройства,имеется поддержка шины SPI , I2C и 1-wire.
Порядок установки библиотеки для работы с GPIO:
Заходим в консоль вашей Raspberry pi и качаем командой архив:
wget http://www.open.com.au/mikem/bcm2835/bcm2835-1.29.tar.gz
Последнюю версию библиотеки можно скачать на этом сайте.
tar zxvf bcm2835-1.29.tar.gz
Перейдём в директорию, куда эта библиотека развернулась:
cd bcm2835-1.29
И устанавливаем её:
./configure make
sudo make check
sudo make install
После этих действий библиотека для работы с GPIO будет установлена и модуль snd-bcm2835 будет добавлен в файл /etc/modules ,но не загружен в память ! Для загрузки в память воспользуемся командой sudo modprobe snd-bcm2835 или просто перезагрузимся для применения настроек через команду sudo reboot.
На этом этапе с выводами GPIO уже можно производить какие-то простые действия,например чтение состояния порта или включение/выключение нагрузки.
Автозагрузка модулей для работы с 1-wire:
sudo echo "w1-gpio" >>/etc/modules
ИЛИ
sudo echo "w1-gpio pullup=1" >>/etc/modules -если будем подключать датчики DS18B20 по паразитному питанию.
sudo echo "w1_therm" >>/etc/modules
Автозагрузка модулей для работы с I2C:
sudo echo "i2c-bcm2708" >>/etc/modules
sudo echo "i2c-dev" >>/etc/modules
Автозагрузка модулей для работы с SPI:
sudo echo "spi-bcm2708" >>/etc/modules
Для немедленной загрузки модуля ядра без перезагрузки системы можно выполнить команду sudo modprobe <название модуля> .
Для работы от обычного пользователя с i2c можно выполнить команду chmod 666 /dev/i2c-1 и прописать её в файл /etc/init.d/rc.local после строчки do_start() - тогда при загрузке системы права на запись на устройство i2c будут назначатся для всех автоматически.
Установка Wiring Pi
Wiring Pi - это дополнение,позволяющее программировать на Raspberry Pi как на Arduino.
Сайт проекта находится по адресу http://wiringpi.com
Для его установки необходимо скачать библиотеку и распаковать архив.Для установки необходимо запустить скрипт build.
Внутри архива в папке examples имеются примеры использования возможностей библиотеки.
Основной GPIO конектор:
Второй конектор,только для ревизии 2:
В Wiring Pi нумерация портов берется из столбца WiringPi PI .
При использованию напрямую через библиотеку bcm2835 нумерация берется из столбца BCM GPIO.