第2部 開発実習のサポート・ページ

■ブレッドボードで体験する方法

第2部で紹介する例題は,第2部 第2章で製作するトレーニング・ボードで動かせますが,部品を集めればブレッドボードでも同様に試せます.マイコン・ボードには,SAM E51マイコンがあらかじめ実装されているSAM E51 Curiosity Nano Evaluation Kit(マイクロチップ・テクノロジー)を使います.オンボード・デバッガが付いてくるので,PICkit 4などのハードウェア・ツールが無くても試せます.

SAM E51 Curiosity Nano Evaluation Kit(マイクロチップ・テクノロジー)

 

●用意する部品

ブレッドボードで試すときに使う部品を次に示します.マイコン・ボードと複合センサ以外は,同等品であれば流用可能です.ここでは編集部の実験で使った部品を参考に示します.ブレッドボードは,大きめのタイプなら何でもOKです.USB-UART変換アダプタはTTL3.3Vタイプなら同等品で流用できます

部品 型名 参考価格 個数
マイコン・ボード SAM E51 Curiosity Nano Evaluation Kit(マイクロチップ・テクノロジー) 1,800円(Digi-Key,Mouser,RSコンポーネンツ等から入手可能) 1
複合センサ AE-BME280(秋月電子通商) 1,080円 1
SPI接続の128×160ドットLCD(ST7735S搭載) M018C7735A(aitendo) 825円(ST7735S/ST7735B搭載の同等品なら流用可) 1
USB-UART変換アダプタ TTL-232R-3V3(FTDI) 1,950円(TTL3.3Vタイプの同等品なら流用可) 1
半固定ボリューム(10kΩ) 3386K-EY5-103TR(SUNTAN TECHNOLOGY CO LTD) 50円(同等品なら流用可) 2
赤色LED OSR5JA3Z74A 10円(同等品なら流用可) 1
緑色LED OSG8HA3Z74A 10円(同等品なら流用可) 1
抵抗(470Ω) CF25J470RB(FAITHFUL LINK INDUSTRIAL CORP.) 100本入りで100円(同等品なら流用可) 1
抵抗(1kΩ) CF25J1KB(FAITHFUL LINK INDUSTRIAL CORP.) 100本入りで100円(同等品なら流用可) 1
コンデンサ(1μF) RDER71H105K2K1H03B(村田製作所) 20円(同等品なら流用可能) 2
ブレッドボード SAD-12(サンハヤト) 4,840円(同等品なら流用可能) 1
コネクタ付きケーブル コネクタ付ケーブル 20cm 40P オスオス(SUNHOKEY Electronics Co.,Ltd.) 160円(同等品なら流用可) 1
ジャンパ・ワイヤ 165-011-000(E-CALL ENTERPRISE CO., LTD.) 300円(同等品なら流用可) 1
ピン・ヘッダ(LCD用) PHA-1x40SG(Useconn Electronics Ltd.) 35円(同等品なら流用可) 1

 

●回路

ブレッドボードで実験するときの回路は次の通りです.回路図の画像をクリックすると,PDFファイルが表示されます.

 

●組み立て

上記の回路図に従って,ブレッドボード上に回路を組み立てます.マイコン・ボードや複合センサ,LCDは,あらかじめピン・ヘッダをはんだ付けしておいてください.組み立て後のようすを次に示します.

 

●第2部 第2章のトレーニング・ボードからの変更点

マイコン・ボードSAM E51 Curiosity Nano Evaluation Kitは,マイコンの一部端子が外部と接続されていません.そのため,第2部の例題を試すときは,一部の端子配置を変更しておきます.端子配置の変更に伴う修正は次の通りです.これらの変更設定済みのプロジェクト・ファイルは下記から入手できます.

ブレッドボード用のサンプル・プログラム

▼端子配置

マイコン・ボードSAM E51 Curiosity Nano Evaluation Kitは,マイコンの一部端子が外部と接続されていません.そのため,第2部の例題を試すときは,一部の端子配置を変更しておきます.変更が必要な端子は,次の通りです.

