エントリー

カテゴリー「Arduino・AVR」の検索結果は以下のとおりです。

ページ移動

ESP32-C3 0.42 OLED

YouTubeで紹介されていた「ESP32-C3 0.42 OLED」が面白そうだったのでAliexpressで購入

IMG_20251101_091425.jpg

購入トラブル

送料無料(¥1,500以上)にするため3個注文したところ2個しか送ってこなかったため連絡板でクレームを出したが,どうやら現在のクレーム方法でなかったようで,解決までひと月も掛かってしまった

現在では返品を要求するとAliexpressから(日本語で)提案がきて発送元の業者間と調整することになるようだ(交渉は返品ボタンから開始となる)

今回は1個分の返金ということで終了

やはり中華は要注意ではあるが,Aliexpressも今では1W以内で送ってくるし問題があれば返品も可能なのでAmazon経由の中華送付(数か月掛かる)より良くなった

商品

袋を開けるとケースには本体とピンが入っている

IMG_20251109_101503.jpg

0.42インチのOLEDはかなり小さいが,これってコンシューマ向けで購入できるディスプレイ付きコンピュータとしては最小サイズなのかも

IMG_20251109_101540.jpg

Type-Cから電源を印加すると確認用だと思われるプログラムが動作した

IMG_20251109_101838.jpg

仕様

IMG_20251109_101604.jpgIMG_20251109_101549.jpg

参考:https://emalliab.wordpress.com/2025/02/12/esp32-c3-0-42-oled/

動作確認用スケッチ:https://spotpear.com/index/study/detail/id/973.html

 

少し動作させてみただけで,何に利用できるか考え中

ESP32-CAMの利用方法を模索

ESP32-CAMを動作させたのだけど,3セット(Amazon)もあるので利用できないか考えるため調べてみた

IMG_20230731_115244.jpg

ハードウェア
  • 既にモジュール化されているので大きな変更はできない
  • 接続I/Oはカメラ,microSDスロット,高輝度LEDである
  • CPUはESP32SでEPS32と同じと考えてよく,おそらくI2CとSPIには不具合があるかと思われる
  • GPIOはあるが全て使用済なので利用は困難でSPIに接続されている4ピンをSPI未使用にする(microSDは不可となる)ことでOUTPUTピンとして利用できそう
  • モジュールから高輝度LED以外は取り外すことは困難
ソフトウェア

モジュール構成からカメラ機能を主とした利用形態しかなく追加できるI/Oもかなり限定されそうだ

カメラ機能が主なので元となるスケッチはサンプルのCameraWebServerが優秀で良いためプログラムを調べてみるとHTML(camera_index.h)がgzip形式になっていることが判る

HTMLソースが編集できないと画面の変更追加ができないのでネットで情報を得てみると最終的にgzip形式に変換する方法は判った

しかしわざわざgzip形式にすることもないのでそのまま編集できるように改造

①まずはサンプルを動作させてブラウザでHTMLソースを退避しヘッダーファイル(index_ov2640.h等,以下のように)にする

const uint8_t index_ov2640_html[] = R"=====(<!doctype html>
<html>
<head>
<meta charset="utf-8">


(省略)

</body>
</html>)=====";

size_t index_ov2640_html_len = sizeof(index_ov2640_html)-1;

橙色部分が前後に追加したテキスト

index_ov2640なのはスケッチで使用されているESP32-CAMのカメラタイプ名だから

②app_httpd.cppのcamera_index.hを外しindex_ov2640.hを使用

③同じくapp_httpd.cppのesp_err_t index_handler()を編集

