2014年02月09日

Arduinoで電子工作事始め

今朝起きたらやっと雪が止んでいました。私のアパートの部屋は塩尻駅の近くですが、市街地でも50cm以上の雪が積もっています。人がほとんど通らない空き地や吹き溜まりの積雪は1m近いです。今日は日が照って天気も良かったのですが、周りの家々は除雪作業で大わらわです。とても一日では片付かないので、これから毎日除雪を続けることになるんでしょう。これだけ積もると、2〜3週間は雪が残ったままです。その間にまた雪が降ると、2月一杯下手すると3月に入っても積雪が残ったままになるかもしれません。中信地域がこんな雪国みたいになるのは珍しいです。ずっとアパート住まいなので、私は除雪作業をやったことは一度もありません。今シーズンは数回しか積もる程の雪は降っていなかったのですが、ここにきてのドカ雪です。中信は2〜3月にこういう大雪になることが多く、4月の中頃に雪が降ったりすることもあります。厳しい寒さはまだまだ続きますが、これからの天気は晴れることが増えて、じわじわと春の兆しが感じられるようになってきます。ただし、一歩進んでは半歩下がるみたいな感じで、なかなか暖かくなりません。少しでも暖かくなってくると、風邪をひく人が増えるので油断は禁物です。

さて、昨日入手したArduino Unoをさっそく使ってみました。まずは、統合開発環境のArduino IDEをPCへインストールすることから始めました。Arduino IDEはArduino公式サイトの下のページからダウンロードできます。

 Arduino - Software

Windows, Mac OS X, Linux版が用意されていますが、今回使ったのは当然Mac OS X版です。Mac OS X版Arduino IDEのインストールは簡単で、ダウンロードしたDMGファイルをマウントして、その中に収納されているArduino.appを「アプリケーション」フォルダへコピーするだけです。下の公式サイトの「Getting Started with Arduino」というページに、Mac OS X版Arduino IDEのインストール手順と初歩的な使い方が掲載されています。

 Arduino - MacOSX

上のページに書かれている手順に従って、USBケーブルでArduino UnoとMacを接続した状態でArduino.appを起動しました。すると、下のようなウィンドウが開きました。
SCShot140209_0041-Arduino_IDE-Learning_Basic_Examples-Arduino_Uno-500x622.png
これはスケッチ・ウィンドウと呼ぶようです(Arduino IDEでは、プログラムのことを「Sketch(スケッチ)」と呼びます)。このウィンドウに入力したコードはファイルとして保存できますが、そのファイルはスケッチブックと呼ばれます。日本語環境で起動すると、Arduino IDEのメニューやメッセージはすべて日本語で表示されます。これらが英語表示だと英語圏以外のユーザーにとってハードルが高くなるので、自動的に日本語表示になるのは親切だと思いました。上のように、Arduino IDEのスケッチ・ウィンドウはとてもシンプルですが、このウィンドウ内にコードを入力してビルドするだけで、Arduinoで動くスケッチを作成できます。コンパイラのインストール、ブロジェクトの作成や設定、ターゲットハードウェア用スタートアップコードの作成、デバッガ用初期化スクリプトの作成など、いままでの組込みボードで必要だった面倒な準備は一切不要です。

