実習教材 ライントレースカーの設計
加島 倫a
筑波大学 東京キャンパス事務部 学校支援課 附属坂戸高等学校係〒350-0214 埼玉県坂戸市千代田 1-24-1

概要
筑波大学附属坂戸高等学校の工学システム・情報科学科目群の必修科目である「工学情報実習Ⅰ・Ⅱ」で使用するライントレースカーの設計を行った。
キーワード： 実習教材 ライントレースカー
ESP32

１．はじめにライントレースカーを製作する授業(工学情報実習)は筆者が筑波大学附属坂戸高等学校に赴任する

15 年以上前から行われている伝統的な科目であり、それぞれの時代の流行技術に合わせ、設計の調整・見直しを行ってきた(表 1)。
初期のライントレースカー[1]では、モーターに供給の安定しない新古品を使用していたため、実習で活用を始めて数年ほどすると入手不可能な状態に陥った。新古品モーターは専用のカスタム規格であるため取り付け寸法がまちまちで、品切れとなる都度に入手できるモーターに合わせた取り付け穴の設計変更が求められた。
2008 年の設計変更時[2]、モーターの部品型式を安定供給できるものに変更し、感光基板をエッチング

表 1. 歴代トレースカー教材の特徴
年式

特徴
2桁7セグLED
スイッチ: スライド5～2007

開発言語

アセンブラ
(MPASM)

2桁7セグLED
スイッチ: プッシュ6, スライド5
2008

2014

2019

[拡張準備機能]
赤外線, RS232C,16x2行液晶

C言語(HiTech-C)

2桁7セグLED
スイッチ: スライド8
フルカラーLED[拡張準備機能]
OPアンプ実験回路, Wi-Fiモ
ジュール
加速度モジュール

[拡張準備機能]
音声出力, NTSCビデオ出力,Grove (I2Cバス)

センサー基板
感光基板＆エッチングによる手作り

筐体
アルミLアングル
穴開け・切断による手作り
旋盤加工 (アルミ車輪)

ステッピングモーター
5V 2相ユニポーラ
(新古品)

電源
単三乾電池 4本

PIC16F887マイコン

感光基板＆エッチングによる手作り

アルミLアングル
穴開け・切断による手作り
旋盤加工 (アルミ車輪)

5V 2相ユニポーラ
Portescap
55M048D1U

単三NiMH 4本

感光基板＆エッチングによる手作り

アルミLアングル
穴開け・切断による手作り
旋盤加工 (アルミ車輪)

5V 2相ユニポーラ
Portescap
55M048D1U

単三NiMH 4本

外注プリント基板(国内 P板.com)
PIC16F887マイコン
外注プリント基板(国内 P板.com)

C言語(MPLAB XC8)

8桁7セグLED
スイッチ: プッシュ2, スライド3
W-Fi/Bluetooth内蔵
2022

メイン基板
PIC16F88マイコン
感光基板＆エッチングによる手作り

Python 3(Micro Python)

PIC16F18877マイコン (2019～)

外注プリント基板

ESP32マイコン

外注プリント基板

外注プリント基板(中国 elecrow)

写真 1. 2014 年版ライントレースカー
akashima.hitoshi.fp@un.tsukuba.ac.jp

USBモバイルバッテリー(5V)
フレーム・車輪共、加工済み部品を配布
手作業は簡単な穴開け・タッピングのみ

12V 2相バイポーラ
NEMA17汎用

USB-PDモバイル
バッテリー(12V)

写真 2. 2022 年版ライントレースカー

して生徒に手作りさせていたメイン基板は、エッチング済みのプリント基板として配布することとなった。生徒による感光基板からの基板作成は大変失敗が多く授業の進行に支障がでることがあったためである。
2014 年の設計変更[3]では、応用としてゲームプログラムで遊べるようフルカラーLED とスライド SWの増設を行った(写真 1)。
2020 年版[4]では、対応教員の数(5→4 人)と授業コマ数(4 コマ/週→3 コマ/週)が削減され、製作工程の短縮が必要となり、センサー基板の感光基板エッチング作業による製作を取りやめ、プリント基板のすべてを外注し授業をすすめるように体制を変更した。
2022 年には、2008 年より使用していたモーターの取り扱い終了に伴い設計の見直しを行った。これは本稿で紹介するものである(写真 2)。

