概要
STM32F103RBを使った電子サイコロです・・・。
ChatGPTを駆使しながら・・・
サイコロの目を表現するLED7個と圧電ブザーを鳴らすための合計8本のGPIO端子を使います。
ユーザーボタンを押すとサイコロが回転し始め、回転が時間とともにだんだんとゆっくりになっていき、最後にサイコロの目が決定されます。サイコロの回転に合わせて圧電ブザーがピッピッピと鳴り、最後にサイコロの目が確定したときに少し長めに「ピー」と鳴ります。
前提知識
STM32F103RB, Nucleo, Keil Studioなどの開発環境の整備には以下の記事を参考にしてください。
回路
今回はブレッドボードを使用して基盤作成やハンダゴテでの作業は無いようにしています。
LED1~7 発光ダイオード
R1~7 抵抗33Ω
SPK1 圧電ブザー
部品
ブレッドボード、ジャンパーワイヤ、STM32 Nucleo Boardの他に使用した部品です。秋葉原で秋月電子電商、千石電商、ラジオデパート、ラジオセンターあたりを散歩がてらまわって買ってきました。LEDは10こ入り120円、圧電ブザー150円、抵抗(33Ω)100本入り180円くらいだったと思います。
ピン配置
今回はCN10側のピン8本を使用します。
PA_6, PA_7, PB_6, PC_7, PA_9, PA_8, PB_10の7本をサイコロ用に、PB4をブザー鳴動用に使用します。これは、CN10コネクタの左側列の7番目から14番目までの8本が直列に並んでいるので使いやすい配列だと思うので採用しました。
GNDに関しては、前回のプロジェクトで使用したCN7側のものを使いましたが、CN10コネクタの左側列の5ピン目などでも良いと思います。
サンプルソース
画層をクリックするか下記のファイル名をクリックするとサンプルソースをダウンロードできます。
finalcode_main_cpp.zip
ChatGPTを活用
人工知能のChat GPTは、STM32F103のKeil StudioでのC言語のプログラミングを完璧にサポートしてくれましたので、わからない処理やGPIOピンの利用のしかたなどはすべてChat GPTを使ってソースコードを生成し、それを今回作成するプログラム内で使いやすいように自分でアレンジして使いました。
また、コンパイルエラーなどが出てわからなくなったときは、ユーザーフォーラムの書き込みに助けられました。
基板にハンダ付け
ブレッドボード上で動くことを確認して制御ソフトのデバッグも終わったら、さっそく秋葉原の千石電商さんと秋月電子さんへ行ってユニバーサル基板やら配線用のコードやらを買ってきてLEDと抵抗と圧電ブザーをユニバーサル基板に実装しました。