ただし、初めてArduino IDEを起動したときにやらないといけないことが一つあります。それは、ターゲットボードの種類とシリアルポートを選択することです。まずは、[ツール]>[マイコンボード]メニューからターゲットボードの種類を選択しようとしました。しかし、デフォルト状態で[Arduino Uno]が選択済みだったので、これの設定を変える必要はありませんでした。
SCShot140209_0046-Arduino_IDE-Learning_Basic_Examples-Arduino_Uno-945x633
続いて、ターゲットボードが接続されているシリアルポートを選択しました。Arduino UnoにはUSB−シリアル変換チップが搭載されており、USBポートに接続したArduino UnoはUSBシリアルデバイスとして認識されるようです。Arduino公式サイトの「Getting Started with Arduino」ページに書かれているとおりに、[ツール]>[シリアルポート]メニューを開くと、下のようにメニュー項目が存在しました(Arduinoが接続されていないと、上のの2つのメニュー項目は表示されません)。
SCShot140209_0047-Arduino_IDE-Learning_Basic_Examples-Arduino_Uno-780x622
/dev/tty.usbmodemfd111」と「/dev/cu.usbmodemfd111」のどちらを選ぶべきなのか一瞬迷いましたが、取りあえず、前者のメニュー項目を選択してみました。ちなみに、後ほど後者の方にシリアルポートを変えてみましたが、結局どちらでも問題なくスケッチをArduinoへ書き込んで動かすことができました。この2つのメニュー項目はどちらを選択しても大丈夫みたいです。なお、シリアルポート名の数字部分はMacのハードウェア構成やUSBポートの位置によって変わるようです。ターゲットボードの種類とシリアルポートを選択すると、Arduino IDEのスケッチ・ウィンドウの最下部にそれらの情報が表示されました。
SCShot140209_0054-Arduino_IDE-Learning_Basic_Examples-Arduino_Uno-500x600.png
これでArduino IDEの初期設定は済んだので、さっそくスケッチ・ウィンドウにサンプルスケッチのコードを入力してみました。
SCShot140209_0055-Arduino_IDE-Learning_Basic_Examples-Arduino_Uno-500x600.png
最初に試したのは、CPUから出ているIOピンのHigh/Lowを周期的に切り替えることで、LEDを点滅させるだけの簡単なサンプルスケッチです(電子工作ユーザーはこれを「Lチカ」と呼びます)。公式サイトの「Arduino - Learn the basics」ページにたくさんのArduinoのサンプルスケッチが掲載されていますが、下のページの「Blink」という奴です。

 Arduino - Blink

実際に試したコードは上のページのものを少しアレンジしています。Arduino UnoにLEDを挿したら、いきなり1秒周期の点滅を始めたので、すでにこのスケッチがボードに書き込み済みの状態だったようです。そこで、LEDの点滅周期を300ミリ秒に変えてみました。これによって、本当に新しいスケッチが動いているかが判断できるはずです。

Arduino IDEのスケッチ・ウィンドウにコードを入力して、上側の[マイコンボードに書き込む]ボタンを押しました。
SCShot140209_0058-Arduino_IDE-Learning_Basic_Examples-Arduino_Uno-500x600.png
すると、スケッチがコンパイルされ、その実行イメージがArduinoへ書き込まれました(この程度の小さなスケッチだと、2〜3秒でコンパイルと書き込みが終わります)。Arduinoへ書き込まれたプログラムは自動的に実行されるようです。スケッチの実行イメージの転送、書き込み、そして再起動は、Arduino側のCPUの内蔵Flash Memoryに存在するブートローダがやってくれているのだと思います。
SCShot140209_0061-Arduino_IDE-Learning_Basic_Examples-Arduino_Uno-500x600.png
下の写真が、このBlinkスケッチが動いている様子です。
IMG_4221-Arduino_IDE-Learning_Basic_Examples-Arduino_Uno-640x480.JPG
LEDの短い方の足(カソード)をGNDピンに、長い方の足(アノード)をDigital IOヘッダの13ピンに挿しています。公式サイトのページにはアノード側に220Ωの抵抗を挟むように書いてありましたが、これは無くても大丈夫だろうと思って省略しました(この抵抗はLEDに流れる電流を制限するためのものなので、必ず抵抗を挟むべきだそうです。抵抗を挟さまないと、小さなLEDだと渦電流によって破損する可能性があります)。LEDの光が明るすぎて、上の写真を撮るのに苦労しました。Digital IOヘッダのピン位置とLEDの極性さえ間違えなければ、このサンプルスケッチは簡単です。

Blinkスケッチが上手くいったので、続いて、下のページに載っているDigitalReadSerialというサンプルスケッチも試してみました。

 Arduino - DigitalReadSerial

