
実習・Armマイコン内蔵ペリフェラルを活用するためのC++プログラミング
実習・Armマイコン内蔵ペリフェラルを活用するためのC++プログラミング
|
![]() ![]() |
【開催日】2025年5月2日(金) 10:00-17:00 1日コース
【セミナNo.】ES25-0020 【受講料】29,700円(税込)
【会場】東京・巣鴨 CQ出版社セミナ・ルーム [地図]
【セミナNo.】ES25-0020 【受講料】29,700円(税込)
【会場】東京・巣鴨 CQ出版社セミナ・ルーム [地図]

このセミナは,従来Mbedをプログラム開発環境として利用していたセミナを,Keil Studio Cloud(注) を利用するように内容を改変したものである.
マイコンのプログラミングでやっかいな点の一つが,汎用入出力(GPIO)やタイマなどマイコンに内蔵されているペリフェラルのプログラミングである.Keil Studio Cloudでは内蔵ペリフェラルを使うため,C++から使えるライブラリ(以下,「ライブラリ」)が充実しており,使いたいペリフェラルの内部構成などを知らなくても,ペリフェラルを使うプログラムを開発できる.一方で,ライブラリは汎用性を重視しているため,小回りがきかないという問題点もある.
一例を挙げれば,Keil Studio Cloudではタイマ割り込みを使うためのライブラリが提供されているが,これを使ってステッピング・モータの回転速度を滑らかにコントロールするようなプログラムをうまく実現できない.その原因は,タイマ割り込みの時間間隔を変更しようとすると,タイマが再度初期化されることにある.
そこでこのセミナでは,ライブラリを使いつつ,ペリフェラルのレジスタに対する直接の書き込み/読み出しを併用して,ライブラリのみを使ったプログラムを越えるようなプログラムを開発する手法について解説する.さらに,そのプログラムをライブラリにする際に,C++のクラスとして作る方法についても解説する.
(注)Keil Studio CloudはMbedの後継の開発環境で,Mbedと同様に,プログラム開発環境をインストールすることなくWebブラウザから使えるクラウドベースの開発環境です.もちろん無償で使うことができ,コードサイズの制限もありません.
※ このセミナでは,事前にブレッド・ボード上に組み立てた教材を使います.そのため,電子回路組立の経験がない方でも参加できます.
※ マイコン・ボード Nucleo-F446RE,実装済みのブレッド・ボード,講師作成のプログラム,およびセミナで作成したプログラムはお持ち帰り可能です.
●このセミナでは割引プランがございます…マイコン・ボードを多数お持ちの方はご検討ください
割引プランをご希望の方は,申込後,『割引プランで受講希望』 とメールでご返信ください.マイコン・ボードは事務局貸し出し品を使用して受講いただきます.受講料金は\3,000割引【26,700円(税込)】でご参加いただけます.
マイコンのプログラミングでやっかいな点の一つが,汎用入出力(GPIO)やタイマなどマイコンに内蔵されているペリフェラルのプログラミングである.Keil Studio Cloudでは内蔵ペリフェラルを使うため,C++から使えるライブラリ(以下,「ライブラリ」)が充実しており,使いたいペリフェラルの内部構成などを知らなくても,ペリフェラルを使うプログラムを開発できる.一方で,ライブラリは汎用性を重視しているため,小回りがきかないという問題点もある.
一例を挙げれば,Keil Studio Cloudではタイマ割り込みを使うためのライブラリが提供されているが,これを使ってステッピング・モータの回転速度を滑らかにコントロールするようなプログラムをうまく実現できない.その原因は,タイマ割り込みの時間間隔を変更しようとすると,タイマが再度初期化されることにある.
そこでこのセミナでは,ライブラリを使いつつ,ペリフェラルのレジスタに対する直接の書き込み/読み出しを併用して,ライブラリのみを使ったプログラムを越えるようなプログラムを開発する手法について解説する.さらに,そのプログラムをライブラリにする際に,C++のクラスとして作る方法についても解説する.
(注)Keil Studio CloudはMbedの後継の開発環境で,Mbedと同様に,プログラム開発環境をインストールすることなくWebブラウザから使えるクラウドベースの開発環境です.もちろん無償で使うことができ,コードサイズの制限もありません.
※ このセミナでは,事前にブレッド・ボード上に組み立てた教材を使います.そのため,電子回路組立の経験がない方でも参加できます.
※ マイコン・ボード Nucleo-F446RE,実装済みのブレッド・ボード,講師作成のプログラム,およびセミナで作成したプログラムはお持ち帰り可能です.
●このセミナでは割引プランがございます…マイコン・ボードを多数お持ちの方はご検討ください
割引プランをご希望の方は,申込後,『割引プランで受講希望』 とメールでご返信ください.マイコン・ボードは事務局貸し出し品を使用して受講いただきます.受講料金は\3,000割引【26,700円(税込)】でご参加いただけます.
●対象聴講者
・マイコンを使ってみたいが,ハードルが高いと思っている方.
・マイコンのペリフェラルを使うプログラムをC++で簡単に作りたいと思っている方.
・ライブラリでは提供されていない機能を使って,ペリフェラルを使うプログラムを作りたい方.
・Keil Studio Cloudではペリフェラルを自由に使えないと思い,他のプログラム開発環境に乗り換えを検討している方.
・ペリフェラルを使う自作のライブラリをC++のクラスとして作りたい方.
●講演の目標
・マイコンの基本的なプログラムをつくれるようになること.
・ペリフェラルの機能の中で,Keil Studio Cloudライブラリでは直接サポートされていない機能を使えるようになること.
・Keil Studio Cloudライブラリではサポートされていないマイコン内蔵のペリフェラルを使えるようになること.(たとえば,Nucleo-F446は多数のタイマを内蔵しているがライブラリは一部のタイマしか使っておらず,多くのタイマが遊んでいるので,それらを有効に使えるようになること.)
・ペリフェラルを使う自作のライブラリをC++のクラスとして作れるようになること.
●内容
1.マイコンを使うための第1歩
・セミナで使うマイコンの構成
・クラウド・ベースのプログラム開発環境Keil Studio Cloud
・「Lチカ」のプログラム
・公式クラスライブラリとC++
・printfとターミナル・ソフト
2.GPIO出力によるマルチカラーLEDの駆動回路とプログラミング
・GPIO出力部の構成
・外付けマルチカラーLEDの点灯/消灯のプログラム
・GPIOのレジスタに対する直接の書き込み/読み出しの方法
・ペリフェラルとビットバンド領域
3.GPIO入力回路とプログラミング
・GPIO入力部の構成
・外付けスイッチを利用するプログラミング
4.割込み処理とタイマのプログラミング
・割込み処理プログラミングの基礎
・割り込み処理で使うCMSIS(Arm社Cortex Mソフトウェア規格)の関数
・内蔵タイマを使うタイマ割込みのプログラミング
・割込み優先順位と多重割込み
5.シリアル・インターフェース(I2C)の使い方とセンサ,表示器のプログラミング
・I2C方式とSPI方式の比較
・I2Cによるデータ転送手順とプログラミング
・I2C利用のLCDキャラクタ表示器のプログラミング
・I2C利用の温度センサのプログラミング
6.RCサーボ・モータとステッピング・モータ
・RCサーボ・モータ駆動のプログラミング
・動作中のタイマ周期の変更方法
・ステッピング・モータ駆動のプログラミング
7.アナログ信号入出力のプログラミング
・A-D変換器を効率よく使うためのプログラミング
・公式ライブラリを使わないプログラミング
・ポーリング方式と割り込み方式のプログラミング
・高速(標本化間隔:1μs)A-D/D-A変換のプログラミング
●インターフェース回路を用いた実習のようす
マイコン・ボードに接続したインターフェース回路
※ 写真をクリックすると拡大できます
●割込み処理とタイマのプログラミングの学習例
マイコン内蔵タイマのカウントアップと他のレジスタとの関係を調べている様子
●アナログ信号入出力のプログラミングの学習例
標本化間隔を1μsに設定してA-D変換器で標本化した100kHzの正弦波をそのままD-A変換器から出力している様子(オシロスコープは32回の平均を行うモードに設定)
※ 画像をクリックすると拡大できます
●参考文献
・三上 直樹; Mbedを使った電子工作プログラミング,工学社,2020年.
・マイコンを使ってみたいが,ハードルが高いと思っている方.
・マイコンのペリフェラルを使うプログラムをC++で簡単に作りたいと思っている方.
・ライブラリでは提供されていない機能を使って,ペリフェラルを使うプログラムを作りたい方.
・Keil Studio Cloudではペリフェラルを自由に使えないと思い,他のプログラム開発環境に乗り換えを検討している方.
・ペリフェラルを使う自作のライブラリをC++のクラスとして作りたい方.
●講演の目標
・マイコンの基本的なプログラムをつくれるようになること.
・ペリフェラルの機能の中で,Keil Studio Cloudライブラリでは直接サポートされていない機能を使えるようになること.
・Keil Studio Cloudライブラリではサポートされていないマイコン内蔵のペリフェラルを使えるようになること.(たとえば,Nucleo-F446は多数のタイマを内蔵しているがライブラリは一部のタイマしか使っておらず,多くのタイマが遊んでいるので,それらを有効に使えるようになること.)
・ペリフェラルを使う自作のライブラリをC++のクラスとして作れるようになること.
●内容
1.マイコンを使うための第1歩
・セミナで使うマイコンの構成
・クラウド・ベースのプログラム開発環境Keil Studio Cloud
・「Lチカ」のプログラム
・公式クラスライブラリとC++
・printfとターミナル・ソフト
2.GPIO出力によるマルチカラーLEDの駆動回路とプログラミング
・GPIO出力部の構成
・外付けマルチカラーLEDの点灯/消灯のプログラム
・GPIOのレジスタに対する直接の書き込み/読み出しの方法
・ペリフェラルとビットバンド領域
3.GPIO入力回路とプログラミング
・GPIO入力部の構成
・外付けスイッチを利用するプログラミング
4.割込み処理とタイマのプログラミング
・割込み処理プログラミングの基礎
・割り込み処理で使うCMSIS(Arm社Cortex Mソフトウェア規格)の関数
・内蔵タイマを使うタイマ割込みのプログラミング
・割込み優先順位と多重割込み
5.シリアル・インターフェース(I2C)の使い方とセンサ,表示器のプログラミング
・I2C方式とSPI方式の比較
・I2Cによるデータ転送手順とプログラミング
・I2C利用のLCDキャラクタ表示器のプログラミング
・I2C利用の温度センサのプログラミング
6.RCサーボ・モータとステッピング・モータ
・RCサーボ・モータ駆動のプログラミング
・動作中のタイマ周期の変更方法
・ステッピング・モータ駆動のプログラミング
7.アナログ信号入出力のプログラミング
・A-D変換器を効率よく使うためのプログラミング
・公式ライブラリを使わないプログラミング
・ポーリング方式と割り込み方式のプログラミング
・高速(標本化間隔:1μs)A-D/D-A変換のプログラミング
●インターフェース回路を用いた実習のようす

