2017年6月
        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30  

カテゴリー

ブログパーツ

無料ブログはココログ

« Raspberry pi 2でROS(indigo)を使う(その7) | トップページ | 新しいturtlebotコンパチ機 »

2016年2月14日 (日)

Raspberry pi 2でROS(indigo)を使う(おしまい)

今回はubuntu 14.04でRaspberry Pi 2のGPIOとI2Cを使えるようにします。ROSでLEDランプやモーターなどのアクセサリの制御や、i2c接続のセンサやADコンバータを使ったデータ収集などが出来るようなります。

まずGPIOです。pipでRPi.GPIOをインストールするだけです。

$ sudo pip install RPi.GPIO

写真のようにGPIO11にLEDを接続してLED点滅プログラムでテストします。

Dscn3163

テストに使ったコードはこれです。

#!/usr/bin/env python
import RPi.GPIO as GPIO
import time
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BCM)
GPIO.setup(11, GPIO.OUT)
while True:
    GPIO.output(11, True)
    time.sleep(0.1)
    GPIO.output(11, False)
    time.sleep(0.1)
GPIO.cleanup()

一般的なLチカコードですが、注意するのはGPIO.setmodeです。Raspianで良く見かけるコードはGPIO.setmode(GPIO.BOARD)となっていますが、ubuntuではGPIO.setmode(GPIO.BCM)にしないとダメです。もちろん実行時にはsudoが必要です。


次はI2Cです。
最初に/etc/modulesを開いて編集します。

$ sudo nano /etc/modules

コメントが入っているダケですので、下記2行を追加します。

i2c-bcm2708
i2c-dev

次にi2cの状態チェックなどができるi2c-toolsをインストールします。

$ sudo apt-get install i2c-tools

さらに自分(hanaokacyan)をi2cデバイスにアクセスできるグループに追加します。

$ sudo adduser hanaokacyan i2c

仕上げに、pythonでi2cを使うためのライブラリを下記でインストールします。

$ sudo apt-get install python-smbus

これで準備OK。rebootします。

再ログイン後、手持ちのi2cデバイスがあれば、接続テストをしてみます。特に今使う予定がなければやらなくてもよいです。
写真のようにRaspberry Piにi2cデバイスを接続します。今回は秋月の小型LCDを使いました。(なお、このデバイスを使ったもっと詳しいテスト法はスイッチサイエンスのこのページを見てください)

Dscn3166

下記コマンドでデバイスが見つかるかどうか調べます。i2cグループに入っているのでsudoなしでいけるはずです。

$ i2cdetect -y 1

これは接続されているi2cデバイスのアドレスを表示するものです。このモジュールの場合は下記のように表示されます。

I2c

これはi2cアドレス3eにデバイスがあるということです。これでI/Oの設定もおしまい、めでたくRaspberry Pi 2でROSが使えるようになりました。ROSのテストは改めて投稿します。

« Raspberry pi 2でROS(indigo)を使う(その7) | トップページ | 新しいturtlebotコンパチ機 »

ROSさんお手やわらかに」カテゴリの記事

ラズパイでROS」カテゴリの記事

コメント

コメントを書く

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.f.cocolog-nifty.com/t/trackback/1140145/63953066

この記事へのトラックバック一覧です: Raspberry pi 2でROS(indigo)を使う(おしまい):

« Raspberry pi 2でROS(indigo)を使う(その7) | トップページ | 新しいturtlebotコンパチ機 »