(旧)
static esp_err_t index_handler(httpd_req_t *req)
{
httpd_resp_set_type(req, "text/html");
httpd_resp_set_hdr(req, "Content-Encoding", "gzip");
sensor_t *s = esp_camera_sensor_get();
if (s != NULL) {
if (s->id.PID == OV3660_PID) {
return httpd_resp_send(req, (const char *)index_ov3660_html_gz, index_ov3660_html_gz_len);
} else if (s->id.PID == OV5640_PID) {
return httpd_resp_send(req, (const char *)index_ov5640_html_gz, index_ov5640_html_gz_len);
} else {
return httpd_resp_send(req, (const char *)index_ov2640_html_gz, index_ov2640_html_gz_len);
}
} else {
log_e("Camera sensor not found");
return httpd_resp_send_500(req);
}
}

(新)
static esp_err_t index_handler(httpd_req_t *req)
{
httpd_resp_set_type(req, "text/html");
httpd_resp_set_hdr(req, "Content-Encoding", "identity");
sensor_t *s = esp_camera_sensor_get();
if (s != NULL && s->id.PID == OV2640_PID) {
return httpd_resp_send(req, (const char *)index_ov2640_html, index_ov2640_html_len);
}
log_e("Camera sensor not found");
return httpd_resp_send_500(req);
}

汎用ではないのでESP32-CAMのindex_ov2640_htmlだけとなる

まずはUI部の対策のみ施した

ESP32のIDE設定記録

ESP32の設定を記録していなかったので追加

IoT Exprewss

トラ技が考案したWi-FI ArduinoボードでESP32モジュールをArduinoのPinで使える

IMG_20230731_115607.jpg

追加のボードマネジャーはURL指定

SS20230803_001.png

ボードはESP32>ESP32 Dev Moduleとなる

SS20230803_002.png

USBポートの設定のみで他はデフォルトで問題なし

SS20230803_003.png

その他

  • プログラム書き込み時は①Reset+BootボタンON>②Reset OFF>③Boot OFF>④書き込み>⑤Resetで実行
  • ボードのLEDはIO2(PIN2)に接続
ESP32-CAM

ESP32SにカメラとSDスロットがセットになっているボード

IMG_20230731_115332.jpg

プログラム書き込み用のシリアルは付いてないのでFTDIなどを繋ぐ

参考:https://www.circuitschools.com/how-to-program-upload-the-code-to-esp32-cam-using-arduino-or-programmer/

IMG_20230731_133509.jpg

ボードはESP Wrover Moduleとなる

SS20230803_011.png

  • Flash Frequency: “80MHz”
  • Flash Mode: “Q10”
  • Partition Scheme: “Huge APP (3MB No OTA/1 MB SPIFFS)”
  • Core Debug Level: “None”
  • Upload Speed: “921600”

Upload Speedは921600bpsが早くて良い

スケッチサンプルからESP32>Camera>CameraWebServerを読み込んでカメラをテスト

SS20230803_012.png

スケッチのカメラモジュールをCAMERA_MODEL_AI_THINKERに,WiFiのssid,passwordを設定

#define CAMERA_MODEL_AI_THINKER // Has PSRAM

const char* ssid = "******";
const char* password = "******";

コンパイルして書き込み

SS20230803_013.png

解像度を上げてもヌルヌル動作する

SS20230803_014.png

温度管理を追加し3Dプリンタ用のカメラとして使いたいところだが,I2Cが省かれているのでSPIを使うとIO-Pinが不足するので考え中

ピン配置

https://lastminuteengineers.com/esp32-cam-pinout-reference/

https://randomnerdtutorials.com/esp32-cam-ai-thinker-pinout/

(追加)

  • GPIO12~GPIO15の4PinはμSDがSPIで使用している
GPIO12: MISO
GPIO13: MOSI
GPIO14: CLK
GPIO15: CS(microSD Used)
  • SPIで追加デバイスは他のピンは全て使用されているのでCSピンが割り当てられないので困難(GPIO4のLEDを外す方法はある)
  • SPIを使わなければGPIO12~GPIO15を通常I/Oピンとして使用は可能なようだ

ArduinoIDEでFTDIチップでの書き込みエラー

