ESP32 + CAN Transceiver(MCP2562)
皆さんこんにちは!
管理人のひろたけ(@drmus0715_2)と申します!
今回は、あの有名なマイコンESP32でCANを動かす方法について自分なりに調べてみました!
情報の少ないESP32 DevKit+CANの動作情報や注意点についても調べてみましたので、是非ご覧ください!
それではどうぞ!
~目次~
1. ESP32について
ESP32とは、Wi-FiとBluetooth入りのマイコンです!
IoT界にてとても有名で、安価で高性能かつライブラリも豊富にあるため多くの人が愛用しています!
Arduino IDEでも使えるため、環境構築もラクラクです笑
しかし今回はCANを使うため、Arduino IDEではなくESP-IDFを使います…
ちょっと環境構築が大変ですが、皆さん頑張ってみましょう!
詳しくはググってくださいね☆彡
2. CANについて
自動車内の通信のために開発された通信方式だそうです!
ちょっと調べてみましたがよくわかりませんでした笑
詳しくはこちらを御覧ください! ja.wikipedia.org
3. ESP32で使えるCANトランシーバーは?
CANを使ってマイコン間の通信をするにはCANドライバーとCANトランシーバーが必要ですが、なんとESP32にはCANドライバーが入っています!!すごい!!
さすが世界で使われているだけありますね笑
さて、今回用意したのは「MCP2562」というCANトランシーバーです!
最初「MCP2561」というやつを買ったんですが、うまく動きませんでした(泣)
みなさん部品を買う際はお間違えなきよう…ww
動かすときは、このサイトと、
このサイトを参考にしました!
配線したら、espressif/esp-idfのGitからセルフテストのサンプルをダウンロードして、皆さんの各自の環境で動かしてみてください!
サンプルは以下のサイトからダウンロードできます。
4. ESP32+CANについてのまとめ
いかがでしたか?
今回は、高性能マイコンESP32でCANを使う方法について調べてみました!
やはり使っている人が少ないのか情報も少ないですね笑
しかし、ネットにある情報が少ないほど調べがいがあるというもの!
今後もいろんな実験をしていきたいですね!
それでは、ここまで読んでいただきありがとうございました!
付録
本編です。
以下の機材を使用しました。
- ESPr® Developer 32
- MCP2562 (marutsu通販で購入)
- ESP-IDFの入ったPC
- ESP-IDFはVSCode + PlatformIO経由で導入(すごい楽)
CANのトランシーバとして、秋月やマルツの店頭で売っているMCP2561を使う際に注意が必要です。
MCP2561/MCP2562ともに電源電圧は5V必要です。Vddには5V印加してください。
便利なことに、MCP2562には、デジタルI/Oの電圧を入力するピン(Vio)があります。なので3.3V駆動のESP32でも問題なく使えます。
しかし、MCP2561はそこにSPLITピン(バス障害に対応できる)が割り当てられており、内部でVioピンがVddに接続されています。
もし間違えてMCP2561を買った場合はレベル変換回路を組めば使えます。僕は面倒なことが嫌いなのでMCP2562を買い直しました。くそう
回路は書くのが面倒なので、データシートから引用しました。
PICと1.8V電源はESP32と3.3V電源に読み替えてください。
CANTXとCANRXはソフトウェアにて指定します。
STBYピンはGNDに落とすか、GPIOにつないで使用時だけGNDに落とすと良いでしょう。
上の方のセルフテストのサンプルでは、相手側機器を繋がずに自分で送ったものを自分で受信します。受信できれば、CANトランシーバは正常に動いています。
エラーが出るようであれば、ESP32側のCAN_RXとCAN_TXを直結すると誰が悪いのか問題が切り分けられると思います。
以上です。 途中で面倒くさくなったので中途半端ですが、面白いことができたらまとめようと思います。
参考文献
MicroPython on ESP32 の はじめ
にゃー、ねこです。違います。
MicroPythonをESP32で動かすなどしました。今更ですね。
準備
今回以下の環境でしばらくやっていくことを決意しました。(2018/10/13現在)
ESP32-DevkitCを使う(なんでもいい)
screenでESP32にアクセスする
WSLはUbuntuを適当にMicrosoft Storeからインストールしました。その他お作法がいろいろ必要ですが割愛。
別にWSLである必要性はないです。
ESP32-DevkitCは以前秋月電子で買ったので今売ってるのとはちょっと違うかもしれません。知らんけど。
1. MicroPythonのファームを入れる
ファームを入れるために以下の環境が必要です。
Python 2.7 or 3.6 (もとからあった)
pipのインストール(なかった)
esptoolのインストール
pipは以下のコマンドでインストールしました。
$ sudo apt update $ sudo apt upgrade $ sudo apt install python3-pip
ちなみにapt updateとかをやらないと無駄につまります。最初にやっておきましょう。
次にpipでesptoolをインストールします。このツールでESP32のファームとかをいじります。
$ pip3 --version $ pip3 install esptool
pip3にしたのはなんとなくです。でもpipでやったときパス通らなかったんだよなぁ…
次にファームをダウンロードします。latestでいいです。
ESP32をつないだらWindows10のデバイスマネージャーでポートを確認します。
WSLからシリアルポートへのアクセスも可能です。が、うまくいかないときもあります。 私の場合だと、一旦Windowsでシリアルポートを開いてからじゃないとできませんでした。試行錯誤してください。
WSL上では/dev/ttyS3
(COM3の場合)のようにシリアルポートは見えています。
ファームをインストールします。
$ esptool.py --port /dev/ttyS3 --baud 115200 chip_id $ esptool.py --port /dev/ttyS3 --baud 460800 write_flash --flash_mode dio --flash_size=detect 0x1000 [ダウンロードしたファイルのパス]
1番目のコマンドでchip idを取得できればアクセスできてます。2番目のコマンドでファームインストールです。各自の環境にそって変えることになります。
screenコマンドでアクセスしてみます。
$ sudo screen /dev/ttyS3 115200
…できませんでした。teratermで開いて繋いで切断してからやってみましょう。
ENボタン押してリセットかけるとズラッ出てきます。やったね。
2. 使う
- Lチカ
MicroPython v1.9.4-631-g338635ccc on 2018-10-08; ESP32 module with ESP32 Type "help()" for more information. >>> from machine import Pin >>> p = Pin(12, Pin.OUT) >>> p.value(1) >>> p.value(0) >>>
あとはまだやってません。 Wifiライブラリとかsocketライブラリが使えるみたいなのでなんかできたらいいなと思います。
いじょい
東京交響楽団フィナーレコンサート@ミューザ川崎
生まれて21年目にして初めてプロのオーケストラコンサートに行ってきました。
ミューザ川崎シンフォニーホールです。すっごいいいホールで地元の微妙ホールと比べたら残響も席配置もバッチリです。型としてはアリーナ型(参考文献)なんですがアシンメトリーな形をしています。HP
ミューザ川崎は適当なホールじゃないのでロビーで飲み物が買えます。コヒー
曲目はこんな感じでした。目玉はおそらくテューバ協奏曲とキャンディードですが、1番楽しみなのはディヴェルティメントです。高専時代に一回やって、ハチャメチャな感じが好きでした。もう一生やりたくないですが。あとこの文章は始まる5分前に書いています。
終わりました。適当に書きなぐったのがあるのでそれを載せときます。
前半
ストリングスの音色が素晴らしい!あと一応トロンボニストなのでバストロのバリ感と和音がグッときたポイントでした。
ただチューバに期待し過ぎてちょっと肩すかしを食らいました、ジョンフレッチャーには勝てない
で、コンサートちょっとでもつまらないとすぐ寝るので反省してテューバ協奏曲のCD買いました。
後半
- キャンディード序曲
吹奏楽Verと比べてめっちゃ上品!テンポも(シエナより)遅くて大人の演奏でした。 - キャンディード残り
序曲の要素がいたるとこにあって聞いてて楽しい演奏でした。特に組曲の方はラストの残響にしびれました…! - ディヴェルティメント
大 本 命 ずっと笑いながら聞いてました。曲が曲なのでミスはかなり多かったけども勢いと精密さを両立した素晴らしい演奏でした! あとめちゃくちゃ緊張感のある曲ばっかなので、曲間になった瞬間客の咳払いとため息が聞こえました笑
おわり
Analog2.0のいろいろ + その後
いろいろしました
Analog2.0とSQ-1
SQ-1をプライムデーでポチったのでつなげてみました
めっちゃたのしいけどやっぱ曲とかに乗せたい
いつか曲作る
Analog2.0とEWI-USB(DAW経由)
で、OMENS OF LOVEを演奏してみた
ヘッタクソ
構成は見ての通りAnalog2.0 + Audio I/F + PCです。あとAnalog2.0とAudio I/Fの間はMiniBoard ⅡでCV/Gate-MIDI変換してます。
MiniBoardⅡは音の高さとNoteOn/Off、それからピッチベンドにしか対応してないので足りない部分をいつか作ろうと思います。
妄想してる図はこんな感じ 足りないのはBreath CCだけなのでそこだけ作ってやればいいんですがそれなら全部作っちまおうぜ、ということでこんな図になってます。 あとModulation CCも足せたらいいんですがどうしても思いつかないというか面倒なんで後回しにします。
これからやることをまとめると
- MIDI to CV Conv.の製作
- VCO2と対応したミキサの製作
- 上2つを組み込んだケースの製作
です。5000兆年後くらいになりそうです。がんばります。
CANARE L4E6S + CLASSIC PRO P12
こんにちは、無ですか?私は無です
モノラルフォンケーブル(でかい)を作りたいと思います。やっていきましょう
使ったのはCANARE L4E6SとSoundhouseのPBです。利点は安いことです。初めて作るのでよくわかりません
先に透明なやつと外部分をケーブルに通します。通さないと後で人間が終わります
シールドをほぐします、伸ばしながら左右に小刻みに動かすとほぐれます
ワイヤストリッパーで剥きます。より線なので芯線を切らないようにしましょう。信頼性が悲しいことになります。私はやりました