[組み込み] Arduinoのプログラミング環境をセットアップする

ちょっとした機器の試作にArduinoが使えそうなので、Arduino UNO R3をネットで購入してみた。価格は1枚$13.71なり。中国のショップみたいだけど米国内で発送されたので1週間ほどで到着。以下、プログラミング環境のセットアップ手順の覚え書き。

Arduino プログラミング環境のセットアップ

1.Arduino IDE/Arduino 1.0.5/Windows Installerをダウンロード (52.6MB)

Arduino – Software
http://arduino.cc/en/Main/Software

2. インストール

[Installation Options]は全コンポーネントを選択する。

Arduino01

USBドライバのインストール確認が表示されたら[インストール]を押下する。

Arduino02

3. ArduinoとPCをUSBケーブルで接続

ドライバの検索でWindows Updateをスキップ。ドライバがインストールされると以下のメッセージが表示される。

Arduino03

4. サンプルプログラムBlinkを実行

Arduinoに通電され、焼かれているサンプルプログラムBlinkが実行される。13pinとGNDにLEDを接続すると点滅する。

IMG_2213a

初めてのプログラミング

  1. Arduino IDEを起動
  2. [File]-[Open…]メニューを選択
  3. examples1.BasicsBlinkBlink.inoを開く
  4. Uploadボタンを押す

正しくプログラムが焼けて実行されればOK。

[組み込み] 初心者の組み込み開発覚え書き

仕事で組み込み開発のオファーが来る頻度は多くない。時間が許せば個人的にマイコンを使った電子工作をやりたいけど正直時間が無い。そんな中、今回PICを搭載した流体系のコントローラーの開発に参加する機会があり、組み込み開発初心者であるが故にさまざまな問題に直面した。今思えば、ある程度経験があれば避けられた問題ばかり。自分の戒めの意味をこめて、今後同じ間違えを犯さないように覚え書き。

1) ハードを受け取ったら、まずハードの動作確認を

ハード担当者から受け取ったプロト基板は正しく動作するという前提でソフトのデバッグ作業を始めてしまったために、ハード的な実装や配線のミスにより周辺機器が動作しないことをソフトのせいだと思い込み、ソフトの確認に散々時間を費やした挙句にやっと「もしかしてハードの不備?」と気づく始末で、結果として途方もなく時間を浪費してしまった。ハードを受け取ったら、その見栄えや実装がどんなに美しくても、必ず基本動作をチェックしてからソフトのデバッグを開始するべき。簡単なテストプログラムを作成し、入力ポートに接続されているスイッチやセンサからステータスが取り込めるか、出力ポートに接続されているLEDやリレーが駆動できるか、シリアルポートにキャラクタが出力できるか、など、ハードの基本動作に限った確認を最初に行い、「ハードは問題ない」と確信を持ってからソフトのデバッグ作業に入ること。

2) ソフトのデバッグを始める前にマイコンの基本機能を確認する

今回マイコンとして40ピンのPICを使ったけど、発注元の都合で開発途中でチップの種類が変更された。これは僕の手落ち以外の何者でもないけど、プログラマは変更されたチップに合わせて設定変更したものの、コンパイラ側の設定は以前のチップのままだったため、アナログポートを読む組み込み関数を呼ぶと戻ってこないという問題に直面。最初は原因がわからず途方にくれましたが、一晩徹夜しても理由がわからずに設定を疑い始めたところでチップの種類が誤っていることに気づき、設定変更したところ動くようになった。実際のソフトのデバッグを始める前には、簡単なテストプログラムを作成してタイマーやA/D入力、割り込みを使っているならば割り込みの動作を事前に確認しておいたほうがよい。

3) 上級言語を使う場合にはコンパイラのクセを知ること

僕は組み込みでもC言語やBASICを使いたいと思うけど、心配なのはコンパイラのクセ。実績があるコンパイラならば、コンパイラ自体のバグは少ないだろうけど、上級言語をどのようにアセンブラに展開するかはコンパイラ次第。初期の段階で必ずリストを生成して目を通し、ステップ数が多いアセンブラに展開されている命令は「遅い処理」として自覚する必要あり。特に製品としてのフェイルセーフを考えると、トラブル検知に時間がかかったり、周辺機器を安全に停止させるのに時間がかかったのでは、その間に不慮の事態に陥る危険性が生ずるので危険。今回は流体系の処理で異常高圧を検知してシステムを緊急停止させる処理があったけど、停止までの時間が数百ミリ秒もかかっていることが判明し、上級言語で書いた数行の命令がアセンブラでかなりのステップ数に展開されていることに起因していることがテスト段階になって露呈した。

