趣味のログ

自分用の作業ログ。。

RaspberryPi3にnodejsをインストール

nodebrewインストール

まず、nodebrewをインストールする

curl -L git.io/nodebrew | perl - setup

パスを通す

echo 'export PATH=$HOME/.nodebrew/current/bin:$PATH' >> ~/.profile
source ~/.profile

node.jsインストール

インストール可能なバージョンを確認する

nodebrew ls-all

最新のLTSバージョンをインストールする ※2016/05/04現在、v4.4.3が最新

nodebrew install-binary v4.4.3

インストールしたnode.jsを使用できるよう設定

nodebrew use v4.4.3

インストールされたことを確認

node -v

RaspberryPi3にGrovePi+とセンサーを接続し、センサー情報を取得

GrovePi+とは、Groveシステムの各種センサーを簡単に使うための、RaspberryPi用シールド。
Groveシステムのセンサーは100種類以上あり、パーツ屋や、amazon公式から購入できる。

環境構築は、公式のクイックスタートを参考に行った。

ソフトウェアのセットアップ

今回は、既にNOOBSからRasbianをインストール済みのSDカードを利用しているため、下記のセットアップ作業を行う※1。

1. RaspberryPi3の電源を入れ、ターミナルを立ち上げる

2. Desktopディレクトリへ移動し、githubリポジトリをcloneする

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

Desktopディレクトリ配下に、GrovePiディレクトリができる。

3. スクリプトが格納されているディレクトリへ移動する

$ cd /home/pi/Desktop/GrovePi/Script

4. スクリプトパーミッションを修正する

$ sudo chmod +x install.sh

5. スクリプトを実行する
必ず、sudoで実行すること!

$ sudo ./install.sh

途中、アーカイブのダウンロードをしてよいか確認されるので、その際は「y」を押して許可する。
インストールが完了すると、勝手に再起動する。

6. 再起動後、一旦シャットダウンする

$ sudo shutdown -h now

7. GrovePi+本体をRaspberryPi3にマウントし、RaspberryPi3を起動する

8. ターミナルを開き、スクリプトが正常に実行されたか確認する

$ sudo i2cdetect -y 1

「00:」行、「4」列に、「04」の数字が表示されていれば、インストールは正常に完了している。

9. テスト Grove ledをD4ポートにつなぎ、サンプルを実行

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

LEDが点滅すれば成功

以上でセットアップは完了。

※1. ここからソフトウェアセットアップ済みのRasbianが入ったMicroSDカードを購入したり、ここからイメージファイルをダウンロードし、手持ちの空MicroSDカードにインストールする場合は、セットアップ作業は不要。

センサー情報の取得

pythonでコードを書いてセンサー情報を取得する事ができる。
セットアップ後、「/home/pi/Desktop/GrovePi/Software/Python/」ディレクトリにライブラリが配置されるので、これを利用する。
今回は、センサーとして、温湿度センサーを使用。
センサーの使い方は、製造元のwikiを見ると大体書いてあるので参考にするとよい。

#!/usr/bin/env python
import sys
sys.path.append('/home/pi/Desktop/GrovePi/Software/Python/')
import time
import datetime
from grovepi import *
import serial

# 温湿度センサーはD3ポートに差した
ptemperature = 3

# D3ポートをINPUTモードにする
pinMode(ptemperature,"INPUT")

# ライブラリを使えば、簡単に温湿度情報を取得できる
[temperature, humidity] = dht(ptemperature, 1)

print(temperature, humidity)

上のpythonファイルを実行すると、以下のような結果を得られる。

(28.1, 43.5)

他のセンサーも同じ要領で使用できる。
今回はデジタルポートを使うセンサーを使用したが、他のポートを使用するものもある。
ちなみにGrovePi+のポートには、デジタルポート、アナログポート、I2Cポート、RaspberryPiシリアル、GrovePiシリアルがある。

ポート情報は、ここに詳しく書いてある。

Raspberry Pi3 にRasbianインストール~日本語化~タッチパネル接続

RasbperryPi3にOSをインストール、日本語化、7インチ公式タッチディスプレイと接続を行ったのでメモ

インストールはここ、日本語化はここ、ディスプレイの接続はここを参考にした

インストール

インストーラのダウンロード

Rasbianインストールには、インストーラであるNOOBSを使用。 公式から、「NOOBS」を選択し、「Offline and network install」版のZIPファイルをダウンロード。
ダウンロードされた「NOOBS_v###.zip」を解凍しておく

SDカードの準備

