マイコン事始め

「何を作りたいか。それが重要だ。」

森下功啓製作所 ONLINE

[編集方針]
このページは、マイコンを始めたいがどうしたら良いのかということに対する指針となることを目指して作成しています。
何かリクエストや質問があれば気軽に掲示板に書き込んでください。
[2014/3/21 更新]:少し更新。


1. はじめに

これからマイコンを使って電子工作をやろうとしている者にとって、 (1)どこから始めたたら良いのか? (2)どのマイコンを使えばよいのか? (3)どこから部品を買えばよいのか? という事柄がまず壁として立ちはだかります。


2. どこから始めたら良いの?

既にソースコードを手に入れていたりキットを持っている場合は説明書通りにいじれば良いと思います。 全くマイコンは分からないがこれから組み込み技術を身に着けなければと思い立ち「これからマイコンの勉強をしよう」という場合には、まずはLEDをチカチカ点滅させる(例:youtube)のがお勧めです。 アセンブラだろうがC言語だろうが必ず力が付くはずですし、いくつもの疑問も解決するでしょう。 独習であれば2か月もすれば電気もある程度分かるようになり、自在にLEDを光らせることができるようになります。 ところで、その頃になると「LEDを光らせることはできるようになったけど、だからどうした。。。」と思うかもしれません。

こうなると第1段階終了です。 さっそく次のステップへ進みましょう。 LEDをチカチカ光らせることができるようになったという事は、I/OポートをHigh/Low(例えば3.3V/0.0V)できるという事です。 この時点でトライできることを以下に示します。 もしスイッチ入力を検出できるようになれば、下記のリストに加えて例えばライントレースロボット位は作ることができます。

(リンク先は秋月電子通商)

他にも、次なる分野としてタイマーや割り込み処理に行ってラーメンタイマーを作ったりしても楽しいでしょう。 この時点でシリアル通信(TeKuRobo工作室さんへのリンク)を使ったPCとの通信ができていなければ、ぜひシリアル通信へトライしましょう。 シリアル通信ができるようになればプログラムのデバッグがやり易くなりますので、さらにトライできる分野が広がります。 AD変換を利用して温度計測をやっても良いと思います。

これらにトライすればさらに力が付き、行く行くは自分で多層基板を設計できるようになるでしょう。 ただし、この話の前に実はやらねばやらぬことがあります。 それはどのマイコンを使えば良いのかという選択です。


3. どのマイコンを使えば良いの!?

これは2チャンネルにこの手のスレを立てれば炎上間違いなしと思われる課題です。 どのマイコンにも一長一短があり、要するに選択は人それぞれなのです。 自分が使うマイコンを一度決めてしまえば3年間程度はそのマイコンのシリーズを使い続けるになるであろう事柄ですので選択は重要です。 どのマイコンでも大抵のものは作れてしまいますので、選択の基準は作りたい作品に関する資料があるかどうか,開発環境の構築は容易かどうか,マイコンの入手性はどうか,自分の財布は…といった事がかかわってきます。 さらに、独習でない場合は組み込み技術を教えてくれる身近な方が知っているマイコンに限られてしまうでしょう。

個人的にはArduino UNO/Megaで初めて、Arduino DUEまたはmbedへ展開し、ときどきMSP430って感じが良いと思います。 他にも、78kとか色々あります。 以下の表を参考にして自分の使うマイコンを決めて下さい。 参考までに、2010年以降に出版された書籍の数で言えば、下記の様になります(2013/5調べ)。

Arduino > PIC > H8 > mbed ≒ mbed以外のARMマイコン > AVR

表1 超主観的マイコンの特徴(2013/12時点)

マイコンの種類 チップ価格 チップの入手性
/
[主な入手先番号(4章参照)]
主な開発規模 資料の入手性 ライタ
(プログラムの書き込み器)
開発環境 備考
H8
16 bit
1,600円~4,000円 良/[1][6] 小の上~中 日本語データシートが手に入ります。 不要 1) GCC Developer Lite:GDL
(対応品種は限られるが、使いやすいく軽い。フリー。ただし、言語はほぼCに限定。)
2) HEW
(メーカ純正,エンディアンの問題を解決できる。C++対応。無償ライセンスにはコードサイズに制限有。)
H8は日本メーカ製なので日本語資料が多く、レジスタの勉強がやりやすいです。 ただし、時間の限られる状況では敬遠されがちです。
RX
32 bit
数百円~ 小の上~大 日本語データシートが手に入ります。 HEW(メーカ純正,エンディアンの問題を解決できる。C++対応。無償ライセンスにはコードサイズ制限有。) RXはH8の後継機種という事もあって、使いやすいマイコンです。 まだ工作例が少なく、手を出し辛い雰囲気です。

