投稿

ラベル(VSCode)が付いた投稿を表示しています

ESP32をBluetoothに繋げる

イメージ
ESP32をBluetoothに繋げる ESP32をBluetoothに繋げる Bluetoothシリアルを試してみます。 Bluetoothのシリアル接続は SPP (Serial Port Protocol) と呼ばれます。 ESP32にはSPPのホストになってもらい、スマートフォンから接続してみます。 SPPはBluetooth Classicに属します。 Classicとは別にBluetooth BLE (Bluetooth Low Energy) と呼ばれる規格があるのですが、こちらは新しい規格でBluetoothでお馴染みのペアリング操作などが不要且つ低電力で動作することを目的とした規格です。 Classicはヘッドフォンやキーボードなど基本的に同じみのものです。SPPはClassicにカテゴライズされます。 プログラム 単純にSPPサーバーとして起動、接続されたら送信されてきたデータをエコーバックするだけの単純なものです。 最初からやります。 VSCode起動後にF1 (またはCtrl+Shift+P) でコマンドパレットを開き、 ESP-IDF: New Project を入力/選択します。 以下の画面になるのでProject NameとProject directory (保存先にプロジェクト名でディレクトリが作成されます) を入力します。 他の項目は特に弄らなくてよいです。 Choose Templete ボタンで作成です。 テンプレートを選択する画面になるので template-app を選択して Create project using template template-app をクリックします。 次にBluetoothを使うために設定があります。 VSCodeの画面下のツールバーから歯車マークをクリックしてmenuconfigを起動します。 Bluetooth を探してチェックします。 次に Bluedroid Options を探して以下をチェックします。 次に Controller Options を探して以下のように変更します。 最後に Sava ボタンで保存です。 プログラムソースは以下になります。 /** * Bl...

ESP32にmicroSD接続

イメージ
ESP32にmicroSD接続 ESP32にmicroSD接続 ESP32にmicroSDカードを接続します。 データやHTMLなどストレージがあった方が便利ですしね。 また 秋月電商 さんで調達しました。 買ったのは以下になります。 マイクロSDカードスロットDIP化キット 300円 マイクロSDカード 16GB 680円 後は10kΩの抵抗を2個ですね。 流石に抵抗一個とかは買えないので100本入りとかになっちゃいますけど。 配線 以下を参考にESP32と接続してください。 microSD SPI ESP32 DAT2 - - CD/DAT3 CS GPIO(16) CS CMD DI GPIO(17) MOSI VDD VDD VDD33 CLK SCLK GPIO(18) CLK VSS VSS GND DAT0 DO GPIO(19) MISO DAT1 - - SWA - - SWB - - VDD(3.3V)とGND以外は4本接続すればいいだけです。 CLKとCSは10kΩの抵抗でプルアップしておくと安定するようです。 ESP32のGPIOは16~19を指定してますが、これはプログラムで変更できるのでGPIOならどのピンでも構いません。 こんな感じになりました。 プログラム ESP-IDFのサンプルから適当なものを選んで動作確認だけしてみます。 F1 (またはCtrl+Shift+P)でコマンドパレットを開いて “ ESP-IDF: Show Examples Projects ” を選択。 一覧から protocols - http_server - file_serving を選択。 menuconfig を開いて HTTP file_serving example menu の Use SD card for file storage をチェックを入れる、そして Use SDMMC host のチェックを外します。 そうすると SD card pin configuration (SPI) の項目が出てきますので、以下のよう...

AmazonSAMのデバッグ

AmazonSAMのデバッグ AmazonSAMのデバッグ VSCodeでAmazonSAMのデバッグする場合は「構成の追加…」で AWS SAM:Debug Lambda Function Locally を選択すればlaunch.jsonを作ってくれてF5で実行できるのですが実行する度にコンテナ起動するので時間掛かります。 じゃあ以下でローカル実行してる時にデバッグしたい場合はどうするのかという話です。 $ sam local start-api デバッグポートオプション付きで起動する “-d"または”–debug-port"オプションを使用します。 このオプションを付けるとコンテナがデバッグモードで起動されます。 $ sam local start-api --debug-port 5555 launch.jsonにアタッチ用の設定を追加する 以下を追加します。 "version" : "0.2.0" , "configurations" : [ { "type" : "node" , "request" : "attach" , "name" : "Attach to SAM CLI" , "address" : "localhost" , "port" : 5555 , "localRoot" : "${workspaceRoot}/hello-world" , "remoteRoot" : "/var/task" , } , これでVSCodeからデバック実行するとSAMのコンテナに接続されます。 sam local start-api を実行した後必ず一度は接続してください。 デバックモードで起動してる場...

ESP32でデバッグ

イメージ
ESP32でデバッグ ESP32でデバッグ Lチカくらいならデバッガなしでもいけますが、ちょっとプログラムが大きくなると途端に苦しくなってくるのでデバッグできるものならやりたい。 という訳でVSCodeからESP32のデバッグをやってみました。 ESP32はJTAG対応になっています。JTAGはハードウェアをデバッグ/テストするための共通規格です。 なので安価にデバッグ環境が構築できます。 vscode-esp-idf-extension のTutorialsの3つ目に「 Debugging 」のリンクがあるので読みながら進めます。 ハードウェアの用意 ESP32だけではデバッグできません。別途デバッグ用のハードウェアが必要です。 とはいえそんなに高価なハードウェアじゃありません。 必要なものは 秋月電商 さんで全部揃いました。 FT2232D USBシリアル2ch変換モジュール 1,450円 USBケーブル USB2.0 Aオス-ミニBオス 1.5m A-miniB 170円 ブレッドボード EIC-301 300円 これだけです。これでデバッグできるようになるんですから買いです。 なぜかUSBケーブルが今一馴染みのないminiBなので注意です。 ちなみにFT2232Dで何故にデバッグできるのかですが、元々このチップがJTAG対応だからのようです。 ESP-IDFはデバッグに OpenOCD (Open On-Chip Debugger) というオープンソースを使っており、OpenOCDで推奨されているチップまたはボードが Debug Adapter Hardware に列挙されています。 この中の USB FT2232 Based の所に入ってました。 FT2232Dのドライバ更新 秋月のFT2232DをUSBケーブルでPCに繋ぐと2つのシリアルポートが追加されます。 この内片方のドライバを更新する必要があります。詳細は ここ です。 FT2232DをPCに接続しておきます。 Zadig をダウンロード/インストール。 Zadigを起動して、メニューの Options - List All Devices を選択します。 Dual RS23...

とりあえずLチカ

イメージ
とりあえずLチカ とりあえずLチカ Lチカ、LEDをチカチカ点滅させるヤツですね。皆やりますよね。 Amazonでブレッドボードを購入したのでやります。 あと以下のようなジャンパピンなんかも要りますね。買いました。 LEDと抵抗(330Ω)は 秋月電商 で一山いくらのものを購入。 VSCodeでプロジェクト作成 ESP-IDFにサンプルがあります。 F1 (またはCtrl+Shift+P)でコマンドパレットを開きます。 “ESP-IDF: Show Examples Projects” を入力してサンプルリストを出します。 その中からLチカの blink を選択します。 後はビルドしてフラッシュ書き込みするだけです。 詳細 ESP32にLED接続 サンプルソースを見ると細かいことはすっ飛ばしてGPIO5にLED出力が出てます。 ESP32のGPIOは直接LEDを駆動できるほどの電流(20~30mA)が流せるようなので直接繋げちゃいます。 ESP32のシルク印刷に「5」と書いているピンに330Ωの抵抗を繋げて 抵抗の先っぽにLEDのアノード繋げて LEDのカソードをESP32のGNDに繋げます こんな感じ 動かしてる所。 動画は HitPaw Edimakor という編集ソフトの無料版で作ってます。なんかすごく分かり易いかも。 ソース解説 非常に簡単でプログラム部分は main/blink_example_main.c だけです。 コメント部分や実行されない部分は省いてます。 # include <stdio.h> # include "freertos/FreeRTOS.h" # include "freertos/task.h" # include "driver/gpio.h" # include "esp_log.h" # include "led_strip.h" # include "sdkconfig.h" static const char * TAG = "example...

Welcomeとかあるじゃん

イメージ
Welcomeとかあるじゃん VSCodeのESP-IDFでWelcomeとかありますね F1 (またはCtrl + Shift + P) でコマンドパレット開きます。 “ESP-IDF: Welcome” を選択します。 ESP-IDF: Welcome そうすると以下の画面が出てきます。 ここの Quick actions から主要な機能に飛べるじゃないですか。 なんでコレを最初に紹介しないのか、 ドキュメント に書いてなかったような。 便利だし覚えるの楽だから今後はこれ使っていきます。

(真)ESP32の開発環境をVSCodeで作る

イメージ
(真)ESP32の開発環境をVSCodeで作る ESP32の開発環境をVSCodeで作る ESP-IDF のサイトを記事を斜め読みしながら進めてたらしくじったので再掲します。 VSCode用の拡張機能の記事を読みながら進めていった方が分かり易いです。 コマンドプロンプトとかも使う必要なかったし。 GitHubの vscode-esp-idf-extension でTurorialsを1~7の順に呼んでけばOKだということに気が付きました。 とにかく動かして見るために最初の2項目だけやります。 1. 拡張機能のインストールとセットアップ 1. Install and setup the extension. の部分です。 VSCodeを起動して拡張機能で “Espressif IDF” をインストールします。 インストール後に拡張機能のセットアップを行います。 F1 (またはCtrl+Shift+P) でコマンドパレットを開きます。 "ESP-IDF:"を入力して一覧から以下を選択します。 ESP-IDF: Configure ESP-IDF extention 以下の画面が表示されます。 EXPRESS を選択します。 以下の設定画面で “Select ESP-IDF version:” だけ v5.1.1 に変更します。 Install を実行します。 インストールが始まってから以下の画面で5分以上は掛かります。 以下の画面が出たらウインドウを閉じてOKです。 環境変数の設定 手順には書かれてないんですが以下の環境変数を設定する必要があります。 コントロールパネルで以下の環境変数を手動で設定します。 キー 値 IDF_PATH C:\Users\[ユーザー]\esp\esp-idf IDF_TOOLS_PATH C:\Users\[ユーザー]\.espressif ※格納場所を変更している場合はそれに合わせてパスを変更してください。 ここで一度VSCodeを再起動します。 2. サンプルプロジェクトのビルドと書き込み、そして結果確認 2. Create a project from ESP...