SDカードには相性があるため、購入する際は事前に確認した方が良い。 http://elinux.org/RPi_SD_cardsの「Working / Non-working SD cards」の表の中でOKになっているものを準備しておけば大丈夫なはず。
今回、事前に購入していたSDカードではRasbianをうまくインストールできなかったため、SanDiskの32GB「SDSDQUAN-032G-G4A」を別途購入した。

SDカードへインストーラをコピー

まず、SDカードをフォーマットする必要がある。
フォーマットには、公式で推奨されているSDFormatterを使用する。
インストールしたSDFormatterを起動し、

  1. ドライブの選択(Fドライブなど、SDカードを認識しているドライブを選ぶ)
  2. 「Volume label:」を「boot」にする
  3. 「フォーマット」を押してフォーマットを開始する
  4. 「終了」

その後、SDカードを抜き差しして再認識させ、インストーラをコピーする。
先ほどダウンロード・解凍しておいてた、「NOOBS_v###」配下のフォルダ・ファイル全てをSDカードへコピーする。

インストール

NOOBSをコピーしたSDカードをRaspberryPi3に挿入し、電源を入れて起動。
(ディスプレイにはHDMIケーブルで繋げておく。マウスとキーボードもUSBで繋げておく)

しばらく待つと、OSを選択するダイアログが立ち上がる。
※元々用意していたSDカードでは、ここで「Error setting permissions」というメッセージが出て、ダイアログが立ち上がらなかった。

画面下部でlanguageとkeyboadの選択ができるので、「日本語」「ja」を選択しておく。
(こうしておくと、自動的に日本語化されるっぽい?ただし、日本語フォントがインストールされていないため、起動後文字化けが発生する?)
ダイアログでは、「Rasbian」を選び、「Install」を押すとインストールが開始する。

あとはインストールが完了するまで待つだけ。

日本語化

インストール直後は、メニューなどは全て英語になっている。
今回、7インチタッチディスプレイを繋げるため、パッケージのアップデートを行った。

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

また、カーネルファームウェアのアップデートも行っておく。

$ sudo rpi-update

その後再起動すると、メニューが文字化けしてしまう。
そのため、jfbterm(コンソールで日本語を表示するためのソフト)と、日本語フォントのインストールを行い、再起動した。

$ sudo apt-get install jfbterm
$ sudo apt-get install ttf-kochi-gothic xfonts-intl-japanese xfonts-intl-japanese-big xfonts-kaname
$ sudo shutdown -r now(再起動)

再起動後、文字化けは解消している。
タイムゾーンの変更、キーボードの設定は、このタイミングでここを参考にして実施した。

上記で文字化けは解消しているが、日本語入力はまだ出来ない。そのため、日本語入力ソフト(iBus-anthy)をインストールする。

$ sudo apt-get install ibus-anthy

インストールが完了したら、Menu > 設定 > IBusの設定をクリックし、「IBusの設定」ダイアログを立ち上げる。
この時、「IBusデーモンが実行されていません。起動しますか?」という確認ダイアログが出るので、「はい(Y)」を選ぶ。
すると、「IBusは起動されています。IBusが使用できない場合は、次の行を$HOME/.bashrcに追記し、デスクトップにログインし直してみてください。
export GTK_IM_MODULE=ibus export XMODIFIERS=@im=ibus export QT_IM_MODULE=ibus」というダイアログが出るので「OK」を押す。

IBusの設定」ダイアログが起動したら、「入力メソッド」タブを選択し、「追加」をクリック。
日本語を選択し、入力メソッドの選択でAnthyを追加する。(と言いつつ、実際にやってみたら、既に追加されていた。)

タッチパネルをつなげる

まず、RaspberryPi3とディスプレイをDSIリボンケーブルで接続しておく。
あとは電力を供給するだけでOKだが、電力供給には以下の3パターンがある。
1. ディスプレイ、RaspberryPiの両方とも、別々の電源から電力を供給する。 2. 電源からはディスプレイのみにつなぎ、ディスプレイのUSBポートからRaspberryPiに電力を供給する。 3. 電源からはディスプレイのみにつなぎ、GPIOジャンパーからRaspberryPiに電力を供給する。

自分の環境では、1の方法ではディスプレイに表示されなかった(2、3はできた)ので、2のUSB経由で電力供給した。

標準では、ディスプレイ表示の上下が反対(フレームを付けたときに逆になるらしい)になるので、設定で逆向きにできるようだが、自分はフレームを持っていないため、デフォルト向きのままにする。
向きを逆転させたい場合は、ここを参照。
やっぱり逆向きにした。

$ sudo vi /boot/config.txt

次の行を加える(既に同様の行がある場合には設定値を変更)

lcd_rotate=2

ファイルを保存して再起動すると、向きが逆転する。