マイコン・ボードに接続したインターフェース回路
※ 写真をクリックすると拡大できます
●割込み処理とタイマのプログラミングの学習例

マイコン内蔵タイマのカウントアップと他のレジスタとの関係を調べている様子
●アナログ信号入出力のプログラミングの学習例

標本化間隔を1μsに設定してA-D変換器で標本化した100kHzの正弦波をそのままD-A変換器から出力している様子(オシロスコープは32回の平均を行うモードに設定)
※ 画像をクリックすると拡大できます
●参考文献
・三上 直樹; Mbedを使った電子工作プログラミング,工学社,2020年.
【受講者が持参するもの】
・ 作成したプログラムなどを持ち帰るためのUSBメモリなど.
・ 作成したプログラムなどを持ち帰るためのUSBメモリなど.
【講師】
三上 直樹 氏〔職業能力開発総合大学校 名誉教授 〕
1977~1987年北大助手.1987~2017年職業能力開発総合大学校講師,助教授,教授.工学博士.「はじめて学ぶディジタルフィルタと高速フーリエ変換」などの書籍やインターフェース誌,トランジスタ技術誌の記事多数.ディジタル信号処理を専門とする.
三上 直樹 氏〔職業能力開発総合大学校 名誉教授 〕
1977~1987年北大助手.1987~2017年職業能力開発総合大学校講師,助教授,教授.工学博士.「はじめて学ぶディジタルフィルタと高速フーリエ変換」などの書籍やインターフェース誌,トランジスタ技術誌の記事多数.ディジタル信号処理を専門とする.
