電子工作」カテゴリーアーカイブ

ここに電子工作関係のページを集めます。

Raspberry Pi でボタンを押して tweet する

QR1542

QR1542

GPIO にボタンを接続し、GPIO の値を読んでボタンが押されたら用意しておいたテキストを tweet するシェルスクリプトを作成した。

コードは GitHub にアップしてあります。
https://github.com/e-ark/RPi-HelloWorldSuite/blob/master/button-tw.sh

GPIO を制御をしながら tw を使うときの注意点

tw の設定はホームディレクトリの .tw.yml にあるためGPIO を制御してるときに root になっていると root のホームディレクトリの .tw.yml を探して設定がないためエラーが発生する。

以下のように pi ユーザーで tw を実行すると解決する。

$ sudo -u pi tw –pipe

 

Raspberry Pi のインストールからHelloWorldまでのチュートリアルを公開しました (QR1536)

QR1536

QR1536

Raspberry Pi のインストールから HelloWorld までのチュートリアルを公開しました。

USP MAGAZINE 2013 Spring(2013年3月21日発売)の特集記事「UNIXネイティブの電子工作塾」中の「T君のノート」と同様の記事です。

 

Last update: 3/31/3013 by hohno

 

表紙に写っている液晶表示器の技術的情報が記事中に出てこない件

QR1409

QR1409

編集長経由で伝わって来た読者コメント:

  • 「表紙に写っている液晶表示器に引かれて本誌を手にとったのに、記事中に液晶表示器の具体的な話が出てこない〜」

について、ここにまとめることにします。

表紙に写っている液晶表示器(以下LCD)は、 もちろん実在します。しかし、誌面の制約から今回は言及できませんでした。でも、今後も寄稿することが認められれば(認めてください〜 >>編集長)、次回には真っ先に取り上げる予定でいました。

それまで待てない、とにかく液晶表示器をつなぎたいんだという方は、引き続きお読みください :-)

Raspberry Pi に LCDをつなぐ方法は以下の3つに大別されます。

  • パラレルインタフェースを使う
  • 非同期シリアルインタフェースを使う
  • 同期シリアルインタフェースを使う

以下、これらについて順番にまとめます。

パラレルインタフェースを採用した作例

Adafruit社のサイトに役立つページがあります

今回の寄稿記事の表紙に写っているLCDもこの Adafruit のページと同じ方法で駆動しています。これは、従来からマイコンにLCDをつなぐ際に使われていた方法で、4ビットまたは8ビットのデータ線と3本の制御線を使う方法です。

Adafruit社のページにある作例は、全て Python で書かれており、IPアドレスと時刻を表示するサンプルもあります。

非同期シリアルインタフェースを採用した作例

TTLレベルの非同期シリアル通信を使う方法もあります。

(あとでリンクを貼ります)

 

同期シリアルインタフェースを採用した作例

I2CやSPIのような同期シリアル通信を使う方法があります。

I2C インタフェースを使うのであれば、こんなのがあります。

galileo-7 i2clcd ←まだ試していませんが、ブツはあるので、できるだけ早く試して報告します。安くて早くて簡単かと。

Arduino 用 漢字 LCD シールド ← もともとは arduino用で、電源電圧問題に注意を払う必要があります が (arduino は Vcc=5V, Raspberry Pi は 3.3V)、漢字が表示できる点を魅力に思う人も多いかと。ここまでの記述とリンク先の情報で、「ここまでわかればもう十分。あとは自分でできるぜ」という人のみご活用ください。いずれ購入して詳しい情報を公開したいと思います。

この記事では、これらについて徐々に追記してゆきます。あ、食事の時間だ〜!^^;

 

Last update: 3/23/2013 by hohno

 

さっそくコメントをいただきました。

QR1390

QR1390

発売翌日の 3月22日の夕方、編集長の早耳は早くもいくつかのコメントを聞きつけたようです。今後もコメントや感想をいただけるものと思っております。

現在いただいているコメントや感想は以下の2つです。

  1. 表紙に写っている液晶表示器に引かれて手にとったのに記事中に出てこない〜
  2. AC100Vのオンオフがこんなに簡単にできるとは思わなかった

本日(3/23/2013)現在、次号に続編が継続されるか否か、継続されるとした場合、何ページの寄稿が許されるのかといった正式決定はなされていませんが、続編の寄稿が実現したら、いただいたコメントには積極的に対応してゆきたいと思います(批判的なコメントは常に大歓迎ですが、批判に比べて発信していただきにくい応援コメントやポジティブな感想もお願いしますね!それが連載継続決定の追い風になります ^^; )。