最近ではGR-SAKURAというマイコンボードが出ています。 mbedと同じようにブラウザを使ってコンパイルが行えます。 ただし、情報が分散しているのとWEBサイトのデザインが不統一なのがイマイチ。 (メーカーサイトへのリンク
PIC
大抵 8bit
数百円~ 良/[1] データシートは英語ですが、書籍と工作例が共に多いので心配ないと思います。 PICkit2
PICkit3
3000~5000円程度
MPLAB X(メーカ純正)でアセンブラの開発ができます。純正・フリーのCコンパイラも組み合わせることができます。 PIC16F84クラス以下ではプログラミング言語にアセンブラを使った方が良いと思います。 個人的には、PIC16F84から入ってその後いくつか経験しましたが、もう2度と使うことはないかなと思っています。
AVR
8bit
数百円~
PICの方が安いチップが多いと思います。
ATtinyやATmegaシリーズは良/[1][4][5] 小~中 データシートは基本的には英語です。WEB上の工作例が多いので余り苦にならないかもしれません。

最新ではありませんが、日本語資料がここより手に入ります。
純正ISPライタ:

3,000円程度
Atmel Studio 6(メーカ純正、フリー、C++対応) 私にはH8マイコンより取っ付き難いと感じられましたが、低機能クラスならPICより使い易いと思います。

USBホストで遊びたいなら、ATmega16Uファミリが使いやすいと思います。 Arduino UNOのおかげで、ソースコードまで公開されていますのでとっつき易いでしょう。
Arduino
UNO/Mega: 8 bit
DUE: 32 bit
3,000円~7,000円 良/[1]~[5] 中~大 [1] Arduinoをはじめよう
書籍よりもWeb資料の方が断然多いです。
普通はUSB経由
proシリーズはUSB-シリアル変換ケーブルが必要
Arduino IDE(無料、C++対応)
サンプルコードも付いていて使いやすいです。
モジュール化されたセンサなどがシールドという名前で多数販売されており、コアがAVRなのに非常に高度なことが直ぐ様できてしまうというすごいプラットフォームです。

ハードウェア上の制約もありますし、プログラミングのためのAPI群はブラックボックスとしたまま開発ができますのでハード的知識は身に付きにくいのですが、コードの再利用性が高いことと簡単に高度なモジュール開発ができるのが最大の魅力です。

ARM版のArduino DUEは浮動小数点演算をハードでサポートしており、噂によると浮動小数点演算に要する時間がmegaの1/1000だそうです。
ARM
32 bit
2,000円~13,000円程度(チップのみだと110円@秋月) 並/[1][4] 中~超大 ARM関連書籍は2010年から急に充実してきました。
お勧めの書籍はSTM32マイコン徹底入門です。WEBサポートも充実しています。
USBケーブルでOK Eclipseを使って統合開発環境とすることができます。
ST系の開発ならば、マイコン徹底入門のサポートページに行くと一気に開発環境が整います。

資金が潤沢であれば高価ですが使い易いIARの開発環境(ン十万円)をお勧めします。
ARMは割り込み順位を変更できるなどOS搭載を念頭に入れたアーキテクチャとなっており、端子割り当てが自由に配置できるマイコンも存在しています。 非常に融通の利くマイコンですがそれだけあって素人には困難を伴います。 お師匠が必要でしょう。

2011/7時点では、STBeeを強くお勧めします。 (2011/10追記:LPCXpressoの方が国内シェアは高いかも。IDEのCORD REDはC++非対応。ただし、mbedとの親和性が高い。)
mbed
32 bit
5,000円程度 並/[1] 中~大 mbedコミュニティ USBケーブルでOK インターネット環境とブラウザがあれば開発可能です。 mbedはARMマイコンをコアにしたマイコンボードです。 開発過程でSNSを利用することで初心者に対する障壁が低くなっています。 ただし、ネットがないとコンパイルできない・APIが一部非公開というネックがあります。 実験室外でのデバッグが求められない且つ電力消費してもOKな状況であればかなり有用かと思います。 なんたって、メモリ量が大きいし、動作速度が速い。

なお、CPUのビット幅が異なると既にあるプログラム資産活用に支障がある場合があります。 特に構造体や共用体の構造には気を付けるようにしてください。 他にも、リトルエンディアンかビッグエンディアンかどうかもコード開発に影響があったりします。 この問題はコンパイラで解決できる場合もあります。


4. 組み込み用Linux OS搭載マイコンボードという手もある

最近はインターネットとの通信で面白いことができないか・・・や、画像処理をやらせたいんだけどARMで一からやるのはちょっと・・・などという要望にこたえる形で、Linux OSが搭載されたマイコンボードがリリースされています。 代表的なものは「Raspberry Pi」でしょうか。 Raspberry PiはUSB接続機器が使えるほか、HDMI端子を使ってPCモニタへの画面出力が可能という豪華なマイコンボードです。 プログラムの開発言語はメインがPythonで、OSが搭載されている強みを生かして複数の処理を同時に実行できます。 純粋ソフトウェア屋さんには敷居はまだ高いのですが、他のマイコンボードに比べれば、PC用のプログラムがそのまま利用できることとメモリ量が多いことで比較的使いやすくなっています。


5. どこから部品を買えばいいの!?

私は以下のサイトをよく利用しています。 他にも、共立エレショップスイッチサイエンスが有名処です。 後は、先人達のWeb情報から特殊なモジュールや部品の入手先を調べればOKです。

  1. 秋月電子通商
  2. マルツパーツ館
  3. 千石電商
  4. ストロベリー・リナックス
  5. Digi-Key:海外ですが、特殊な素子が割安で手に入ります。
  6. ベストテクノロジ:ロボットが多いのですが、GDLで即開発可能なH8やARMも取り扱っていらっしゃいます。

6. 最期に

マイコンを使った組み込み技術を磨きたいならば金を惜しんではいけません。 と言っても、電子部品は高いので作る作品を見定めて、十分な下調べの上で購入しましょう。 特に、書籍に関しては金を惜しんではいけません。 Web上に作り方が載っているさと高を括らずにプログラミング言語やマイコン関係の本を買い漁る必要があります。 自分の身に着く情報量が全く違います。 後閑 哲也さんの電子回路の工作室を筆頭にしてその他の優れた多数のコンテンツを参考にしつつ、書籍で勉強しましょう。


参考文献

PICの罠 PIC・電子工作・プログラミング上の初心者に対する罠が分かり易く説明されています。
inserted by FC2 system