4) 作成したテストケースに漏れがないか、これでもかというぐらい確認する

基板には複数のボタンが載った操作パネルが接続されるけど、順番にボタンを押す組み合わせに漏れがあって、その漏れているところがバグった。全ての組み合わせがテストケースで網羅されているか、チャートなどを作成してこれでもかというぐらい確認することが大事。テストに時間を掛けてもケースが漏れていたのでは意味がない。

[ソフト] Paragon HFS+ – WindowsからMacのハードドライブを読み書きできるユーティリティドライバ

関係先から大容量のデータが外付けハードドライブで提供されたんだけど、調べてみるとMacでフォーマットされたもの。最初はMacに接続して作業用のネットワークドライブにコピーしていたんだけど、どうもMacとLANの接続状況がよくない。どういう理由かわからないが、頻繁にネットワークが切れるので、これでは必要なファイル全てがキチンとコピーされたかどうか信用できない。何度もやり直したために、無駄に時間ばかり使ってしまった。

もしMacでフォーマットされたドライブをWindowsで読むことができれば、今後はWindowsマシンを使って作業できる。というわけで、ネットで調べてみたところ、そういう製品がリリースされているのを発見。以下はちょっと古いけど、窓の杜の紹介記事 (10/11/08)。

窓の杜 – 【NEWS】WindowsからMacのHFS/HFS Plusへアクセス可能にするソフトのフリー版が公開
http://www.forest.impress.co.jp/docs/news/20101108_405537.html

この製品はドイツのParagon Software Groupが開発販売しているらしい。日本法人のウェブサイトにも説明がある。

Paragon HFS+ for Windows – 製品の概要
http://www.paragon-software.com/jp/home/hfs-windows/

サイトでは、商用目的の利用を不可としたフリー版 (Read-Only 読込のみ) がダウンロード可能となっている。

Paragon HFS+ for Windows 8 - 無償ダウンロード
http://www.paragon-software.com/jp/free/hfs-win8.html

試しにダウンロードして、実際にWindows (Windows 7 Ultimate) からMacのドライブにアクセスしてみた。ドライブをUSBケーブルに挿してから認識されるまでには若干時間が掛かるけど、認識された後は問題なくディレクトリのリストやファイルの読み出しが行えた。体感的な速度は上々だ。製品版は2,160円でダウンロード販売されている。今後必要になればお世話になるかもしれない。

[ソフト] Dynamic Draw – 使い勝手が良いフローチャート描画ソフト

組み込み開発の案件でフローチャートを描く必要あり。これまでMS-WordやCaccoなどを使ってフローチャートを描いたことがあるけど、どれも一長一短で満足いく使い勝手ではなかった。今回もまずはネットでツールを探してみたところ、Dynamic Drawという日本語フリーウェアが見つかった。期待しないでダウンロードして試したところが、えらく使い勝手が良かったので紹介しておく。

Dynamic Draw
http://www.dynamicdraw.com/jp/

これまで使ったソフトに感じた不満は「折れ線ラインが美しく描けない」ということ。処理と処理を直線で繋げずに折れ線で迂回しないといけない場合、ソフトごとに癖があってなかなか思ったように折れ線が描けなかった。しかしDynamic Drawだと、オブジェクトの近くにマウスを移動すると端子を示すガイドが表示され、端子を選んだ後は曲げたい箇所をマウスでクリックすることで手軽に綺麗な折れ線を描くことができる。

メニューやツールパレットは一般的なWindowsアプリとは若干見栄えが違うが、迅速な操作が出来るようにと工夫されている様子が伺える。自分にとって昨今フローチャートを描く機会はあまり多くないけど、この先もDynamic Drawのお世話になりそうだ。

CTemptestmdpf-Dynamic-Draw_00

[ソフト] Live HTTP Headers – HTTPヘッダを確認できるFirefoxプラグイン

ブラウザとサーバーの間のやり取りを確認するためにHTTPヘッダを見たいときがある。そんなときに役立つのがこのプラグイン。