でも、本誌は季刊誌。「3ヶ月先まで待てな〜い」ですよね。

そこで、「中の人1号のブログ的なメモ」として、情報提供を先行したいと思います。

上記1について:

表紙を飾った液晶表示器は、ネタではなく実在します。これについては、以下のブログ的なメモにまとめましたので御覧ください.

表紙に写っている液晶表示器の技術的情報が記事中に出てこない件

 

上記2について:

(しばしお待ちを)

 

(Last update: 3/23/2013 by hohno)

 

Raspberry Pi 対応のディストリビューションたち (QR586)

QR586

QR586

いろいろな OS があるが以下のページに Raspberry Pi 用のディストリビューションがまとまっている。
「Raspbian “wheezy”」、「FreeBSD」、「NetBSD」、「Gentoo Linux」など。

 

 

Raspberry Pi 対応のLinux ディストリビューション一覧
RPi Distributions – eLinux.org

 

Linuxディストリビューション他に Raspberry Pi に「Firefox OS」をインストールすることもできる。
インストール方法は以下のURLが参考になる。

https://github.com/dynamis/firefoxos/wiki/raspberrypi

 

Raspberry Pi で Hello World (ソフトウェア/ハードウェア) (QR784)

QR784

QR784

4. 開発環境構築

4-1. apt-get の利用

ここからは、開発に必要なパッケージのインストールを行う。
まず好みのエディタをインストールする。

$ sudo apt-get install emacs
$ sudo apt-get install vim

Git と Ruby、Python 関連のパッケージをインストールする。

$ sudo apt-get install git
$ sudo apt-get install ruby
$ sudo apt-get install ruby-dev
$ sudo gem install bundler
$ sudo apt-get install python-dev
$ sudo apt-get install python-rpi.gpio
$ sudo apt-get install python-smbus

I2C 関連のパッケージをインストールする。

$ sudo apt-get install i2c-tools

オーディオ関連のパッケージをインストールする。

$ sudo apt-get install alsa-utils
$ sudo apt-get install mpg321

以上で、今後本連載で取り上げる内容に対応した最低限の環境を構築できた。

その他のおすすめパッケージ

最後の仕上げに Tukubai のインストールする。ここではオープンソース版 Open usp Tukubai をインストールした。

$ wget https://uec.usp-lab. com/TUKUBAI/DOWNLOAD/open-usp-tukubai-20120802.tar. bz2 –no-check-certificate
$ tar jxvf open-usp-tukubai-20120802.tar.bz2
$ cd open-usp-tukubai-20120802
$ sudo make install

join0 コマンドで動作確認をおこなった。

$ join0
Usage : join0 [+ng<fd>] key=<n> <master> <tran> Version : Fri Oct 21 11:26:06 JST 2011
Open usp Tukubai (LINUX+FREEBSD/PYTHON2.4/U
TF-8)

4-2. まずは、Hello, World

4-2-1. ソフトウェア技術者の Hello, World

