Использование Raspberry Pi в стиле Arduino



Tedb0t описывает работу с GPIO одноплатного ПК — Raspberry Pi тремя способами: на Python, Bash и C.

Python
Для работы на Питоне используется модуль RPi.GPIO:

import RPi.GPIO as GPIO
GPIO.setup(7, GPIO.OUT)
GPIO.output(7, True)
GPIO.output(7,False)

Bash
под root-ом.

sudo su -

запись:

echo "4" > /sys/class/gpio/export
echo "4" > /sys/class/gpio/export
echo "out" > /sys/class/gpio/gpio4/direction
echo "1" > /sys/class/gpio/gpio4/value
echo "0" > /sys/class/gpio/gpio4/value

чтение:

echo "0" > /sys/class/gpio/export
echo "in" > /sys/class/gpio/gpio0/direction
cat /sys/class/gpio/gpio0/value

C
Для простоты, можно использовать библиотеку, реализующую методы а-ля Arduino — wiringPi.

Установка:

cd /tmp
wget http://project-downloads.drogon.net/files/wiringPi-1.tgz
tar xfz wiringPi-1.tgz
cd wiringPi/wiringPi
make
sudo make install

тестовый blink.c

/*
 * blink.c:
 *      Simple test program to blink an LED on pin 7
 */

#include <wiringPi.h>
#include <stdio.h>

int main (void)
{
  int pin = 7;
  printf("Raspberry Pi wiringPi blink test\n");

  if (wiringPiSetup() == -1)
    exit (1);

  pinMode(pin, OUTPUT);

  for (;;){
    printf("LED On\n");
    digitalWrite(pin, 1);
    delay(250);
    printf("LED Off\n");
    digitalWrite(pin, 0);
    delay(250);
  }

  return 0;
}

остаётся собрать и запустить:

cc -o blink blink.c -L/usr/local/lib -lwiringPi
sudo ./blink

Ссылки
Tutorial: How to use your Raspberry Pi like an Arduino
RPi Low-level peripherals

По теме
Примеры использования GPIO у BeagleBone и Raspberry Pi
Raspberry Pi — начало работы
Raspberry Pi увидел свет!


0 комментариев на «“Использование Raspberry Pi в стиле Arduino”»

Добавить комментарий

Arduino

Что такое Arduino?
Зачем мне Arduino?
Начало работы с Arduino
Для начинающих ардуинщиков
Радиодетали (точка входа для начинающих ардуинщиков)
Первые шаги с Arduino

Разделы

  1. Преимуществ нет, за исключением читабельности: тип bool обычно имеет размер 1 байт, как и uint8_t. Думаю, компилятор в обоих случаях…

  2. Добрый день! Я недавно начал изучать программирование под STM32 и ваши уроки просто бесценны! Хотел узнать зачем использовать переменную типа…

3D-печать AI Android Arduino Bluetooth CraftDuino DIY IDE iRobot Kinect LEGO OpenCV Open Source Python Raspberry Pi RoboCraft ROS swarm ИК автоматизация андроид балансировать бионика версия видео военный датчик дрон интерфейс камера кибервесна манипулятор машинное обучение наше нейронная сеть подводный пылесос работа распознавание робот робототехника светодиод сервомашинка собака управление ходить шаг за шагом шаговый двигатель шилд юмор

OpenCV
Робототехника
Будущее за бионическими роботами?
Нейронная сеть - введение