【ゼロから始めるプログラミング】ということで
2024年の年明けにPythonにチャレンジしてみて少しずつ抵抗がなくなってきました
今回はESP32というマイコンとミニディスプレイを買ってみたのでC言語?に挑戦してみます
なんとなく思いついたことをやってみているだけなので、いつまで続くかわからないですが備忘録がてら記していこうと思います
書き始めたら長編になってしまったのですがお付き合いください

Pythonに触ってみて、なんとなくAIに聞きながらならエラーも解決でき、動くプログラムを書けるので調子に乗って
ESP32というマイコンとミニディスプレイを買ってみました
触るまで知りませんでしたがESP32というマイコンは一般的にはPythonではなくC言語で動かすようです
いろんな方が遊び方を解説してくれているのでなんとか遊べそうです
とはいえゼロからスタートの初心者なので色々躓きました
躓いた所をメモしてるので初学者には役立つと信じています
今回やってみたことは
- 環境を整える
- ディスプレイを接続する
- WiFi経由で時間を取得しディスプレイに表示させる
①環境を整える
まず今回購入したESP32とは
Espressif Systems社が開発した多機能なマイクロコントローラユニット(MCU)で
IoT(モノのインターネット)デバイスの開発に広く使用されているそうです。
主な特徴:
デュアルコアプロセッサ
Wi-FiとBluetooth LE(低消費電力)の内蔵
豊富なGPIOピン
低消費電力設計
利用例:
産業用IoTセンサー
ネットワーク接続された監視カメラ
自動車のテレマティクスシステム
まずは上述のサイトを参考に環境を整えていきました
Arduino IDEで検索し、公式サイトのダウンロードページからPCのOSに合ったものをダウンロードします

①-2 各種設定
まずはじめに英語だったので焦りましたが、ファイル>環境設定 から

言語を日本語に設定し
下部のボードマネージャURLを追加のところに
とコピペして、ボード情報を取得できるようにするそうです

①-3 ESP32のパッケージをインストール
ツール>ボード>ボードマネージャ から

ESP32を検索し、インストールします

あとはボードをUSBでPCに繋いで、、
上述のサイトではこれで設定できていそうだったのですが私の場合は追加の設定が必要でした
なぜかというとPCがESP32を認識しておらずデバイスマネージャにはビックリマークが出ていました

調べるとやはり同様の躓きをされている方がいて参考にさせてもらいました
ビックリマークのついている「CP2102N」を検索するとSILICON LABSという会社でドライバーを配布してくれているので

ダウンロードして解凍フォルダ内の

「CP210xVCPInstaller_x64.exe」を開いてインストールするとビックリマークが消えました

これでようやくESP32を認識してくれたのでAruduinoIDEで
ボード選択窓の▼からボードの選択とポートの選択ができました

②ディスプレイを接続する
続いてミニディスプレイにESP32から出力できるように準備します
こちらも先駆者の方がいるので参考に設定していきます
ツール>ライブラリを管理 から

ミニディスプレイの「SH1106」で検索しライブラリをインストールします

あとはファイル>スケッチ例>Adafruits SH1106>oled を選択してロード

参考ページの情報からPIN12,14をそのまま使用するとエラーが発生したとあり
SDAをpin27, SCLをpin26とすることで解決したとあるのでそのように修正します

あとは物理的に配線をして
<ピン構成:ディスプレイ側→ESP32>
VDD→3V3
GND→GND
SCK→26PIN
SDA→27PIN

Arduino IDEでコードを検証してから、ボードに書き込むと

ディスプレイが繋がり模様が映し出されました

③WiFi経由で時間を取得しディスプレイに表示させる
最後にWiFi経由で5秒毎にリセットして現在時刻を取得するコードを参考にミニディスプレイに表示できるようにアレンジしました
といっていもコードを書けないのでAIに依頼しました
参考ページのコードを打ち込んで修正してもらいました

当然1回ではうまくいかずエラーの内容を聞きながら修正してもらいました

(ピンの位置は実際に使用するピンに合わせて修正ください)
これで動かしてみると

ディスプレイに時間が表示されました
振り返り
今回は、マイコンを使ってミニディスプレイに時間を表示させるという、シンプルなプロジェクトに挑戦してみました
このプロジェクトを通して、プログラミングの基礎的な知識だけでなく、ハードウェアとの連携の楽しさ、そしてエラーを解決していく過程で得られる達成感も味わえました
夏休みの自由研究とかにはもってこいな教材ですね
初心者の私にとっては、躓いた問題を一つずつ解決していくことで、プログラミングスキル(AI活用スキル?)が確実に向上していくように感じました
次にやりたいこと
プログラミングの世界は広大で、無限の可能性を感じました
このプロジェクトを足がかりに、さらなる挑戦を楽しんで見たいと思います
植物への水やり自動化など先人たちに習って試していき
いずれはオリジナルな遊び方ができるようになりたいです
モチベーションが続く限り学んで躓いた所を残していけたらと思います
これから始める方の参考になれば幸いです
ESP32やディスプレイはAmazonでも安価に購入できるので試してみてください