２．開発方針本校の学科は総合学科であり、工学システム・情報科学科目群の実習においては、通常の工業高校ほどの技術・専門性は必要ないため、指導要領に準拠しつつも簡単な製作体験から楽しみながら何かを得る、という方針のもと教材開発を行った。
本校の工学情報実習での主な学習内容は次の通りである。
(金属加工学習)・アルミ材料からのトレースカー車体の加工・組み立て・定盤・ハイトゲージ・ノギス・けがき針を使った測定・ボール盤を使用した穴開け・弓ノコを使った切断・ヤスリを使った端面処理
・タップを使ったねじ切りの部品として広く採用されている規格であり、互換品であれば長期的な部品供給を期待できる。

3.2 メイン基板
MicroPython[5] の 実 装 や ワ ン ボ ー ド マ イ コ ン
Arduino[6]シリーズのライブラリと開発環境の流用が可能なマイコン Espressif Systems 社 ESP32[7]を中心とした構成に変更した。応用機能の充実を図るため、スピーカー、オーディオアンプを実装し、７セグメ
ント LED を 2 桁から 8 桁に拡張。NTSC ビデオ出力、I2C[8]インターフェイス端子を実装した。

3.3 バッテリー
従来までの単 3 型 NiMH 充電池 4 本から、USBPD モバイルバッテリーに変更した。NiMH 充電池は端子が露出した電池ボックスにおいて短絡の危険性があることや、電源供給が 1 回の実習の間持続できないこと、維持コストがかかることが問題であった。
USB モバイルバッテリーは小型で容積あたりの容量も大きく、過電流防止回路が標準搭載されている
他、実習の修了後においても生徒が通常生活で引き続き利用が可能である。

3.4 フレーム(車体)
機械工作のための学習時間を短縮するため、加工は作業の容易な穴開け・タッピング程度とし、半加工品もしくは完全加工済み部品としても配布できるよう、NC 加工機に対応した設計で量産が可能な構成とした。

(電気工作学習)・抵抗・コンデンサ・半導体など部品の形状や働き・メイン基板、センサー基板のハンダ付けによる組み立て(プログラミング学習)
・既成のプログラムリストを打ち込むことによるマイコン制御の体験
・プログラミング言語 Python を使ったライン
トレースプログラムの作成
・動作アルゴリズムの画策と、プログラムへの反映

３．設計の見直し
新開発のライントレースカー教材における主な見直し部位は次の通りである。

3.1 モーター
2008 年から採用していたステッピングモーターの部品店による取り扱いが終了したため、NEMA17規格の汎用モーターに変更した。市販 3D プリンタ

写真 3. マシニングセンタによる加工の様子

４．ライントレースカーの構成と特徴
主要部位の構成と特徴は次の通りである。

4.1 センサー部
赤外線近接センサーを応用した検出機構で、検出面の反射率を検出するアナログモードと、コンパレーターを通してしきい値比較した出力を得るデジタ
ルモードを基板ジャンパによりモード選択ができる。
下面側に 3 個、前方左右に 2 個センサーを配置し、下面センサーの取り付け間隔はコースラインのビニールテープ幅の認識に都合の良い 20 mm とした。

写真 4. センサー部外観前方センサーにより、障害物衝突の検出への応用が可能である。メイン基板との接続を 2.54 mm ピッチ
ヘッダコネクタ＋フラットケーブルとし、ピン配置を工夫し、誤って逆挿し接続しても電気破損しないようにした。外観を写真 4 に、回路図を図 1 に示す。

4.2 駆動部
NEMA17 サイズ、2 相バイポーラ、200 パルス/回転、出力約 5 W のステッピングモーターを使用した。
モータードライバに既成の A4988 モジュールを利用することにより、マイコンから正逆回転方向とパルスを与えるだけで決まった方向にモーターを回転させることができる。電流制限機能を搭載しており、動作電圧は 12 V である。

