スキップしてメイン コンテンツに移動

投稿

12月, 2023の投稿を表示しています

Arduino on Wemos R1 D32(ESP32)にセンサーシールドを載せジョイスティックを接続しSG90サーボを動かす

表題の通りなんですが、ジョイスティックはArduinoスターターキットについていた5v対応のものだったので、Wemos R3 D32 ( ESP32 ) ではどのように結線するのかよくわかっていませんでした。そこでネットでしらべたところ、ESP32のADCは3.3vなので、VCCは5vではなく3v3につなげ、X, Y のアナログ接続はESP32のADC2(A0, A1)ではなくADC1(A2=GPIO35, A3=GPIO34)に接続すると良いようでした。 結果、Joystickの中央値(センターポジション)に偏りがあるものの、それらしく動作してくれたので備忘録として挙げてみることにしました。なおSG90はセンサーシールドのD2,D3(GPIO 26、25)に接続しているので5Vで駆動させています。 スケッチは以下の通りです。初めの方にピン番号を defineし差分を吸収したので、ESP32以外でも同じコードで動作できるようにしています。 #ifdef ESP32 #include <ESP32Servo.h> #define D0 3 #define D1 1 #define D2 26 #define D3 25 #define D4 17 #define D5 16 #define D6 27 #define D7 14 #define D8 12 #define D9 13 #define D10 5 #define D11 23 #define D12 19 #define D13 18 #define A0 2 #define A1 4 #define A2 35 #define A3 34 #define A4 36 #define A5 39 #define MY_SERVO_X_PIN D2 #define MY_SERVO_Y_PIN D3 #define JOY_X_PIN A2 #define JOY_Y_PIN A3 #define JOY_SW D13 #define JOY_MAX 4096 #else #include <Servo.h> #define D0 0 #define D1 1 #define D2 2 #define D3 3 #de

Windows 11 ( 23H2 ) に WSL2 Debian をインストール

特に目新しいことではないのですが、2023/12現在での備忘録として挙げてみることにしました。 まずターミナルを管理者で開きます。つづいて以下のようにします。 PS C:\Users\UserName> wsl --install -d Debian インストール中: 仮想マシン プラットフォーム 仮想マシン プラットフォーム はインストールされました。 インストール中: Linux 用 Windows サブシステム Linux 用 Windows サブシステム はインストールされました。 インストール中: Debian GNU/Linux Debian GNU/Linux はインストールされました。 要求された操作は正常に終了しました。変更を有効にするには、システムを再起動する必要があります。 ここで再起動し、再起動後、スタート->すべてのアプリからDeianをクリックしてWSL2を起動し 、ユーザー名とパスワードを入力すればOKです。 Windows11でのWSLインストールはデフォルトでWSL2がインストールされ、仮想マシンプラットフォームやサブシステムもコマンド一発でインストールされるので、非常に簡単ですね。 今回は以上です。それでは。

STM32F412RET6用にmicropython v1.21.0 をコンパイル

WeACT社のstm32関連ボードにSTM32f412RET6が載ったボードがあるのですが、バイナリーが古そうなので2023/11現在での最新バージョンv.1.21.0でビルドしてみました。まず、micropythonとWeACT社のgithubから該当ボードのレポジトリをcloneしました。 mkdir -p ~/stm32 cd ~/stm32 git clone https://github.com/WeActStudio/WeActStudio.STM32F4_64Pin_CoreBoard mkdir micropython cd micropython git clone https://github.com/micropython/micropython -b v1.21.0 micropython-v1.21.0 cd micropython-v1.21.0 git submodule update --init cp -a ~/stm32/WeActStudio.STM32F4_64Pin_CoreBoard/Examples/STM32F412/mpy/WeActStudio_F412RE ports/stm32/boards/ ざっと眺めると、linkerスクリプト(ports/stm32/boards/stm32f412rx.ld)が現在のmicropythonのレポジトリにないので、まずそこから手をつけました。内容は以下の通りです。 /* GNU linker script for STM32F412rx (512KB flash, 256kB RAM) */ /* Specify the memory areas */ MEMORY { FLASH (rx) : ORIGIN = 0x08000000, LENGTH = 512K /* entire flash */ FLASH_ISR (rx) : ORIGIN = 0x08000000, LENGTH = 16K /* sector 0 */ FLASH_FS (rx) : ORIGIN = 0x08004000, LENGTH = 112K /* sectors 1,2,3 = 16K:sector 4 = 64K. 16