11
18

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Raspberry Pi 3 で超音波距離センサを使ってみる

Last updated at Posted at 2016-08-26

前回の「Intel Edisonで超音波距離センサを使ってみる」では
「GROVE - 超音波距離センサ」が使えなかったので、今回は Raspberry Pi 3 で試してみます。

DSC_0039.jpg

GrovePi+ 取り付け

Raspberry Pi 3 に対応しているって書いていないけど、GrovePi+ を取り付けてみます。

DSC_0054.jpg

GrovePi+の裏側は、USBポートに触れる部分に絶縁テープを貼りました。
DSC_0056.jpg

合体!
DSC_0057.jpg

GrovePi の設定

まずは、もろもろ最新に。

$ sudo apt-get update
$ sudo apt-get upgrade

GrovePi ソフトウェアをインストール

公式サイト通りにソフトウェアを取得してインストールする。

$ cd /home/pi/Desktop
$ sudo git clone https://github.com/DexterInd/GrovePi.git

$ cd GrovePi/Script/
$ sudo chmod +x install.sh
$ sudo ./install.sh

インストールが終わると勝手に reboot する。

ファームウェアの Update

ファームウェアを Update しろと公式サイトに書いてあるので、続けて実施します。
まずは、Update 前にバージョンを確認。

$ python grove_firmware_version_check.py
GrovePi has firmware version: 255.255.255

なんか変な値になっている。

ファームウェアを Update する。

$ cd /home/pi/Desktop/GrovePi/Firmware
$ sudo chmod +x firmware_update.sh
$ sudo ./firmware_update.sh

正常に終わったら、ファームウェアのバージョンを確認する。

$ cd /home/pi/Desktop/GrovePi/Software/Python/
$ python grove_firmware_version_check.py
GrovePi has firmware version: 1.2.2

バージョン 1.2.2 になったけど、これでいいのかな?

GrovePi+ の確認

公式サイトにしたがって Raspberry Pi が GrovePi を検出できることを確認する。

$ sudo i2cdetect -y 1

i2cdetect.png
これで検出できているらしい。

Lチカでも確認する。(Python スクリプトがインストールされていました。)

$ cd /home/pi/Desktop/GrovePi/Software/Python
$ python grove_led_blink.py

OFFから
DSC_0063.jpg
ON!!!
DSC_0062.jpg

上手くいったみたい。
超音波距離センサ用の Python スクリプトもあったので確認する。

DSC_0064.jpg

$ python grove_ultrasonic.py

ultrasonic_python.png
いい感じですね。

Python だったら超簡単!!!

Node.js でもやってみる

前回の「Intel Edisonで超音波距離センサを使ってみる」は Node.js でやったので、
Raspberry Pi 3 でも Node.js でやってみます。

Node.js をインストール

# Node.js のバージョン確認
$ node -v
v0.10.29

# 古いのでバージョンアップする
# まずは削除
$ sudo apt-get --purge remove nodejs

# nodebrew をインストールする
$ curl -L git.io/nodebrew | perl - setup

# nodebrew を PATH に通す
$ vi ~/.bashrc
# この行を追加
export PATH=$HOME/.nodebrew/current/bin:$PATH

# PATH を追加したので
$ source ~/.bashrc

# Node.js の安定版をインストール
$ nodebrew install-binary stable

# インストールされているバージョンを確認
$ nodebrew ls
v6.3.1

# このバージョンを設定
$ nodebrew use stable
use v6.3.1

# Node.js のバージョン確認
$ node -v
v6.3.1
$ npm -v
3.10.3

GrovePi for Node.js

Node.js 用のパッケージをインストールします。

$ mkdir ultrasonic
$ cd ultrasonic
$ npm install node-grovepi

Node.js で確認

コードはこんな感じです。

ultrasonic.js
var GrovePi = require('node-grovepi').GrovePi

var Board = GrovePi.board
var UltrasonicDigitalSensor = GrovePi.sensors.UltrasonicDigital

var board

function start() {
    console.log('starting')

    board = new Board({
        debug: true,
        onError: function(err) {
            console.log('ERROR')
            console.log(err)
        },
        onInit: function(res) {
            if (res) {
                // Ultrasonic Ranger
                var ultrasonicSensor = new UltrasonicDigitalSensor(4)
                ultrasonicSensor.stream(100, function(res) {
                    console.log(res)
                })
            }
            else {
                console.log('TEST CANNOT START')
            }
        }
    })

    board.init()
}

function onExit(err) {
    console.log('ending')
    board.close()
    process.removeAllListeners()
    process.exit()
    if (typeof err != 'undefined') {
        console.log(err)
    }
}

// starts the test
start()
// catches ctrl+c event
process.on('SIGINT', onExit)

ちゃんと取れました!!
ultrasonic_nodejs.png

まとめ

Intel Edison で苦労したことが、Raspberry Pi 3 では簡単にできました。
Raspberry Pi 3 は Pi 2 より高性能になってますし、Wi-Fi や Bluetooth 4.1 も標準搭載されています。
そのせいで消費電力が高くなっているようですが。。。
ただ、扱いやすさや情報量の多さでは Intel Edison より Raspberry Pi 3 のほうがいいなと思いました。
あと、価格も安いしね。

Wi-Fi や Bluetooth 等で簡単にネットワークや他デバイスに接続できるので、
これから色々やってみたいと思います。

11
18
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
18

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?