“Edison”でロボットアームをグリングリン動かす(前編)新春電子工作!(3/5 ページ)

» 2015年01月02日 21時00分 公開
[小林哲雄,ITmedia]

作業手順説明書──疑似ロボットアームで5つのモーターの代わりにLEDを点滅する

ファームウェアの更新からIPアドレス設定まで

手順1 Enterキーを押すとログイン画面が出てくるので、ユーザー名「root」でログイン。初期状態ではパスワードなしでログインできる。

手順2 ドライバの認識とともに「Edison」というドライブも認識するので、「Yocto Linux」から解凍したファイルをコピーする。

手順3 「reboot ota」とコマンド入力。これで再起動してファームウェアが更新する。

「Edison」というドライブに最新ファームウェアのファイル群をコピーしてから「reboot ota」で書き込む

手順4 再度rootでログイン。Edisonドライブの中身は消しておく。

手順5 「edison_configure --setup」と入力してEdisonの初期設定をする。具体的にはrootパスワードと無線LANを設定する。

「edison_configure --setup」コマンドで初期設定を行う。名前は適当に設定(しなくてもよい)。rootパスワードは忘れないように。無線LANの設定を行うとPCとケーブルでつながなくても通信可能だ

手順6 “安全”のため、無線LANのIPアドレスを固定化しておく。少なくとも現在使っているルーターのDHCPアドレス範囲外に設定しておきたい。まず、「cd /etc/wpa_supplicant/」「cp wpa_cli-actions.sh wpa_cli-actions.sh.org」のコマンドを実行してから、編集を行う。

手順7 「vi wpa_cli-actions.sh」でエディタを起動する。

「udhcpc」の行頭に#を付けてコメント化し、「ifconfig」と「route」の2行を追加する。xxxは使っているルーターの環境によって異なる。今回は192.168.0.210と192.168.0.250としている

手順8 終了したら「reboot」コマンドで再起動し、再度ログインしてからifconfigコマンドでIPアドレスが正しいかどうかチェックしておこう。

Arduino IDEの設定

手順9 起動して、「ツール」→「マイコンボード」が「Intel Edison」になっているか確認し、さらに「ツール」→「シリアルポート」をIntel Edison Virtual Com Portの番号に設定する。これでPCからEdisonのスケッチ(プログラム)を作成して書き込む環境が整った。

Arduino IDEを起動したら、マイコンボードとシリアルポートの設定を行う。マイコンボードは変更する必要がないが、シリアルポートの設定は必要だ。この設定を行っていないと次のサンプルプログラムがうまく書き込めない

arduino IDEでテストコマンド(LED点滅)実行

手順10 「ファイル」→「スケッチの例」→「01.Basics」→「Blink」でプログラムを開き、「→」ボタンをクリックしてコマンドの書込みをしてみる。問題がなければEdisonロゴの右側にあるLEDが点滅するはずだ。Edison for Arduinoの13番ピンにはLEDが付いているので本体だけで動作チェックができる。

プログラムを読み込んだら、ファイルメニューの下にある「→」ボタンをクリックする。これでプログラムがコンパイルされてEdisonに書き込まれる。うまく書き込めた場合は、下に「マイコンボードへの書き込みが完了しました」という表示と「Transfer complete」というメッセージが出て、Edison for ArduinoのLEDが点滅する。ここで書き込めない場合は先ほどのシリアルポートを確認しよう

以下「LEDが点滅」と書いているのはEdison for ArduinoのDS2というLED(写真緑の枠)だ。DS2の左上にあるDS1/DS3ではないので注意

手順11 「Simple Web server WiFi」を実行する。「ファイル」→「スケッチの例」→「WiFi」→「Simple Web server WiFi」でプログラムがダウンロードできる

「Simple Web server WiFiってどこぉ?」と迷いやすい。ここから入手可能だ

手順12 次のカラムを参考のこと

 冒頭のコメントを見るとこのように書いてあるはずだ。

Circuit:

* WiFi shield attached

* LED attached to pin 9

 純正のArduino UNOには、WiFi機能がないので「WiFi shield」が必要になる。WiFi SHIELDが10〜13番ピンをシールドとのやり取りに使うためだ。Intel Edison for Arduinoには、WiFi機能が初めから組み込まれているのでGPIOを消費しない。このため、LEDのあるGPIO13に書き換えて実行して見よう。あと、手持ちのWiFi APの情報もソースファイルに直接書き込む

書換えが必要なのはとりあえず赤枠の4カ所だ。冒頭のネットワークSSIDとパスワードは手元の環境によって変える必要がある。また、LEDピンは「9」ではなく「13」にすると追加ハードウェア不要で確認できる



 ここでプログラムを実行するとうまく動かない。シリアルモニタを見ると20秒ぐらいの遅延があってからIPアドレスを表示するので、Webブラウザから取得しているIPアドレスを入れても、Edisonの画面を表示するだけだ。

正しい画面と違う結果を表示している。これは、Edisonが別のWebサーバを実行しているからだ

 Edisonの初期設定ではnode.jsが動作していて、これをWebサーバと認識してしまう。node.jsを止めてしまう手もあるが、今回は迂回することにした。

手順13 「WiFiServer server(80);」を「WiFiServer server(8080);」に書き換える。

31行目の「WiFiServer server(80);」を「WiFiServer server(8080);」に書き換える

手順14 PCのWebブラウザでアクセス(「http://IPアドレス:8080」と入力)すると、LEDが点灯と消灯を繰り返す。

とってもシンプルな画面なのは、“Simple Web Server”ゆえ

Copyright © ITmedia, Inc. All Rights Reserved.

アクセストップ10

最新トピックスPR

過去記事カレンダー