たまたま秋月電子のArduinoキットのボードに都合のよいシールドが載っていたので回路を組んでスケッチを書き込もうとしたらエラーとなってしまった

(以下はAuduino Pro Miniのエラー画面だが同じ)

SS20230604_008.png

「avrdude: ser_open(): can't open device "\\.\COM8": ?A?N?Z?X??????????????B」

Windows10時に同じ現象となったことがあり記憶ではFT232RLドライバの問題で,FTDIの最新ドライバーでは通信は問題ないのだがArduinoIDEからのスケッチ書き込みはエラーになってしまう

対策としては古いドライバーにすればよくWindows11に新規にアップした際に最新のドライバーになってしまったようだ

そこで同じように古いドライバーにしたのだが結果は変わらず嵌ることになる

FT232RL使用ボード

FT232RL経由で書き込むボードが多いだけでなくフューズビットやブートローダー書き込み装置で使用しているため重要なので解決しないとならない

(秋月のキット)

IMG_20230604_121122.jpg

(ProMini 5V/3.3V版)

IMG_20230604_121151.jpg

(Uncompatino)

IMG_20230604_121220.jpg

ドライバの完全削除

Windowsの問題だといえるのだが簡単にドライバを削除することができない

削除したと思っていても一度セットアップされたドライバはほとんどがディスクにストックされプラグ&プレイによって復活してしまう

更に今ではディスク上になかったらネットからダウンロードして適用してしまうから困ったもんだ

いろいろやってみたが以下の方法で完全に削除することができた

①デバイスマネージャを開いて対象のデバイスのプロパティを開く

SS20230604_001.png

②デバイスのアンインストールを実行

SS20230604_002.png

③「このデバイスのドライバーを削除しようとしました」のチェックボックスをONしてアンインストールを実行

SS20230604_004.png

これで削除できれば良いが完全に削除されないことが多い

削除されたかどうかは再度プラグ&プレイで確認(ドライバの適用がディスクかネットか判断する必要はあるが完全削除なら適用されない)

④③を実行しないで「ドライバ別デバイス」を実行して削除する方が確実

SS20230604_005.png

⑤デバイスマネージャが以下のようになる

SS20230604_006.png

⑥対象デバイスの「.inf」を選択して「ドライバーの削除」を実行

SS20230604_007.png

⑦バージョン別に多くのドライバがあればプラグ&プレイで何度か繰り返すことで全部削除できる

結果とドライバ

完全解決ではないが回避はできるようにはなった

どうやらIDEの方にも問題がありそうで「arduino-2.1.0」では新旧どのドライバーでも書き込みエラーとなる

「arduino-1.8.13」だと1つ前のドライバで書き込み成功

SS20230604_009.png

ドライバ:https://ftdichip.com/drivers/vcp-drivers/

・2021/07/05 2.12.36.4(最新ドライバ)

不可

・2017/08/16 2.12.28.0(1つ前,DL可)

arduino-2.1.0は不可

arduino-1.8.13で書き込み成功

・2015/07/10 2.12.6.0 (更に1つ前)

arduino-2.1.0は不可

arduino-1.8.13で書き込み成功

情報

この件についてネットで検索しても不思議と出てこない

海外サイトで最新ドライバは問題あるとの情報はあったが対策はない

FTDIドライバを完全に削除する(FTClean)があった(https://www.hdl.co.jp/USB/ftcln/)→ 使用は自己責任で

ページ移動

ユーティリティ

検索

エントリー検索フォーム
キーワード

新着コメント

Re:NOAA受信システム復旧
2025/06/11 from admin
Re:NOAA受信システム復旧
2025/06/11 from とおりすがり
Re:SDRplay社RSP1クローンを購入
2025/05/25 from 匿名希望
Re:Mozilla FirefoxではNHKプラスを再生できない件
2025/05/09 from Donabeyaki
Re:ATS-25を作製する
2025/03/23 from kazu

過去ログ

Feed