4.3 制御部(メイン基板)
マイコン開発モジュール ESP32-DevKitC-32E へ、センサー基板からの信号を入力し、ステッピングモータードライバーA4988[9]モジュールへパルス出力し制御する。
プログラムの書き込みは、マイコン開発モジュー
ルの microUSB 端子に PC を接続して行う。
A4988 モジュールへの DC 12 V 電源供給は、USBPD トリガーモジュールを介し USB-PD 規格対応バッテリーにより供給する。外観を写真 5 に、回路図を図 2 に示す。

4.4 フレーム部
8 mm のアルミ角棒 2 本のはしご型フレームで、前輪を装着したアルミ板(フロントメンバー)と、最後部の M4×L110 mm 全ねじで左右を連結した構造であり、構成部品が少なく組み立てが容易である。

4.5 ホイール部
溝入れをしたアルミ円盤に機械駆動用のゴム O リングを取り付けたものである。モーター軸には凸部側面からの M3 いもねじで固定をする。ホイールは60φアルミ棒から NC 加工機で切削し生徒へは完成品を配布する。

写真 5. メイン基板外観

4.6 電源部
USB-C PD (USB Power Delivery[10])対応モバイルバ
ッテリーを採用した。
USB-C PD 12 V トリガーモジュールを用いて作動用の DC 12 V を供給している。トリガーモジュールは USB-C プラグ接続時に PD バッテリーの供給電圧を自動設定し、見かけ上、直流電圧の供給源として機能する。また、モバイルバッテリーには過負荷保護機能が搭載されているため、誤配線や実験中のミスにおいての安全性が確保できる。

５．メイン基板の応用機能
メイン基板には、ライントレースカー制御機能とは別に、工学情報実習の応用実験と学習に対応する追加機能を設定した。

5.1 8 桁 7 セグメント LED
MCP23017[11] 16 bit I/O エクスパンダ IC による桁ドライバ 8 本、セグメントドライバ 8 本の信号出力を有する。
(学習内容の例)
・ダイナミック LED 点灯の学習
プログラムでのダイナミック点灯の動作を、ブレッドボード上に組み立てた 7 セグメント LED の手動点灯操作と交えて学習する。
・デジタルインベーダーゲーム
既存のゲームプログラムをマイコンに書き込み、プログラムの数値変更や改変を行い、プログラムの探究や構成を体験する。

5.2 音声出力
ESP32 モジュールの D/A コンバーターまたはパルス幅変調(PWM)出力による音声を TEA2025[12] 1W ス
テレオオーディオアンプ IC により増幅し基板搭載の小型スピーカーより音声出力することができる。
(学習内容の例)
・オーディオアンプの学習

１石オーディオアンプ回路を別回路でブレッドボード上に組み立てをし、音声をスピーカーから再生。増幅回路を学習する。

・Bluetooth ゲームコントローラー接続
遠隔操作での走行や、ゲームプログラムのプレイ機能など。

・電子オルゴールの製作
esp32_fm_synth[13] (6 音 FM 音源)をマイコンに書き込み、電子オルゴールを作る。
机上でサイン波の数値を掛け合わせ、波形合成(シンセサイザー)の計算を体験する。
譜面エディタ MuseScore[14]を用いて MIDI デー
ターを作成し、電子オルゴールで再生する楽曲を入力する。

5.4 拡張端子

・MP3 プレイヤーの製作
ESP8266Audio[15]ライブラリを用いて microSD カード MP3 プレイヤーを作る。

5.3 Wi-Fi/Bluetooth
ESP32 モジュールにはワイヤレス機能が標準搭載されており、WiFi/Bluetooth 通信を実装することができる。学習への応用として、次のような機能が想定できる。

将来のための機能拡張ができる端子を搭載した。
・I2C 端子ESP32 上の I2C 信号線を 5 V レベル変換した外部拡張端子である。市販 I2C 拡張基板の装着を想定。
・ビデオ端子ライブラリ ESP_8_BIT_composite[17] などを用いたソフトウェア合成による NTSC 信号出力。TV 画
面を使った映像出力やビデオゲームなどを想定。
・microSD スロット
シリアル通信モジュールを利用した microSD メ
モリカードアクセスが可能である。データーロガーや音楽プレイヤーのアプリケーションでの利用を想定。

