Raspberry Pi」カテゴリーアーカイブ

Raspberry Pi (RPi) に関連することをブログ形式で書き連ねようと思います。

Raspberry Pi から Arduino を制御する(Firmata編)

QR1751

QR1751

Raspberry Pi から Arduino を制御する方法にはいくつかありあますが、今回は Arduino Firmata を使った制御方法を紹介します。

Firmata とは、Arduino のようなマイクロコントローラとホストマシン間での通信のための汎用プロトコルです。
Firmata を使うと Arduino に接続したホストマシンからシリアル経由で Arduino を制御するコマンドを送って Arduino を制御することができます。

Firmata を Arduino に書き込む

Arduino で Firmata を使うために Arduino に Firmata 用のスケッチを書き込む必要があります。
ここでは Arduino IDE のサンプルプログラムの Firmata 用のスケッチ「StandardFirmata」を利用します。

以下からサンプルを開いて、スケッチを Arduino に書き込みます。

Arduino IDE -> [File] -> [Examples] -> [Firmata] -> [StandardFirmata]

Arduino IDE | Firmata - StandardFirmata

Arduino IDE | Firmata – StandardFirmata

Raspberry Pi から Arduino を制御する

Raspberry Pi から Arduino に Firmata でコマンドを送るために、arduino_firmata という Ruby のライブラリを使います。
Arduino Firmata on Ruby

arduino_firmata のインストール

pi$ gem install arduino_firmata

(注) gem を使うために Ruby のインストールが必要です。以下のように apt-get で ruby と ruby-dev をインストールしてください。

pi$ sudo apt-get install ruby
pi$ sudo apt-get install ruby-dev

arduino_firmata の使い方

デジタル値の書き込み(GROVE – LED)

Raspberry Pi と Arduino を画像のように USB で接続しました。
GROVE のシールドを使って GROVE の LED を接続しています。

Raspberry Pi と Arduino を接続(GROVE - LED)

Raspberry Pi と Arduino を接続(GROVE – LED)

13番ピンに LED を接続して以下のコマンドを実行すると、13番ピンが “H” になり LED が点灯します。

pi$ arduino_firmata “digital_write 13, true” –arduino=/dev/ttyUSB0

アナログ値の読み取り(GROVE – 温度センサ)

GROVE のシールドを使って GROVE の温度センサを接続しています。

DSC_0002

Raspberry Pi と Arduino を接続(GROVE – 温度センサ)

以下のコマンドで温度センサのアナログ値を取得できます。

pi$ arduino_firmata “analog_read 0” –arduino=/dev/ttyUSB0

arduino-firmata – analog-read の実行結果

取得した温度の値を補正するスクリプトを書いてみました。
以下のスクリプトを実行すると取得した温度のアナログ値から温度(摂氏)に変換します。
(小数の計算に bc コマンドを使っているので bc コマンドを apt-get install しておく)

#!/bin/sh

analog=`arduino_firmata “analog_read 0” –arduino=/dev/ttyUSB0`

resistance=`expr \( 1023 – $analog \) \* 10000 / $analog`
temperature=`echo 1 / \( l\( $resistance / 10000 \) / 3975 + 1 / 298.15 \) – 273.15 | bc -l`

echo $temperature

参考URL

 

ディスプレイに表示中の X の画面をリモートで操作する方法

QR1742

QR1742

Raspberry Pi でディスプレイに表示中の X の画面をリモートで操作する方法を紹介します。
x11vnc という表示中の X の画面に接続できる VNCサーバを使っています。

Raspberry Pi を使ってデモをするときに重宝しそうです。

x11vnc のインストール(@RPi)

pi$ sudo apt-get install x11vnc

VNCサーバ起動(@RPi)

pi$ x11vnc -display :0 -usepw -forever

VNCクライアントから接続(@PC)

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

参考URL

Raspberry Pi Model B の納期(2013/04/22)

QR1704

QR1704

Raspberry Pi Model B を 5台購入しました。

日本のRSオンラインで在庫を持つようになったみたいで、以下のような流れで注文してから3日で手元に届きました。

 

 

  • 2013/04/19(Fri) 注文(RSオンライン(JP))
  • 2013/04/22(Mon) 配送

Raspberry Pi 購入

Raspberry Pi Model B は1日50台ほど売れているみたいなのでほしい人はお急ぎを! :-)

在庫確認(RSオンライン)

Raspberry Pi Weather station

QR1715

QR1715

天気予報をディスプレイに表示する記事の紹介です。

[kontroller]: Raspberry Pi Weather station

 

 

Yahoo の天気フィードの API から wget を使って情報を取得、シェルスクリプトでパースした結果をディスプレイに表示しています。

  1. Grabs the weather data from Yahoo weather feed.
  2. Extracts key weather data from the xml feed, and
  3. Displays the data to the LCD.

Web の API と電子工作を組み合わせで他にもいろいろ応用できそうですね! :)

USP MAGAZINE 2013 Summer 寄稿予定記事サポートページ を作ってみました。

QR1575

QR1575

少々先走りですが、「USP MAGAZINE 2013 Summer 寄稿予定記事サポートページ (QR1569)」を作ってみました。

われわれ著者陣は、USPマガジン 2013年夏号にも寄稿する予定ですが、それが認められるかどうかはまだ判りません。でも、サポートページだけは作っちゃいました。

さて、どうなることでしょう!?

— 3/31/2013 by hohno

無事、寄稿することになり、すでに脱稿しています。いまごろは印刷所で印刷製本中かと。今月(2013年6月)末に発売かいしとのことです。

— 6/28/2013 by hohno

「USPマガジン2013年春号 よりぬき版」が公開されました (QR1554)

QR1554

QR1554

去る 2013年3月27日に「USPマガジン2013年春号 よりぬき版」が公開されました。無料です。 今回寄稿した「UNIXネイティブの電子工作塾」も一部が掲載されています。 掲載されていない部分もそのままHTML化したり、同等の内容のページを新たに用意したりしつつありますので、今回の寄稿は実質的に全文をお読みいただけます(もちろん、権利関係の調整はしてあります)。

 

公開状況は以下のとおりです。(3/31/2013現在)

    1. O先生のレクチャー(対話形式の概論)(「よりぬき版」に収録)
    2. コラム:Raspberry Jam Session #1 Raspberry Pi で使えるOS(「よりぬき版」に収録)
    3. T君のノート(レクチャーをもとにした詳細なノート)(寄稿本文とほぼ同じ情報をHTML化して公開中)
    4. コラム:Raspberry Jam Session #2 お手軽シャットダウンフリー化(寄稿本文はHTML化して公開予定)
    5. スペシャルインタビュー(「よりぬき版」に収録)

 

公開されたよりぬき版は PDF 形式で、寄稿本文のQRコード部分がハイパーリンクになっています。ですので、タブレット等でこのより版を閲覧中にQRコードをクリックすると、とても自然にわれわれのサポートページとの間を行き来できます。

ぜひ、ご活用ください。

— 3/31/2013 by hohno

 

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)