これはCPUのIOピンからスイッチの状態を読み取って、その情報をシリアルポートへ出力するスケッチです。上のページにブレッドボードと部品を組み合わせた回路例が載っています。Arduino Leonardo互換ボードのセット部品の中から、ブレットボード、ジャンパ線、4端子タクトスイッチ、10KΩ抵抗を使って回路を組んでみました。
IMG_4274-Arduino_IDE-Learning_Basic_Examples-Arduino_Uno-640x480.JPG
IMG_4293_1-Arduino_IDE-Learning_Basic_Examples-Arduino_Uno-640x480.jpg
こちらのスケッチのコードは、上のページに載っているオリジナルのままです。
SCShot140209_0083-Arduino_IDE-Learning_Basic_Examples-Arduino_Uno-500x600.png
スケッチをArduinoへ書き込んだ後、スケッチ・ウィンドウの右上の[シリアルモニタ]というボタンを押すと、下のようなウィンドウが開きました。
SCShot140209_0093-Arduino_IDE-Learning_Basic_Examples-Arduino_Uno-500x600.png
SCShot140209_0096-Arduino_IDE-Learning_Basic_Examples-Arduino_Uno-500x600.png
スイッチが押されていなれば、このウィンドウに連続的に「0」が出力され、スイッチを押すと、「1」が出力されます。スケッチコードの中でSerial.println()という関数を呼び出していますが、この関数によって送信した値がUSB経由でArduino IDEへ転送されて、上のシリアルモニタ・ウィンドウに表示される仕組みです。この関数はデバッグログの出力にも利用できそうです。

Arduino IDEのインストールから最初のBlinkスケッチを動かすまでに要した時間はたった10分程度でした。私がいままで使ってきた組込みボードとは別次元のガジェットであることに驚いてしまいました。一応Arduinoの情報はフォローしていたので、超楽にプログラム開発ができることは知っていましたが、ここまで楽にプログラムを作れて、すぐに動かしてみることができるのは感動モノです。こんなに簡単だと、やればやるほど楽しくなってくるは当然です。実際にArduinoを使ってみて、私もモチベーションが上がりまくりです。どんどん部品を挿し換えて回路を組みながら、電子工作の勉強を進めたくなってきました(本業の仕事が忙しくなければ、このままArduinoにハマりたかったのですが・・・)。Arduino以前のボードが旧世界なら、Arduinoはまさに新世界と呼ぶべきです。子供達にArduinoボード、電子部品のキット、それに電子工作の入門書的な参考書を与えて、電子回路の初歩的な組み方とArduino IDEの使い方を教えてあげれば、あとは自力で電子工作の学習をどんどん進めていくじゃないかと想像してしまいます(Arduinoを利用した子供向けの電子工作教習テキストを作ってみたくなりますね)。電子工作に興味を持っている中高生にもArduinoは超お勧めです。いままでの組込みボードなんかすぐに捨てて、デジタル系電子工学の教材はさっさとArduinoへ変えるべきです。その方が生徒たちの学習効果はずっと高くなるはずです。

Arduinoは本当に楽しくてすばらしいのですが、一度Arduinoの世界を経験してしまうと、Arduino以前の旧世代のボードは触るのが嫌になりそうで怖いです。ArduinoにはEthernet, Wi-Fi, Bluetooth, ZigBeeなどの通信系のシールドもたくさん存在しています。しかもこれらのシールドの値段はそれ程高くありません(Arduino本体が安価なので、あまり高い価格だとシールドが売れないからだと思います)。このようなシールドとArduinoを組み合わせれば、多種多様な組込みガジェットを作れます。モバイル系とオープンソース系の両方のプログラム開発に適しているMacと新世代ボードのArduinoを組み合わせれば、組込みガジェットのアイデアをどんどん試すことができそうです。もしかすると、最強の組み合わせを発見してしまったのかもしれません。

【2014/02/11 追記】

上では、公式サイトに掲載されているサンプルコードをスケッチ・ウィンドウへコピーすることでスケッチを作成しましたが、これらのスケッチはデフォルト状態で[ファイル]>[スケッチの例]メニューに登録されていることに気づきました。
SCShot140211_0022-Arduino_IDE-Learning_Basic_Examples-Arduino_Uno-764x622
このメニューから項目を選ぶだけで、公式サイトに掲載されているサンプルスケッチを作成できるようです。
SCShot140211_0023-Arduino_IDE-Learning_Basic_Examples-Arduino_Uno-500x600.png
また、[ファイル]>[スケッチの例]メニューの下段に存在する項目はArduinoに組み込まれている標準ライブラリです。標準ライブラリのリファレンス情報は下のページに載っています。

 Arduino - Libraries