信号名 トレーニング・ボードの端子 SAM E51 Curiosity Nano Evaluation Kitの端子
LCDのRST信号 PA14 PA21
LCDのRS信号 PA15 PB31
半固定ボリューム抵抗POT1のADC入力 PB2(ADC0 AIN14) PB4(ADC1 AIN6)
半固定ボリューム抵抗POT2のADC入力 PB3(ADC0 AIN15) PB5(ADC1 AIN7)

▼MHCの設定

周辺モジュールとしてA-Dコンバータを使う場合は,ADC0ではなくADC1を使用してください.設定内容は本誌と同じです.

MHCでの端子設定は次の通りにします(Queue_Demoの場合).

▼プログラムの追記

A-Dコンバータに関する記述がある場合は,周辺モジュール名(ADC0→ADC1),端子名を変更してください.変更例は次の通りです(Queue_Demoのtask3.cの場合).

・A-Dコンバータの有効化

ADC0_Enable(); →  ADC1_Enable();

・POT1のA-D変換

ADC0_ChannelSelect(ADC_POSINPUT_AIN14, ADC_NEGINPUT_GND);
ADC0_ConversionStart();
while(!ADC0_ConversionStatusGet());
result = ADC0_ConversionResultGet();
Potent.mes.pot1 = (3.3 * result) / 4095;

ADC1_ChannelSelect(ADC_POSINPUT_AIN6, ADC_NEGINPUT_GND);
ADC1_ConversionStart();
while(!ADC1_ConversionStatusGet());
result = ADC1_ConversionResultGet();
Potent.mes.pot1 = (3.3 * result) / 4095;

・POT2のA-D変換

ADC0_ChannelSelect(ADC_POSINPUT_AIN15, ADC_NEGINPUT_GND);
ADC0_ConversionStart();
while(!ADC0_ConversionStatusGet());
result = ADC0_ConversionResultGet();
Potent.mes.pot2 = (3.3 * result) / 4095;
Potent.mes.kind = ‘V’;

ADC1_ChannelSelect(ADC_POSINPUT_AIN7, ADC_NEGINPUT_GND);
ADC1_ConversionStart();
while(!ADC1_ConversionStatusGet());
result = ADC1_ConversionResultGet();
Potent.mes.pot2 = (3.3 * result) / 4095;
Potent.mes.kind = ‘V’;

 

 

■関連リファレンス

本誌で参照している各種リファレンスへのリンクを次に示します.

※本誌でhttps://interface.cqpub.co.jp/magazine/202104/を参照するように記載されている箇所です.

 

●第2部 第1章

▼FreeRTOSでカスタマイズできる機能や構成などの設定項目(本誌p.49)

FreeRTOSConfig.hの主な設定項目

 

●第2部 第2章

▼SPI接続の128×160ドットLCD(ST7735S/ST7735B搭載タイプ)用ライブラリが提供する関数(本誌p.53)

colorlcd_lib.cが提供するライブラリ関数

▼温湿度,気圧センサBME280制御用ライブラリが提供する関数(本誌p.54)

BME_spi.cが提供するライブラリ関数

▼Wi-FiモジュールESP-WROOM-02の主要なATコマンド(本誌p.54)

ESP-WROOM-02の主要なATコマンド

▼トレーニング・ボードの各種設計データ(本誌p.55)

ダウンロード・データのページ

 

●第2部 第3章

▼マルチタスクLチカのサンプル・コード(本誌p.65)

ダウンロード・データのページ

 

●第2部 第4章

▼第2部第4章 表2で紹介している以外の主なタスク制御用のAPI関数(本誌p.68)

その他のタスク制御用API関数

▼キュー・バッファ制御用の主なAPI関数(本誌p.71)

キュー・バッファ制御用のAPI関数

▼割り込み処理関数の中で使える主なAPI関数(本誌p.77)

割り込み処理の中で使えるAPI関数

▼セマフォを管理制御するための主なAPI関数(本誌p.79)

セマフォ制御用API関数

▼ミューテックスによる排他制御用の主なAPI関数(本誌p.81)

ミューテックス制御用API関数

▼タスク通知を実装するための主なAPI関数(本誌p.85)

タスク通知用のAPI関数

▼ストリーム・バッファで使う主なAPI関数(本誌p.86)

ストリーム・バッファ用API関数