RaspberryPi OSへのArduino IDEのインストール方法 リンクを取得 Facebook × Pinterest メール 他のアプリ 9/10/2020 RaspberryPi OSへArduino IDEをインストールする方法と、私が遭遇したメニュー表示されないトラブルの対応方法をスライドショーにしました。RaspberryPi( Pi4 Model B)でもArduino、ESP-WROOM-02などのマイコンのプログラム開発ができます。 リンクを取得 Facebook × Pinterest メール 他のアプリ コメント
ESP32pcntカウンタをテストしてみた 3/11/2022 ESP32pcntカウンタをテストしてみた 2021/12/9 No.262 マイコンソフトウェア ESP32でpcntカウンタでパルスをただ数えるだけ。 16bitの符号付きの高速なパルスカウンタです。 もっと詳しい事を知りたい方は esp32 pcntで検索するとなにか見つかると思います。 桁数が足らないので工夫しています。 素人の書いたコードなので間違いがあるかも知れません。 #include "driver/pcnt.h" #define PULSE_INPUT_PIN 32 //パルスの入力ピン #define PULSE_CTRL_PIN 33 //制御ピン #define PCNT_H_LIM_VAL 32768 //カウンタの上限32768 16bit Counter 65536 #define PCNT_L_LIM_VAL -32768 //カウンタの下限-32768 int16_t count = 0; //カウント数 unsigned long currentCount = 0; unsigned long previousCount = 0; unsigned long addCount = 0; unsigned long previousMillis = 0; const long interval = 1000; void setup() { pcnt_config_t pcnt_config;//設定用の構造体の宣言 pcnt_config.pulse_gpio_num = PULSE_INPUT_PIN; //pcnt_config.ctrl_gpio_num = PULSE_CTRL_PIN;//制御信号入力GPIO番号 pcnt_config.ctrl_gpio_num = PCNT_PIN_NOT_USED; pcnt_config.lctrl_mode = PCNT_MODE_REVERSE;//_REVERSE:invert counter mode(increase -> decrease, decrease -> increase) pcnt_config.hctrl_mode = PCNT_MODE_KEEP;//_KEEP:won’t change counter mode //... 続きを読む
Arduino UNO MINIMAでCAN通信(接点伝送してみる) 3/07/2025 CAN通信の活用方法を考えています。 今回テーマは「接点伝送」です。 CANバスを経由で機器を制御するようなことができると思います。 備忘記なんですが、参考に紹介します。 (更に書き足しました) 送信側(入力側)オリジナルスケッチ"CANWrite.ino"の最後の方に "delay(1000)"(1秒)入っています。 これは、1秒間止まって待っているということですから、もったいないと思います。 かといって、入力が変わらないのに高速に送り続けるのもどうかと思います。 変化したときだけ送るとか、実際に機器に使うときは考えましょう。 (少し書き足しました。) 入出力デバイスはIOエキスパンダを使ってみました。 入力はI2CインターフェースのMCP23017、 出力はSPIインターフェースのMCP23S17です。 なんでインターフェースが違うデバイスを使ったの? ピンリストでI2Cの端子と思われるGPIO21ーWIRE_SCL, GPIO22ーWIRE_SDAが、CAN_TX、CAN_RXが割り当てられていたので、 I2Cは使えないと思い込んで、SPIインターフェースを選択した経緯あり。 ESP32の"IO MUXとGPIOマトリックス"機能があって、GPIOピンに割り当てる 機能を変えられる(合ってる?)、ピンリストに表示されているのは、 デフォルトで接続されるGPIOピンかな? CANトランシーバの接続を、GPIO16,17に変えても動くようなので、 GPIO21ーWIRE_SCL,GPIO22ーWIRE_SDAにI2Cインターフェースの MCP23017を接続してもよいのではないかと思います。 SCL、SDAのGPIOピンを変えることもできると思うが、 CAN_TX、CAN_RXを変えるほうが簡単。 準備 ESP32とArduino UNO R4ボードマネージャ、 "Adafruit MCP23017 Arduino library"をインストールしておく。 動作確認のときはPCが2台あると便利です。 ・CAN受信側(出力)MCP23S17を使用した接続 出力側スケッチ サンプルスケッチTWAIreceive.inoへMCP23x17用を組み合わせただけです。 追加する部分だけ 実際の... 続きを読む
CANバスモジュールを使ってデータ送受信する。(RP2040 送信) 7/15/2023 数台の機器からデータを送って、受信したデータをまとめて保存するようなものを作るため、 スケッチを書いてテストしています。続編 SPI接続CANバスモジュール(コントローラ:MCP2515、トランシーバ:TJA1050)と 送信AE-RP2040、受信AE-RP2040、送信Arduino-UNO 1台 millis()をそのまま送ってAE-RP2040で受信しています。 ライブラリがRP2040非対応か ArduinoUNO、ESP32で動いていたライブラリがRP2040で動かない Arduino IDEのライブラリマネージャでMCP2515を検索しAdafruit MCP2515をインストール こちらは対応している(?)ようです。 送信データの1バイトに入る数値に制限がある? 0x00〜0xFF(B11111111)のはずが、最上位bitが使えず0x00〜0x7F(B1111111)となっています。 使い方に間違いがあるかもしれません。 送信8バイトをフルに使うことはないのでこれでも目的は 達成できそうです。 ChatGPT先生にいっぱいヒントを頂きました。 動作概要 複数のデータそれぞれにID番号を割り当てて 送信側:数値をばらしてバイト配列に入れて送る。 受信側:バイト配列を組み立ててもとの数値へ戻す。 準備できたら送信、受信スケッチを紹介したいと思います。 2023-07-15 09:32:20#CAN #AE-RP2040 #MCP2515 #TWAI 送信側スケッチ 変化する送信データサンプルとしてmillis()を読んで使っています。 3つのID(0x11,0x12,0x13)を使っています。 (0x14は使えなかった。0x21〜0x23使えた。) ID毎に1つのデータを送っています。 /*Adafruit MCP2515_CAN_Sender Exampleを改変しています。 一部省略 転記ミスや表示されてない記号があるかも <は半角に直して*/ #include<Adafruit_MCP2515.h> #define CS_PI... 続きを読む
コメント
コメントを投稿