これらのライブラリは、ライブラリ関数定義が記述されたヘッダファイルをスケッチ側でインクルードすればすぐに利用することができます。また、Arduino関連製品を開発している会社やユーザーが作成したライブラリを追加することも可能です。[スケッチ]>[スケッチを使用]>[Add Library]メニューを実行するとファイル選択ダイアログが開くので、このダイアログの中でライブラリが格納されているzipファイルかフォルダを選択すれば、そのライブラリがArduino IDEへ追加されます。
SCShot140211_0027-Arduino_IDE-Learning_Basic_Examples-Arduino_Uno-626x622.png
SCShot140211_0035-Arduino_IDE-Learning_Basic_Examples-Arduino_Uno-718x622
追加したライブラリは[スケッチ]>[スケッチを使用]メニューに項目として表示され、標準ライブラリと同様にスケッチで利用できます。
SCShot140211_0030-Arduino_IDE-Learning_Basic_Examples-Arduino_Uno-626x622.png
Arduino甩シールドを製造しているメーカーは大抵そのシールドを利用するためのライブラリを配布しています。製造メーカーからライブラリを入手すれば、シールドは使うスケッチをすぐに作成することができます。

タグ:Arduino
posted by とみやん at 15:10| Comment(0) | TrackBack(0) | 組込みガジェット > Arduino

2014年02月08日

Arduino Unoボードを入手した

ページ今日は全国的に大雪の天気みたいですね。信州も昨日の夕方から雪が降り続き、積雪量は50cmを超える勢いです。私が中信に来て7年経ちますが、ここまで大雪は初めてです。今日私は一日中部屋にこもっていました。近くの西友で食料品の買い足しをしたかったのですが、この雪ではとても出る気になりませんでした。

さて、Arduino Leonardo互換ボードを購入したこと前記事に書きましたが、こいつに続いて、Arduino Uno (R3)も入手しました。ヤフオフ!で落札した奴ですが、開始価格が通販サイトの販売価格の半額程度だったので思わずポチってしまいました。
IMG_4166-Arduino_Uno_R3-640x480.JPG
IMG_4188-Arduino_Uno_R3-640x480.JPG
IMG_4198-Arduino_Uno_R3-640x480.JPG
今回入手したのは互換品ではなく純正品です。ボード上の「WWW.ARDUINO.CC-MADE IN ITALY」というシルク印刷からその事が判ります。ボードの裏面が全面シルク印刷になっているのが、なかなかカッコ良いですね。前回入手したArduino Leonardo互換ボードの裏面はごく普通でした。

Arduino UnoはArduinoシリーズのリファレンス的な存在です。Arduino Unoに搭載されているCPUはAtmel ATmega328という奴で、これには32KBのFlash Memoryと2KB SRAMが内臓されています。書籍やWebページに掲載されているサンプルプログラムは大抵このArduino Unoで動かすことを前提に書かれています。Arduino Uno以外のボードだとコードを部分的に改造しないと、プログラムが動かなかったりします。改造と言っても、電子回路について基礎的な知識を持っていればできる程度の内容なので難易度はそれほど高くありませんが、初心者には高いハードルには感じられることもあるかと思います。そのため、電子工作の初心者はArduino Unoを選択しておいた方が無難です。チャレンジ精神が旺盛なら、あえて他の種類のArduinoボードを選択し、ぶつかった問題をクリアしていくことで逆に学習効果が高まるかもしれません。最初のボードとして私がArduino Leonardoを選択した理由は、これを狙ったからです。本業の関係で、久しぶりに通信係のマイコン制御ブログラムを開発しなけばならなくなったので、その試験環境をArduinoで手っ取り早く作ろうと考えています。急遽Arduino Unoも入手したのはこの理由からです。私がArduinoを利用して開発したマイコン制御ブログラムの事例は本ブログに掲載していきます。