・MQTT[16]通信による遠隔情報共有
個々のロボットカーの走行状況をデーター共有
しての動作連携や、サーバー側から動作の一元操作をするなど。

図 1. センサー回路図

図 2. 制御基板回路図

組み立て図面(図 3)と Python プログラム(リスト 1)を示す。

図 3. 組み立て図面

６．組み立て図面とプログラム

電 子 回 路 図 ・ 基 板 ア ー ト ワ ー ク は Altium 社
Designer [ 1 8 ] 、 機 械 図 面 は Autodesk 社 AutoCAD
Plus[19]、3D 模型図面は Autodesk Inventor[20]により作成した。

## ライントレースプログラム (Python)#import stepper# stepper ライブラリをロード
motor = stepper.STPM()# STPM クラスを初期化# 無限ループ

while True:
if S0.value() == 0:
motor.move_right()# 右センサが反応したら右へ旋回

elif S1.value() == 0:
motor.move_forward()# 中央センサが反応したら前進

elif S2.value() == 0:
motor.move_left()# 左センサが反応したら左へ旋回

リスト 1. Python プログラム
参考文献[1] 実習資料 PIC ライントレースカーの製作 筑波大学
附属坂戸高等学校工業科 (2006)[2] 実習資料 PIC マイコンボードの製作 筑波大学附属坂戸高等学校工業科 (2008)[3] 実習資料 PIC マイコンボードの製作(rev2.0 基板) 筑波大学附属坂戸高等学校工業科 (2015)[4] 実習資料 PIC マイコンボードの製作(rev2.1 基板) 筑波大学附属坂戸高等学校工業科 (2019)[5] MicroPython, Damien P.George, https://micropython.org/[6] Arduino, Arduino S.R.L., https://www.arduino.cc/[7] ESP32 Series, Espressif Systems
https://www.espressif.com/en/products/devkits[8] I2C-bus specification and user manual, NXP
https://www.nxp.com/docs/en/user-guide/UM10204.pdf[9] A4988 DMOS Microstepping Driver with Translator andOvercurrent Protection
https://www.allegromicro.com/en/products/motor-drivers/brush-dc-motor-drivers/a4988[10] USB Power Delivery, USB Implementers Forumhttps://www.usb.org/document-library/usb-power-delivery[11] MCP23017 16-Bit I2C I/O Expander with Serial Interface,
Microchiphttps://www.microchip.com/en-us/product/mcp23017[12] TEA2025 Stereo audio amplifier, ST Microelectronics
https://www.st.com/en/audio-ics/tea2025.html[13] esp32_fm_synth, Marcel Licence
https://github.com/marcel-licence/esp32_fm_synth[14] MuseScore, MuseScore Ltd., https://musescore.org/en[15] ESP8266Audio Arduino library to play MOD, WAV,FLAC, MIDI, RTTTL, MP3, and AAC files on I2S DACs
or with a software emulated delta-sigma DAC on theESP8266 and ESP32, Earle F. Philhower, III
https://github.com/earlephilhower/ESP8266Audio[16] MQTT The Standard for IoT Messaging, OASIS Message
Queuing Telemetry Transport Technical Committee
https://mqtt.org/[17] ESP_8_BIT Color Composite Video Out Library, Roger
Cheng
https://github.com/Roger-random/ESP_8_BIT_composite[18] Altium Designer, Altium
https://www.altium.com/altium-designer[19] Autodesk AutoCAD Plus, Autodesk
https://www.autodesk.co.jp/products/autocad-plus[20] Autodesk Inventor, Autodesk
https://www.autodesk.co.jp/products/inventor/

Design of the practice teaching material “Line trace car”
Hitoshi Kashimaa)
Senior High School at Sakado, Division of Services for Laboratory Schools, Department of Tokyo Campus Affairs,
University of Tsukuba,
1-24-1 Chiyoda, Sakado, Saitama, 350-0214 JapanThe line trace car is designed as a teaching material for "Practice of Engineering Information" in Senior High Schoolat Sakado, University of Tsukuba. The students can learn a programming, a metalworking, a soldering, etc.
Keywords: practice teaching material, Line trace car, ESP32