このドキュメントは http://edu.net.c.dendai.ac.jp/ 上で公開されています。
マイコンの応用として、よく作られるライントレーサの設計をします。 本章で設計する回路は、今まで配布した部品だけでは作れず、新たに部品を 購入する必要があります。
学習用に何らかのデバイスを動作させることと、実際に動くものを作る時で は、考え方などが大きく違います。 本章では、具体的なライントレーサーの設計よりも、他の動くシステムと共 通に考えなければならない点について多く述べたいと思います。
ライントレーサは床に書かれた線をなぞって動く模型自動車です。 「床の線をなぞる」には色々解釈があります。
マイコンに接続するのは1,2個の光センサーと、左右に動けるような仕様の 自動車模型です。 通常は、左右で独立したモータにより動く車輪がついていることが多いです。 モータドライバーは正転のみの制御で良いので、FET二個でも、一般的なモー タドライバーでもどちらでもよいです。
なお、明るさセンサーは環境により動作領域を変更する必要があるので、例 えば、可変抵抗器とフォトトランジスタの直列にするなど、調整可能にしてお きます。 また、ソフトウェア側でセンサーで白黒の判定が表示されるようにしておく と、調整が楽です。
模型自動車にarduinoを載せるのに、PCからUSBケーブルで接続した状態では 自走しているようには見えません。 そのため、マイコンまわりも電池で動作するようにする必要があります。
Arduino はUSB接続で動作させる前提でしたが、模型に載せる場合は、電源 を独立させる必要があります。 しかし、Arduino UNO をUSBの給電以外で動作させる場合、電源ICを駆動さ せるために、制約として 7から12V の動作が 規定されています。 https://store.arduino.cc/usa/arduino-uno-rev3 Tech SPECS
一方で、模型のモータを動かす場合、3Vで動作させることを考えます。 この場合、多くの電力が必要なのは3Vの電源の方です。 ですので、主電源を3Vとし、副電源を考えることとします。
例えば、悪い設計として、9Vの積層電池を主電源としてArduino に供給し、 モータの電源は3端子レギュレーターなどの簡単な回路の降圧回路で 9Vから 3Vを作るパターンがあります。 この設計でも動きます。 但し、積層電池の持つ電力量は小さいので数十分で電池を使い切ってしまい ます。
ですので、電力を多く使う方を主電源とします。
電池6本を直列にする電池ボックスもありますので、副電源を電池ボックスに することもできます。 しかし、動く模型を作る上で、重量物である電池を大量に積むのは不利な設計 です。
次に考えるうるのは、3Vから7V以上を作って給電することになります。 これは、昇圧電源ユニットを使えば実現できます。 但し、昇圧電源ユニットはIC一個に周辺部品数点で実現できるとは言え、数百円 かかります。 また、電源周りの製作ミスはエネルギーの制御ミスになるので、部品 破損を含む事故につながります。 ですので、この選択には利便性がある一方で、コストと若干のリスクがあります。
振り返って考えると、Arduino のマイコンチップの諸元を見ると、電源電圧 は 1.8〜5.5Vまで使えますので、3Vでも動作できます。 ですので、主電源直結で使うことを考えます。 但し、Arduino は 16MHz で動作してますが、2.7V以上、4.5V未満では最大 10MHz でしか動作しません。 ですので、ハードウェア、ソフトウェアとも若干の互換性を失うことは避け られません。
Arduinoのファームウェアはそのままとして、AT mega-328pのチップだけで、 動作させる試みがあります Arduino Without External Clock Crystal on ATmega328 これを実現し、
一切ミスをしない開発を想定するのは無理があります。 そのため、チェック、テストを行えるような開発を行う必要があります。 基本的にシステムを構築するには全てを完璧にする必要があります。 そのような開発を行う手法として、分割統治法があります。 つまり、システムを分割し、各分割部分を完璧にし、さらに、分割の結合が 完璧にします。
マイコンシステムにおいて、まず分割可能なのは、回路設計、ソフトウェア、 実機製作などになります。 そのため、つぎのような設計手順を行います。
これを実現するには、テスト用と実機用で同じ回路が必要なので、 部品は2台分入手する必要がある。
最小ハードウェアを実現し、PB5(19番ピン)からLED、330Ω、GNDと直 列につなぎ、Arduino の Built-in LED と同じ構成とする。
ライントレーサーの回路を設計し、アルゴリズムのテストを行う
ライントレーサを製作する