Arduino Unoと一緒に7セグメントLEDやセンサーもいくつか入手しました。それと、Arduino用のLCDシールド(拡張基板)も入手しました。値段は1,180円でした。下の写真がそれで、キャラクタLCDとキースイッチ6個が搭載されているシールドです。
IMG_4206-DFROBOT-LCD Keypad Shield.JPG
Arduinoの拡張端子ヘッダに挿せば、そのまま使える奴です。ボード上に「DFROBOT」というのシルク印刷があったので、このキーワードでググってみると、下のページが見つかりました。

 LCD Keypad Shield For Arduino

これが製造メーカーの商品情報ページみたいです。どうやら中国のロボット関連部品メーカーのようですね。このメーカーのサイトには、XBee用ソケットやBluetoothを搭載したArduino互換ボードなんかも載っています。面白そうな物が揃っているので、そのうち、このメーカーから直接ボードや部品を買ってみようかと思っています。

いまでは多くの種類のArduino関連商品がAmazonや通販サイトで売られていますが、ヤフオフ!にも同様の商品がたくさん出品されています。1年程前のArduino関連品の入手性はここまで良くありませんでした。電子工作の書籍や雑誌も増えていますし、ググってみると電子工作の活用事例などが膨大な数ヒットします。やはりArduinoを利用して電子工作を始めるのが流行っているんだと思います。秋葉原にも電子工作やロボット製作の専門ショップがいくつか出現しています。このように部品や情報が格段に入手し易くなっているので、電子工作を始めるならいましかないという感じです。「Arduinoを使って電子工作にトライしてみたが、すごく解り易く、楽しみながら学習ができた」という内容のカスタマーレビューがAmazonにたくさん掲載されています。Arduinoは世界中で使われており情報量がものすごく多いので、たとえ問題にぶつかっても、根気よく調べれば大抵は解決できます。学習意欲さえ持続できれば、そこそこのレベルの電子工作の知識を取得するのは可能だと思います。Arduinoは草の根モノづくりの発展に多大な貢献をしているという評価は世界中で高まる一方です。このブームに乗らない手はありません。

電子工作に必要な工具や計測器もこれから少しずつ揃えていこうと思っています。ただし、テスターだけは早急に買うつもりです。電源ラインのショートや過電圧はすぐにボードや電子部品を破損してしまうので、テスターは電子工作には必須の計測器だからです。本格的にやり始めたら、デジタルマルチメーターと安定化電源も必要になるでしょう。ロジアナとオシロは3年半前に買った物を持っています。ずっと眠らせていましたが、やっとこれらの計測器を活用できそうです。

タグ:Arduino
posted by とみやん at 19:10| Comment(0) | TrackBack(0) | 組込みガジェット > Arduino

2014年02月06日

Arduino Leonardo互換ボードを購入

ページ全国的に今日の冷え込みは厳しかったみたいですが、信州もメチャクチャ寒かったです。午後3時頃に外出したら、塩尻駅前に設置してあるLED温度計パネルが「-3℃」を表示していました。今朝8時頃にも近くの西友へ買い物に行ったのですが、防寒服にマフラーと手袋をして出たにも係わらず、あまりの寒さに身体の震えが止まらず手足がジンジンとしびれるほどでした。台所に置いていたミネラルウォーターのペットボトルの中身が少しだけ氷っていたのには驚いてしまいました。体感的には最低気温は-10℃以下、最高気温0℃未満の真冬日の一日でした。多くの人は信州で一番寒い街(人口密集地域)は降雪の多い長野だと思っているようですが、松本の寒さも長野に負けていないです。本日の気象情報によると、実際に長野より松本の方が気温が低かったようです。一冬の最低気温は長野ではなく松本の方が記録することが良くあります。降雪の少ない松本がこんなに寒い理由は、松本平が四方を高い山に囲まれた狭い盆地だからです。松本平と似たような狭い盆地は全国の山間部にいくつもありますが、こういう地域では冬に冷気がこもって低気温が一日中続く気象現象が良く起きます。晴れて日差しがあれば多少なりとも気温が上がるのですが、曇っていると気温はずっと低いままです。長野平も盆地ですが、その面積は松本平よりずっと広く、高い山は北側と西側にしかないのでたとえ雪が降っても冷気は拡散します。今日みたいに一日中低い雲が垂れ込めていると、冷気の逃げ場がどこにもなく松本平は冷蔵庫状態になります。じつは、私は長野にも10ヶ月程滞在して一冬を過ごしたことがありますが、長野より松本や塩尻の方が寒いと感じることがあります。真冬に中信地域の街々を旅行する人は、こちらの寒さを甘く考えずに防寒対策を徹底してください。そうしないと、すぐに風邪をひいてしまいますよ。信州を旅行したり信州へ移住しようと思っている人は、信州は北海道の続いて全国で2番目に寒い地方であること知っておくべきです。2番目は東北だと思っている人が多いようですが、東北より信州の方が寒い地域が多いです。