インストール

Mozilla Japan の公式アドオン紹介サイトからインストールすると簡単。

Live HTTP Headers | Firefox アドオン | Mozilla Japan の公式アドオン紹介サイト
https://addons.mozilla.jp/firefox/details/3829

mozdev.org – livehttpheaders: index (公式サイト)
http://livehttpheaders.mozdev.org/

使い方

プラグインが有効な状態では、Firefoxの[ツール]メニューに[Live HTTP headers]という項目が表示される。このメニュー項目を選択すると、[Live HTTP headers]という別ウィンドウが開く。この状態で通常通りサイトにアクセスすると、サーバーから受信したHTTPヘッダがこのウィンドウ内に表示される。

livehttpheaders

公式サイトではCVS Repository経由でソースコードも公開されているので、必要ならばカスタマイズもできそう。

[ソフト] Caesium – ウェブサイト用画像を軽くするのに役立つ画像サイズ最適化ソフト

ウェブサイトを制作していて気になるのは、ページに埋め込まれている画像の点数。画像が多いと、どうしてもロード時間が気になってしまう。画像を減らせればよいのだけど、商品画像など減らせない場合もあるし、デザイン上そうもいかない場合もある。というわけで、画像ファイルのサイズを見直す必要性が出てくる。

見直す点は2つ。1つは画像に余計な情報が含まれていないかどうか。たとえばデジカメ画像にはExif情報が付加されているのが当たり前だけど、ウェブサイトの商品画像として使うならばExif情報は必要ないだろう。もしExifに画像のサムネール画像が格納されているならば、それを削除することで画像サイズはかなり縮小できるかもしれない。もう1つは画像サイズの圧縮率。フォトレタッチソフトでは、画像ファイル保存時に圧縮率を指定できるものが多いが、試してみると圧縮率を高めても見た目の画質はほとんど変わらなかったりする。見た目が変わらないなら圧縮率を高めに設定しておくことでファイルサイズは縮小できるはずだ。

そういう試行錯誤をするのに以下のフリーソフトが便利。このソフト、複数の画像ファイルを一括して処理できる機能を備えているのだけど、極端に多くのファイル(数千ファイルのオーダー)を処理しようとするとハングアップ状態になるので注意 (恐らく ListView へのアイテム追加処理が遅いのだと予想)。数百ファイルぐらいなら全然問題ないけど念のため。

Caesium – Image Compressor
http://caesium.sourceforge.net/

screen3

[ソフト] Copy Fixer – ウェブサイトのブックマークをEvernoteに記録するのに便利なForefox/Chrome用プラグイン

最近はブラウザのブックマーク機能を使わずに、気になったサイトはタイトルとURLをEvernoteにコピペするようになった。Evernoteの機能を使えば、ウェブサイトを分類してノートに整理できるし、検索することでブックマークが埋もれてしまうことも防げる。

ウェブサイトのタイトルとURLをコピペするためには、以下のブラウザのプラグインのお世話になっている。このプラグインを入れておくと、ブラウザの画面で何も選択(ハイライト)されていない状態でCtrl+Cを押下するだけで、閲覧中のウェブサイトのタイトルとURLをクリップボードにコピーできる。そしてEvernoteでCtrl+Vすれば、ウェブサイトのタイトルとURLを簡単にノートにペーストできる。まさにブックマークをEvernoteに記録するのに打って付けのプラグイン。

Copy Fixer (Chrome版)
https://chrome.google.com/webstore/detail/copy-fixer/gkpoieconkiifjafemnnohlegmfpipaa

Copy Fixer (Firefox版)
https://addons.mozilla.org/ja/firefox/addon/copy-fixer/?src=api

[ソフト] Opanda IExif – 画像のExif情報を見る

画像のExif情報を見るにはどうしたらいいか。

ファイルの[プロパティ]で見る

特別なソフトをインストールしなくてもWindowsの標準機能で見れる。Windowsエクスプローラでファイルを右クリックして[プロパティ]を選択。そして、[プロパティ]ダイアログボックスが表示されたら[詳細]タブを選ぶと、画像の基本情報に交じってExif情報も表示されている。

properties

Opanda IExif (フリーソフト) を使う

もっと便利に使えるフリーウェアがないかと探したらOpanda IExifというフリーソフトがヒット。