Debian ベースの Raspbian を OS に使っているのでシェルスクリプトや gcc はもちろん、標準のブラウザ`最初からインストールされている。ここでは、いろいろな言語で Hello World を行う。

ソフトウェア技術者のHello World

ここでのサンプルは GitHub にアップされているので、すぐに試したい人は以下のレポジトリを clone して試してほしい。もちろんこれ以外の Hello World の pull request も受付中 ;-)

https://github.com/e-ark/RPi-HelloWorldSuite

まず最初にシェルスクリプトで Hello World を行う。

$ echo hello, world
hello, world

次に、C で Hello World を行う。まずは以下のような helloworld.c というファイルを作成する。
ファイルができたらコンパイルして実行する。

#include <stdio.h>

int main(void) {
printf(“Hello, World!\n”);

return 0;
}

$ gcc helloworld.c
$ ./a.out
hello, world

さらに HTML で Hello World を行う。まずは以下のような内容の helloworld.html を作成する。作成したファイルを標準のWebブラウザ( Midori )で表示する。

<!DOCTYPE HTML>
<html>
<head>
<title>Hello World!</title>
</head>
<body>
<h1>Hello World!</h1>
</body>
</html>

最後にターミナルで使う Twitter クライアントの tw (http://shokai.github.com/tw/) を使ってRaspberry Pi から Hello, World とツイートする。tw は「橋本商会」さん(http://shokai.org/blog/)が作成したTwitter クライアントでターミナルからのツイート以外にリストを表示したり、タイムラインをStream 出力できるので音声読み上げもできる。

tw は Ruby Gem になっているのでインストールするには次のコマンドでインストールできる。
インストールができたらアカウントの設定を行う。
設定が終わったら以下のコマンドで Hello World とツイートする。

$ sudo gem install tw
$ tw
$ tw hellow, world

Raspberry Pi の CUI から tw でツイートする

4-2-2. ハードウェア技術者のHello, World

Raspberry Pi の部品面にある P1 ピンヘッダは、電源線(+3.3V、+5V、0V=GND)と信号線から構成されていて、I2C や SPI、UART といったシリアル通信や汎用入出力(GPIO)機能が割り当てられている。GPIO を使えば「Lチカ」(LED の点滅)が行え、UART ピンにロジックレベル変換回路を接続すれば RS-232C 準拠の機器にも接続できる。

Raspberry Pi では、シェルスクリプト、C、Ruby、Python といった使い慣れた言語でこれらの機能を活用できる。そこで、Raspberry Pi で Lチカを行う。

Lチカを行う場合、ブレッドボードに部品を取り付けるのが一般的だが、今回は SEEED STUDIO 社の GROVE 用機能モジュールを用いる。GROVE は、はんだ付けせずにセンサやスイッチをつないでプロトタイプを作成できる SEEED STUDIO 社の機能モジュール群である。本来は GROVE ベースシールドと「GROVE 4 ピンケーブル アルドゥイーノ
20cm(5 本セット )」を使って Arduino などに接続して使うが、今回はやや強引に Raspberry Pi で利用する。

重要な注意
GROVE は、電源電圧が 5V であることを前提として設計されているため、電源電圧が 3.3V の Raspberry Pi での利用は本来は不適切であるが作りやすさを優先して採用した。実際、電源電圧 3.3V では正しく動作しない機能モジュールもあるが、本稿で取り上げた機能モジュールについては動作する。電源電圧 3.3V の CPU ボードは Arduino などにも見られるので、3.3V 対応の GROVE の登場が待たれる。。

必要な部品

必要な部品が準備できたら、以下の写真を参考に Raspbery Pi とLED機能モジュールを接続する。

Lチカ

今回は GPIO を “H” にすると LED が光る回路なので、次のコマンドを実行するとLチカできる。

$ sudo su
# 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

GPIOをシェルスクリプトで制御する

 

Lチカができたら、この回路にボタンを追加してボタンを押したときだけ LED が光るようにする。ボタンには「GROVE-ボタン」を利用する。

GROVE – ボタン

ここでは、再び図2と写真を参考に GPIO17 にボタンを接続し、GPIO17 の値に応じて LED が光るようにシェルスクリプトを作成した。

図2.GROVE-LED と GROVE- ボタン を用いた実験回路

図2.GROVE-LED と GROVE- ボタン を用いた実験回路

LED + ボタン

GROVE-LED と GROVE- ボタン を用いた実験の様子

#!/bin/sh
# for LED
echo “4” > /sys/class/gpio/export
echo “out” > /sys/class/gpio/gpio4/direction

# for Button
echo “17” > /sys/class/gpio/export
echo “in” > /sys/class/gpio/gpio17/direction

while true; do
if [ `cat /sys/class/gpio/gpio17/value` -eq 1 ]; then
echo DEBGU: LED ON
echo 1 > /sys/class/gpio/gpio4/value
sleep 0.1
else
echo DEBGU: LED OFF
echo 0 > /sys/class/gpio/gpio4/value
sleep 0.1
fi done

最後に、Lチカの点滅でモールス信号のHello Worldを表現する。
モールス信号はツー、トントン…のように「トン」(短点)と「ツー」(長点)の組み合わせだけで構成されている。Hello World をモールス信号を表現するには以下のような組み合わせになる。「・」は短点を、「-」は長点を表している。たとえば、HELLO, WORLD のモールス符号による表現は以下のようになる。

・・・・(H) ・(E) ・-・・(L) ・-・・(L) ---(O) --・・--(,)
・--(W) ---(O) ・-・(R) ・-・・(L) -・・(D)

モールス符号は、長点の長さは短点3個分の長さ、各点の間は短点1個分の長さ、文字と文字の間は短点3個分の長さ、単語と単語の間は短点7個分の長さと決められている。

この決まりにしたがって LED の点滅を制御するとリスト4のようなシェルスクリプトになる。なお、使用する GPIO ポートは、最初の Lチカと同じく GPIO4 であるものとした。したがって、このシェルスクリプトを動かす前に、同じく LED を GPIO4 に接続した回路を予め準備しておく。

#!/bin/sh
# ‘.'(dit) / ‘-‘(dah)
# ‘ ‘(between letters) / ‘_'(between words)

# HELLO,WORLD
str_m=’…. . .-.. .-.. — –..–_.– — .-. .-. . -..’

# for LED
echo “4” > /sys/class/gpio/export
echo “out” > /sys/class/gpio/gpio4/direction

echo -n “$str_m” | sed ‘s/\./=./g’ |
sed ‘s/-/===./g’ | sed ‘s/\. / /g’ |
sed ‘s/ /…/g’ | sed ‘s/\._/_/g’ |
sed ‘s/_/……./g’| sed ‘s/./&\n/g’ |
while read state; do
if [ “$state” = ‘=’ ]; then
echo -n =
echo 1 > /sys/class/gpio/gpio4/value; sleep 0.05
else
echo -n .
echo 0 > /sys/class/gpio/gpio4/value; sleep 0.05
fi
done

Lチカとモールス信号通信

以上で、Lチカの点滅でモールス信号の HELLO, WORLD を表現できた。
さらに、「GROVE LED」を「GROVE ブザー」に変更すると実際に音が鳴らすこともできる。GROVE は各機能モジュール(SEEED 社はエレメントと呼んでいる)の設計方針が明確なので、接続する機能モジュール部品を変えるだけで出力を LED からブザーに変更できる。

GROVE-ブザー

次に、電球で Lチカを行う。一般家庭でも使われている電球を点滅させるには商用電源(交流 100V)を扱うことになる。そこでソリッドステート・リレー(SSR)を使って電気的絶縁を確保した上で Raspberry Pi 側から制御する。電子工作に不慣れだと難しそうに感じるかもしれないが、SSR の一次側は電気的にはただの LED である。よってオリジナルの Lチカと同じ回路構成とソフトウェアで電球の点滅ができる。SSR の扱いは次の機会に詳しく取り上げる。

電球Lチカ

 

5. ネットワーク環境の活用

Raspberry Pi の所有者が、SSH アクセス可能なサーバを持っている場合、あらかじめ SSH の公開鍵設定を Raspberry Pi 上で実行しておけば、以下のようなコマンドを Raspberry Pi で実行するだけで、Raspberry Pi はイ ンターネット上のサーバと連携できる。

$ ./my_command | ssh his_server.e-ark.jp | head -10 > /tmp/output.dat

さらに、Raspberry Pi 用の Dropbox バイナリが公開されていない現状でも、SSH アクセス可能なサーバで Dropbox が利用できれば、sshfs というツールでサーバ上の Dropbox フォルダを Raspberry Pi がリモートマウントし、上記の1行スクリプトの結果を /tmp ではなく Drobox に書き出すこともできる。このようにインターネットと自由自在に連携できるのも Raspberry Pi の魅力である。

ネットワーク環境の改善

その他

おすすめ参考書籍

 

Raspberry Pi のインストール〜各種ログインまで (QR780)

QR780

QR780

 

1. Raspberry Pi とは

1-1. Raspberry Pi の概要

Raspberry Pi は、英国のラズベリー・パイ財団(Raspberry Pi Foundation)が教育用に開発した 32bit ARM プロセッサを用いたクレジットカードサイズ のシングルボードコンピュータで、2006 年頃からプロ トタイプの開発が始まり、2012年2月に市販が始まっ た。2013年3月現在、オンラインショップでは Model A が 25 ドル相当で、Model B が 35 ドル相当で購入でき る。

1-2. Raspberry Pi の仕様

Raspberry Pi には、標準構成の Model B とそこからいくつかのインタフェースを削った Model A がある。
Model B の主な特徴は以下のとおり。

システムチップ: Broadcom BCM2835 Embedded Multimedia Applications Processor
CPU: 700 MHz ARM1176JZF-S
GPU: Broadcom VideoCore IV
メモリ: 512MB SDRAM(初期型は256MB)
Ethernet: 10/100BASE-T Ethernet
USB: USB 2.0 (2ポート)
ビデオ: コンポジットビデオ出力(RCAピンジャック), HDMI出力
オーディオ: ステレオライン出力(3.5mmφ), HDMI出力
ストレージ: SD/MMC/SDIOカードスロット
低レベル周辺機器: GPIO, SPI, I2C, UART
定格電源: 700mA
電源電圧: 5V (マイクロUSBポートから給電。ただし内部では 3.3Vで動作)
サイズ: 8.6cm x 5.4cm x 1.7cm

Raspberry Pi の詳細仕様(QR478)

1-3. Raspberry Pi でできることできないこと

できること:

  • Debian Linux をもとにした Raspbian をインストールした場合、Debian Linux が実行できることの多くをそのまま実行できる。
  • GPIOポートを利用すれば、ユーザが製作した電子回路との連携が容易。
  • HDMI接続によって、地上デジタル放送対応テレビをビデオサーバにできる。

できないこと:

  • ADC(A/Dコンバータ)を搭載していないので、単体ではアナログ値の計測ができない。
  • リアルタイムクロックを搭載していないので、NTPサーバ等を利用しなければ正確な時刻を保持できない。
  • 単体では音声入力ができない。

注意すべき点:

  • 二次記憶装置がSDメモリカードなので、同じ領域に頻繁に読み書きを繰り返すとSDメモリカードの障害を早期に誘発する可能性がある。
    コラム:Raspberry Jam Session #2 お手軽シャットダウンフリー化
  • ケースに入れなくても稼働できるが、本体表面の電子部品やコネクタ類に手を直接触れると、システムが停止したり再起動する可能性が高い。
  • メインメモリが 512MB しかなく、拡張できない。

 

2. 購入から初ログインまで

2-1. 購入方法

2013年2月現在、Raspberry Pi は以下のサイトから購入できる。

Raspberry Pi は世界中で人気が沸騰しており、一時は入手に半年以上かかった。今は改善してはいるが、それでも注文した翌日に配送というわけにはゆかない。ネットでこまめに検索するなどして、すばやく入手する方法を検討してほしい。

2-2. Raspberry Pi 以外に必要なもの

Raspberry Pi を動かす前に Raspberry Pi Model B 本体以外に必要な機材を準備する。
Raspberry Pi 以外に必要なもののより詳しい説明

SDカード(8GB程度)
4GB でも 16GB でも問題はないが本稿では 8GB を想定している。
書き込み速度は速いにこしたことはない。
デジカメ等に比べると読み書きの回数が圧倒的に多いので、実績のある製品を選ぶのがよい。

電源アダプタ
Raspberry Pi は少なくとも単体で 5V 400mA 程度は消費し、公式には 700mA 消費するとしているので、余裕をもって 5V 1A 程度の電源アダプタを用意すること。コネクタ形状はマイクロUSB。
電源、ケーブル、ケースなどについて

HDMIディスプレイ
Raspberry Pi のビデオインタフェースはコンポジットビデオと HDMI のみであり、VGA はサポートしていない。地上デジタル放送対応テレビならば、HDMI イ ンタフェースを持っているので問題なく利用できる。
パソコン用液晶モニタが、VGA だけでなく DVI 入力に対応しているなら、HDMI/DVI 変換ケーブル(1000 円前後から購入可能)を介して接続できる。
Raspberry Pi の HDMI 出力を VGA モニタで 表示するためのコンバータも販売されている。
Raspberry Pi と HDMI について

HDMIケーブル
特に指定はないが、Raspberry Pi が小さいので細いケーブルの方が取り回しはしやすい。

USBマウス/キーボード
特に指定はないが Raspberry Pi が小さいのでケーブルの細い小型のものが使いやすい。
また、消費電力が大きいものだと動作が不安定になる。その場合は、セルフパワーのUSBハブが必要になる。
Bluetoothドングルを用意して設定すれば、Bluetoothマウス/キーボードも利用できる。キーボードは英語配列/日本語配列どちらも利用できる。
キーボードとマウスの詳細

DHCPでアドレスが取得できるネットワーク
Raspberry Pi は固定IPアドレスを設定することもできるが、今回は DHCP でIPアドレスと DNS の設定をしている。

2-3. 初起動前の下準備

今回は、Debian Linux をもとに、Raspberry Pi のために新たに作られた Raspbian wheezy(以下、Raspbian)をとりあげる。
Raspbian 以外にも、FreeBSD, NetBSD といった BSD 系 UNIX でも稼働実績がある。
コラム “Raspberry Jam Session” #1″

Raspberry Pi で Raspbian を使えるようにする作業は、2GB SDメモリカード用のイメージファイルをイ ンターネットからダウンロードするところから始まる。 今 回は、http://www.raspberrypi.org/downloads から 2012-12-16-wheezy-raspbian (執筆当時の最新版)をダウンロードした。

Rasbian の最新バージョンについて

次に、ダウンロードした OSイメージを SDカードに書き込む。この作業は使用する OS によって対応が異 なるので、以下では Mac OS X の場合の例を示す。この作業は、RPi Easy SD Card Setup (http://elinux.org/RPi_ Easy_SD_Card_Setup) を参考にした。

$ cd ~/Download
$ shasum 2012-12-16-wheezy-raspbian.zip
$ unzip 2012-12-16-wheezy-raspbian.zip
$ sudo diskutil unmount /dev/ディスク名
$ sudo dd bs=1m if=2012-12-16-wheezy-raspbian.img of=/dev/ RAWデバイス名
$ sudo diskutil eject /dev/ディスク名

上記作業では、まずダウンロードしたファイルのハッシュ値を確認してからファイルを展開し、次に SD カードに上書きをするために、いったん SD カードのパーティションをアンマウントし、その後、展開した OS のイメージを SD カードの RAW デバイスに書き込んでいる。書き込みが完了したら SD カードを取り出す。Mac 以外のパソコン(Linux, Windows)からの SD カードに書き込む方法は、以下を参照のこと。

SD カードに書き込む方法

2-4. Raspbian をインストールしてみよう!

SD カードの準備ができたらいよいよ Raspberry Pi を開封する。まず本体に SD カードを挿し、LAN ケーブル、HDMI ケーブルとディスプレイを接続する。次に、USB キーボード、マウスを接続する。このとき、USB の電源供給が不足ぎみになり動作が不安定になることがあるのでバスパワーでの実績がない限り、セルフパワーの USB ハブを用意することをお勧めする。最後に、電源ケーブルを接続すると Raspberry Pi がたくさんのメッセージを表示しながら起動する。

初回起動時には設定画面が表示される。ここで各種設定を行う。この設定画面の実体は /usr/bin/raspi-config であり、初回起動時以外でも sudo raspi-config で随時起動できる。以下では、raspi-config のメインメニューでメニュー項目を選択し、必要な操作を実施した後にメインメニューに戻ることを繰り返している。

(1)メニュー項目 “expand_rootfs” で、ファイルシステムを拡張する。
初期状態だと 2GB 以上の容量の SD カードを利用していても、2GB のパーティションしか生成されない。この項目を選択すれば、それだけで SD カードの最大容量までパーティションが拡張される。この設定は再起動後に反映される。

(2)メニュー項目 “configure_keyboard” で現在利用しているキーボードに合致した設定に変更する。
国と言語によって微妙に配列が異なるキーボードが多数存在する。USB キーボードには、自分がどのような配列なのかをコンピュータ側に通知する機能がないので、利用者自身が現在利用しているキーボードの配列をコンピュータに伝えなければならない。本メニュー項目ではそのための設定を行う。ここでは、代表的な配列として米国式の英語配列キーボードと、日本語配列キーボードの設定を取り上げる。

  • 英語配列(米国配列)の場合
    この項目を選択後、以下のようにたどる。
    [Generic 101-key PC] → [English(US)] → [The default for the keyboard layout] → [No compose key]
    Raspberry Pi は英国製であるため、英語配列のキーボードを使おうとして Generic 101-key PC を選んだだけでは、米国配列ではなく英国配列となってしまう。英国配列は米国配列と異なるので、米国配列にしたい場合には、English(UK) ではなく English(US) を選択しなければならない。
  • 日本語キーボードの場合
    この項目を選択後、以下のようにたどる。
    [Generic 105-key (Intel) PC] → [Other] → [Japanese] → [Japanese – Japanese (OADG 109A)] → [The default for the keyboard layout] → [No compose key]

(3)メニュー項目 “change_timezone” でタイムゾーンを変更する。
この項目を選択後、[Asia] → [Tokyo] と設定を行う。

(4)メニュー項目 “ssh” で起動時にSSHサービスが立ち上がる設定にする。
Linux、Mac OS X、Windows が稼働するパソコン、Android タブレット、iOS デバイスなどから Raspberry Pi にリモートログインする際に SSH サービスは必須なので、[Enable] に設定したままにしておく。

(5)メニュー項目 “boot_behaviour” で起動時に X window system を立ち上げる設定にする。
ここでは [Yes] を選択して次回起動時からは X window system が立ち上がるように設定する。なお、これだけだと起動時にパスワードなしでデスクトップが開いてしまうので注意が必要であるが、本稿では当面この設定を前提とする。

ログイン時のセキュリティについて

以上の設定が終わったら、最後に [Finish] を選択し、再起動を行う。再起動すると X window system が起動して Raspberry Pi のロゴのデスクトップが表示される。

これ以外にも、メニュー項目 “change_locale” で locale の変更が可能だが、この時点では日本語フォントの準備ができていないので、実行しない。

ここまでで初期設定は完了したので、次は起動と終了の操作方法を確認する。まずは “LXTerminal” を起動して shutdown コマンドを実行し終了する。

$ sudo shutdown -h now

shutdown が完了したかどうかは、Raspberry Pi 表面の LED の点滅状況を見ていれば把握できる。shutdown 完了後は電源ケーブルを抜いてよい。ふたたび Raspbrry Pi を起動するには電源ケーブルを micro USB ポートに挿すことで起動できる。

起動 と shutdown の詳細について

2-5. ネットワークと日本語環境の設定

起動と終了の方法が確認できたので、次はネットワークの動作確認を行う。

2-5-1. ネットワークの設定

Raspbian は、起動時に DHCP でIPアドレスと DNS の設定をしている。そのため、標準のWebブラウザ(Midori)を起動し、http://e-ark.jp/ のホームページが表示できれば問題ない。表示されない場合は、LANケーブルの接続、Raspberry Pi を接続したネットワークの DHCP 稼働状況などを確認する必要がある。
ネットワークの設定とトラブルシューティング

ネットワークの接続確認ができたら、ソフトウェアパッケージ管理コマンド “apt-get” を用いてパッケージのアップデートを行う。今後、apt-get コマンドの利用に際しては、必ず sudo することにする。

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

Raspberry Pi を接続したネットワークの状況によっては、上記のコマンド実行にはそれぞれ数分から数10分を要する場合がある。

apt-get とソフトウエアパッケージ管理

2-5-2. 日本語環境の設定

まず日本語を表示するために、フリーの日本語 TrueType フォントである takao をインストールする。

$ sudo apt-get install ttf-takao-mincho ttf-takao

フォントがインストールできたら、raspi-config コマンドを起動し、前節では実施しなかった locale の変更を行う。

$ sudo raspi-config

メニュー項目 “change_locale” を選択して、locale 一覧からを ja_JP.UTF-8 UTF-8 を追加し、en_GB.UTF-8 UTF-8 を除外する。locale の設定画面で ja_JP.UTF-8 を選択する。

次にibus-anthyをインストールし、その後、日本語入力の設定を行う。

$ sudo apt-get install ibus-anthy

再起動後に、日本語入力の設定はデスクトップの左下のスタートアイコンを押して、以下のようにたどる。
スタートアイコン→[メニュー]→ [Preferences] → [IBusPreferences] → [Input Method] → [Select an input method]→[Japanese>Anthy]
再起動すれば [Ctl] + [Space] で日本語入力ができるようになる。

日本語環境の設定(補足)

 

3. さまざまなログイン形態

ここまでは、Raspberry Pi のUSBポートにUSBキーボードとUSBマウスを接続して Raspberry Pi にログインし、さまざまな操作を行ってきたが、Raspberry Pi にログインする方法はこれだけではない。ここでは、別マシンから Raspberry Pi に接続する3つの方法を紹介する。

3-1. SSH

標準設定では、SSHサービスは最初から起動しているので、Raspberry Pi のIPアドレスがわかればMac の場合、ターミナルからは以下のコマンドで接続できる。

$ ssh -v pi@IP アドレス

Mac だけでなく、Linux機やWindows機からのアクセスについても以下を参照のこと。

SSHアクセスの詳細

3-2. VNC

VNC はコンピュータを遠隔操作するためのフリーソフトウェアである。Raspberry Pi を VNC で遠隔操作接続するには、まず Raspberry Pi 上でVNCサーバを立ち上げる必要がある。
そこで、以下のコマンドで、VNCサーバをインストールし、起動する。

$ sudo apt-get install tightvncserver
$ vncserver :1 -geometry 1280×800 -depth 24

この状態になれば、Mac や Linux 機上の VNC クライアントから以下の URL にアクセスすると Raspberry Pi に接続でき Raspberry Pi のデスクトップをみながらマウスやキーボードを操作できる。クライアントが Mac OS X 10.5(Leopard) 以降の場合は「画面共有」(Finder で command+K)で以下の URL に接続するとよい。

vnc://pi@IPアドレス:5901

Raspberry Pi 側のVNCサーバは以下のコマンドで終了できる。

$ vncserver -kill :1

Mac だけでなく、Linux 機や Windows 機、Android タブレット、iOS デバイス(iPhone や iPad)からのアクセスは、以下を参照のこと。

VNCアクセスの詳細

3-3. シリアルコンソール

Raspberry Pi の部品面にある P1 ピンヘッダには UART 機能を持つピンがあるので、「FT232RL 搭載小型 USB-シリアルアダプタ 3.3V」(後述)のようなシリアル USB 変換アダプタを接続すれば Raspberry Pi のシリアルコンソールに PC や Mac などからログインできる。
具体的には、まず以下の必要な部品を準備して、図1 のように Raspberry Pi と USB-シリアルアダプタをジャンパワイヤで接続する。USB-シリアルアダプタと PC を USB で接続する。

必要な部品

次に、以下のページから FTDI のドライバをダウンロードして PC や Mac にインストールしておく。
http://www.ftdichip.com/FTDrivers.htm

FTDI 接続図

ドライバがインストールされていれば USB シリアルアダプタを接続した時点で /dev/ 以下に新しい TTY デバイスが見えるので、クライアントが Mac の場合はターミナルエミュレータソフトウエアを使ってシリアルコンソールにアクセスできる。たとえば screen コマンドがインストールされているなら、以下のコマンドを実行すればよい。

$ screen /dev/tty.usbXXXXXX 115200

Raspberry Pi に接続できると以下のように表示されるのでログイン名とパスワードを入力してログインする。ログインに成功すれば PC から Raspberry Pi を操作できる。

raspberrypi login:
Password:

Mac だけでなく、Linux 機や Windows 機からアクセスする場合は、以下を参照のこと。

シリアルコンソールアクセスの詳細

Raspberry Pi Hello World に続く

Rails on Raspberry Pi

QR320

QR320

Raspberry Pi で Ruby on Rails を動かしてみた。

今回は DB に sqlite を利用したが、もちろん Raspberry Pi 上で MySQL や PostgreSQL も動作する。また、RVM も利用することができる。

インストール

Ruby のインストール

ついでに bundler もインストールしておく。

$ sudo apt-get install ruby
$ sudo gem install bundler

バージョンの確認

$ ruby -v
ruby 1.9.3p194
$ gem -v
1.8.23

続きを読む

Raspberry Pi の CUI から tw でツイートする

QR302

QR302

Ruby で書かれた CUI Twitter クライアントの tw を使って Raspberry Pi の CUI から tweet してみた。

Tw: Twitter client on Ruby.(http://shokai.github.com/tw/)

Tweet はもちろん。自分のTLの表示やリストの表示、DMの送信、複数アカウントも対応している。

インストール

  • tw のインストール

$ sudo gem install tw

  • 認証の設定(PIN番号認証)
    tw コマンドを実行するとtwitterの認証画面に移動する。
    表示されたPINをターミナルに入力する。

$ tw

PINが表示される

PINが表示される

ターミナルでPINを入力する

ターミナルでPINを入力する

 

  • Tweet する

$ tw hello world by tw on Raspberry Pi

  • 自分の Tweet を確認する

$ tw @taketo1113

tw-user

以下のようにパイプで tweet できるので RPi の GPIO からセンサーの値を読み出して自動でツイートするとかも簡単に実装できそう。

$ echo Hello World > tw –pipe

おまけ

Raspberry Pi から Crowy を使ってツイート

Crowy on Raspberry Pi

Crowy on Raspberry Pi

電子回路設計ツール Fritzing を使ってみた

QR275

QR275

回路図を描くときにどのツールを使って書くか迷ったことはないだろうか?

今回は、オープンソースの電子回路設計ツール Fritzing を紹介する。

Fritzing は Windows/Mac/Linux で動作し、回路図の設計からシミュレーションまでできる。
ライセンスはツールのソースコードには GPLv3、ドキュメントや図などには CC ライセンスが適用されている。

“Fritzing” というとツール以外にコミュニティーやプリント基板加工サービス(Fritzing Fab)もあるのだが、今回は電子回路設計ツールを紹介する。

Fritzing(http://fritzing.org/)

インストール

以下のURLから各自の環境に合わせてファイルをダウンロードする。

ダウンロード(http://fritzing.org/download/)

Mac の場合は dmg ファイルがダウンロードできるので、ダウンロードしたファイルを展開してできた Fritzing ディレクトリをそのまま Application ディレクトリにコピーすればインストールは完了する。

使い方

配置したいパーツを右上のパーツから選択してブレッドボードのウィンドウにドラッグ&ドロップするだけで配線できる。
作成した回路図は各種ファイルに書き出すことも可能だ。

fritzing-arduino

Fritzing 編集画面

fritzing-output

各種ファイルへの書き出し

使い方については Fritzing のサイトの “Getting Started” や “Tutorials” がとても参考になった。

Learning – Fritzing(http://fritzing.org/learning/)

Raspberry Pi パーツ

Adafruit の Fritzing Library を使うことで Raspberry Pi のパーツを利用することができる。
以下の URL からファイルをダウンロードして Fritzing の [ファイル] -> [開く] から必要な .fzpz ファイルを開けばパーツウィンドウにパーツが追加される。

GitHub | adafruit / Fritzing-Library

fritzing-raspberrypi

Raspberry Pi パーツ(Adafruit)