さて、前記事から少し間が空いてしまいましたが、また新しい分野へのチャレンジしようと思って調べ事に時間を使ったりしていました。そして、2週間かけて調べた新しい分野への挑戦を始める決心をついに固めました。その分野とは「組込みガジェット」です。Arduinoやmbedを代表とするお手軽組込みボードを利用した電子工作やガジェット開発などを、私はこう呼んでいます。その「組込みガジェット」の中でもっとも有名なボードであるArduinoの互換ボードを購入しました。

もはや全世界的にメジャーな存在となったArduinoについての説明はあまり要らないかと思いますが、一応説明しておくと、Arduinoというのは2005年にイタリアで始まったオープンハードウェアをベースとしたプロジェクトです。このプロジェクトは、学生向けの安価なロボット開発用プロトタイピング・システムを製造することを目的にスタートしました。ArduinoボードはCPUにAtmel AVRシリーズを搭載しており、いくつかの種類があります。すべてのボードのハード設計データはEAGLEファイルとして公開されており、これらのデータを利用して製造された数多くの互換ボードも存在しています。

私が今回購入したのはArduino Leonardo(レオナルド)というボードの互換品です。このボードにはAtmel ATmega32U4というCPUが搭載されています。他のAVRシリーズと違った特徴として、このCPUにはUSB Peripheralコントローラが内蔵されいます。製造メーカーはSainSmartという会社ですが、多分中国の工場で製造されたものではないかと思います。現在は多くの販売代理店が扱っているので、Arduinoボードの純正品は容易に入手できるようになっていますが、純正品だけでなく多くの種類の互換品も国内で販売されています。最近はAmazonでもArduinoみたいなボードや電子部品が販売されており、こういう商品の通販サイトもかなり数が増えました。数年前はDigiKeyRSコンポーネンツくらいしか利用できるサイトはなかったのですが、電子工作をやっている人には本当に良い時代になったものです。やはりいまも電子工作ブームが続いているのが大きいのかもしれないですね。純正品と比較するとArduinoボードの互換品はかなり安価な値段で出回っていますが、その中から、Arduino Leonardo互換ボードにいくつかのベーシックな電子部品を組み合わせたセット品を選択しました。下が製造メーカーの商品情報ページです。

 SainSmart Leonardo R3 Starter Kit With 16 Basic Arduino Projects Specializing in Arduino compatible development boards and modules, oscilloscopes and other electronics.

この商品の購入先はAmazonで、価格は3,990円でした。電子部品の相場をあまり知らないので、この値段が適切なのかは良く判りません。少量の部品を通販サイトで買い集めると送料が高くついてしまいますし、東京へ行く機会もしばらくないので(秋葉原には電子工作専門ショップがいくつかできています)、手間や労力を考えると、妥当な値段なのかなぁという気はします。

セットに含まれる全部品を収納できるケースも付属していました。DIYショップでケースを買おうと思っていましたが、その必要はなくなりました。ただし、すぐに部品が増えていくでしょうから、やはりもっと大きい収納ケースを買うつもりでいます。
IMG_4075-SainSmart-Arduino_Leonardo-640x480.JPG
IMG_4112-SainSmart-Arduino_Leonardo-640x480.JPG
IMG_4118-SainSmart-Arduino_Leonardo-640x480.JPG
IMG_4151-SainSmart-Arduino_Leonardo-640x480.JPG
Arduinoボードの実物を見たのはこれが初めてですが、その小ささに驚きました。名刺の2/3程度のサイズです。Arduinoの利用事例を紹介しているページや、Amazonや通販サイトの商品情報ページには拡大写真が載っていたので、もう少し大きいサイズなのかと思っていました。