Opanda IExif (英語版)
http://www.opanda.com/en/iexif/index.html

Exif情報を編集する有償ソフト「Opanda PowerExif Editor」の体験版も同梱されているが、インストール時にスキップするように指定可能。インストールしたら実行して画像ファイルをドラッグすれば、以下のようにExif情報が一覧表示される。「Opanda PowerExif Editor」がインストールされていると、連携してExif情報の編集ができるようになるらしい。僕は今の所はExif情報が見れるだけでよいので編集ソフトは必要なし。

opanda_iexif

[ソフト] ウェブデザインのワイヤーフレーム作成に使えそうなツールを物色する

業務系ウェブサイトの企画作業あり。アイデア整理を助けてくれそうなツールを探してみた。

MockFlow

MockFlow.jpg

  • アカウント開設が必要。制限付き無料アカウントもある。
  • サンプルを見た限りではよさげ。ページ遷移も定義できる。
  • オンライン版に加えてPC版もある(ネット接続なしでも使える) – Adobe AIRアプリらしい
  • コラボ機能が押しみたいだけど僕には必要ない。
  • 残念ながら日本語は使えなかった。

Axure

Axure.jpg

  • PC版ソフトみたい。無料体験版がダウンロードできる。製品版は$289から。
  • 動的コンテンツサイトのようなリッチプロトタイプが作れるのが押し。
  • ワイヤーフレーム作成だけに使うには機能が多すぎるかも。
  • 1時間のビデオチューターあり。ラーニングカーブは緩やか?

Balsamiq

Balsamiq.jpg

  • PCアプリとWebアプリがある。無料体験版あり。PC版$79、ウェブ版は月額$12
  • 手書き感覚でモックアップを作成できる。結構好きな仕上がり感 (Sketch Skin)
  • きちっとした表示もある (Wireframe Skin)。ワンタッチでSkinを切り替えられるみたい。
  • 残念ながら日本語の扱いに難あり。

HotGloo

HotGloo.jpg

  • 有料オンラインツール。無料体験プランあり。
  • インタラクション付きのプロトタイプが作れる。
  • 具体的なサンプルや実践的なドキュメントが少ないような。

Pencil

Pencil.jpg

  • オープンソースのGUIプロトタイプツール。無料
  • AndroidやiOSなどのステンシルを選んでGUIデザインできる。
  • アプリのGUIデザインに特化してる感じ。シンプルなワイヤーフレーミングには向かないかも。
  • 各種ダイアグラムやフローチャートなどを描くのにも使えそう。

Cacoo

Cacoo.jpg

  • 自由度が高いオンライン版ドローツール
  • 無料でオンラインアカウントを開設して使う。
  • オンライン版のVisioといった感じかな。

wireframe.cc

wireframecc.jpg

  • アプリやウェブサイトのワイヤーフレーム作成に特化した無料ツール。
  • ただ描画するだけでインタラクションなど割付できない。
  • 機能がかなり絞られているので足りないかも。

[ソフト] Inkscape – 無料で使える高機能なドロー系ソフト

デザイン作業をするのにドロー(draw)系ソフトが必要なことがある。ドロー系ソフトの定番と言えばAdobe Illustratorだけど高価で手がでない。Adobe Illustratorじゃないとダメというほど高度なデザインなんてしないし。

ちなみにフォトレタッチなどペイント(paint)系ソフトの定番はAdobe Photoshopだけど、こちらは廉価版のAdobe Photoshop Elementsがある。フル版よりも機能が減らされているだろうけど、僕の日常的な作業にはこれで充分。Adobe Illustratorにも廉価版を出してくれたら嬉しいんだけどな。

Adobe Illustratorと比較されるオープンソースのドロー系ソフトとして、Inkscapeという高機能なソフトがある。Adobe Illustratorのクローンというわけではないので操作性はかなり違うけど、機能はかなり充実。各種チュートリアルもオンラインで公開されているので、多機能ドロー系ソフトを無料で入手したい人にはお勧め。

Draw Freely. | Inkscape
http://inkscape.org/ja/

inkscape tutorials blog | Inkscape Help, Tutorials and Documentation Resources
http://inkscapetutorials.wordpress.com/

Inkscape – Wikipedia
http://ja.wikipedia.org/wiki/Inkscape