Arduinoを利用した電子工作の入門書も販売されていて、Amazonや書店ではこれらの書籍の売れ行きも良いようです。私はこういう書籍はまだ買っていません。一応電子回路や部品についての予備知識はある程度持っているので(学生時代に習ったトランジスタ世代の古い知識ですが)、当面はGoogle先生に教えてもらいながらやっていこうと思っています。どうしてもこういう本が必要だと感じたら買うつもりです。

本と言えば、じつは、数日前に下のようなサイトを見つけました。

 IT eBooks - Free Download - Big Library

このサイトにはIT関連書籍のPDFファイルが大量にアップされています。最初は海賊版ファイルを集めたサイトなのかと思いましたが、どうもそうではないようです。出版社がこのサイトへ自社書籍のPDFファイルを提供しているような気がします。半年〜1年以上前に出版された少し古めの書籍を出版社が販促のために提供しているのかもしれません。アメリカで出版されている書籍限定みたいですが、いくつかの主要な出版社の書籍は存在しておらず、最新の書籍も欠落しているようです。それでも、ものすごい数の書籍のPDFファイルがアップされており、Webブラウザでも本の内容が閲覧できるので、英語の読めるITエンジニアにとっては黄金の麦畑のようなサイトです。このサイトで検索したらArduino関連の書籍もあったので、すでにいくつかのPDFファイルを入手済みです。その中では、下のO'REILYの本が良い内容に思えました。

Arduino Cookbook
Arduino Cookbook
posted with amazlet at 14.02.07
Michael Margolis
Oreilly & Associates Inc

Arduino Cookbook
Arduino Cookbook
posted with amazlet at 14.02.07
Michael Margolis
Oreilly & Associates Inc
売り上げランキング: 69,735

上の方は、近日発売予定の第三版です。Kindle版だと1,951円(本記事投稿時点)と結構安いですね。新版が発売されるので、値引きしているのでしょう。

Arduinoボードを購入したのを機会に、以下の3つの記事カテゴリを新しく作りました。

 組込みガジェット > Arduino
 組込みガジェット > mbed
 組込みガジェット > Raspberry Pi

mbedとRaspberry Piの記事はまだありませんが、この2つのボードを使った電子工作やガジェット開発にもこれから挑戦していきます。mbedはまだ入手していませんが、じつは、Raspberry Piはすでに入手済みです。入手したのにまったく触っておらず、積みボードの一つになっています。Raspberry Piの記事は近いうちに書きたいと思っています。mbedの価格も6,000円前後なので、こちらも近いうちに買うつもりです。ちなみに、上の3種類のボードを選んだ理由はいずれも安価(1万円未満)だからです。もう一つの理由てして、MacまたはLinuxで開発環境を構築できることも考慮しました。開発環境がWindowsでしか構築できなかったら、迷わず候補から外していたでしょう。

Arduino, mbed, Raspberry Piを使って私がやりたい事は他の人とは少し違っています。電子工作やハード技術を習得したいのではなく、あくまでガジェット開発が最終目標です。ロボットやホームエレクトロニクス機器みたいなスタンドローンで動くものではなく、モバイルデバイスと連携するスマート・ガジェットを作りたいと思っています。すでにいくつかのアイデアを思いついているので、これらのアイデアを実現する方法について色々と調べていることろです。

いまも続いている電子工作ブームは2008年位から始まったようですが、このブームが大きな流れになったのは2010年位からです。2007〜2010年にかけて日米でいくつかの電子工作専門雑誌が発刊されています。このトレンドに乗ろうと思って、私も2010年5月にロジアナとオシロを買いました。以前のブログサイトの記事には趣味の電子工作をやりたいと書きましたが、本当は本業をハード技術者に転向したいという強い気持ちを持っていました。この意欲を完全に捨てたわけではありませんが、いまは電子工作はあくまでガジェット開発の手段だと割り切る方が良いんじゃないかと思っています。ガジェット開発にはハード技術も必要ですが、組込みLinux、Webサービス、モバイルアプリ開発などのソフトのウェイトがより大きいからです。

Arduino, mbed, Raspberry Piみたな新世代の組込みボードの活用事例を見ていると、ディープな組込みハード/ソフト技術を追いかけるのはもう時代遅れだという気がします。アマチュアの電子工作愛好家達はこれらのボードを利用してフットワークの軽いお手軽な組込み開発をどんどんやっています。ニコニコ動画で発表される作品を観ていると特にそう感じます。ハードの基礎試験をやって、インフラ・フームウェアを開発し、その上にLinuxやuITRONやミドルウェアを移植して、それからアプリを作り、最後に全機能とユースケース試験をやる(テレビのような多機能な家電品では、これらの工程を3〜4回廻してやっと製品が完成します)みたいな昔ながらのやり方はもう捨てるべき時期が来ているのだと思います。メーカーの中でこういう技術を持つエンジニアはまだ必要だとは思いますが、メーカーの大小を問わずで、コストダウンのために、こういう仕事は中国や韓国の試作専門工場へ投げてしまってしまうのがいまでは主流になっています(低予算アニメの下回りの仕事が韓国のスタジオへたくさん流れているのと良く似た構図です)。小さなベンチャー企業や個人事業者が組込み機器でビジネスを立ち上げるなら、左記のようなやり方はあまりに予算がかかり過ぎます。昔ながらのやり方で組込み機器を製造すると、どんなに小さな物でも最低1千万円の開発予算が必要です。既存の組込みガジェット・ボードを利用すれば、開発工程は大幅に短くなり予算も半分以下に圧縮することが可能です。私がArduino, mbed, Raspberry Piを使い始めるのは、こういうボードを利用した新世代のモノづくり(「モノづくり」いう言葉は日本ではまだ古いやり方を想起させるので、私はこの言葉を嫌っています)に活路が見つかるじゃないかという期待が持っているからです。ググっているうちに、こういうやり方でガジェット機器を開発しているベンチャー企業や個人事業者が日本でもいくつか登場していることを知りました。米国の有名雑誌『WIRED』の旧編集長だったクリス・アンダーソンが著した下の本もベストセラーになって、「ビットからアトムへ」というのがトレンドワードになっています。

MAKERS―21世紀の産業革命が始まる
クリス・アンダーソン
NHK出版
売り上げランキング: 2,321

日本ではいまだに多くの企業が古臭いモノづくりを未練たらしく続けていますが、欧米の先進国の企業はそんなやり方は2010年位までに捨ててしまい、いまでは新世代のモノづくりへ移行しています。そして、アマチュアが自分のアイデアを実現するためにプロジェクト・ページを開設したり、小規模投資を募ってITスタートアップを立ち上げるような草の根からのモノづくりムーブメントが大きな流れになりつつあります。ArduinoやRaspberry Piがアマチュアの電子工作愛好家を相手に大きく販売量を伸ばしたのが良い例です。こういうボードを利用して自分のアイデアを具現化しようと動き始めている人々が世界中で増えているのです。上の本を書いたクリス・アンダーソンも2012年11月に自ら3D Roboticsというベンチャー企業に設立して、DIYドローン(自動操縦航空機)製品を開発しています。日本の製造業が衰退したのは「モノづくり」の規模や技術力が縮小したからではなく、「モノづくり」の戦略と手段を革新できなかったことが最大の原因です。この「モノづくり」という言葉自体を再定義して、いままでのやり方を根本的に変えるための具体的な行動を起こすことが、いまの日本の製造業企業がやるべき最優先事項だと私は考えています。大手の製造業企業は経営者も一般社員も現状維持を続けることしか考えていないようなので、「ビットからアトムへ」がもたらす新産業革命時代がすでに始まっていることに気づいている人は少数派ではないかと思います。新興ベンチャー企業やアマチュア発の個人事業者などが新産業革命時代の主役になりつつあるのは必然なのかもしれません。

タグ:Arduino
posted by とみやん at 17:12| Comment(0) | TrackBack(0) | 組込みガジェット > Arduino