ESP32 + CAN Transceiver(MCP2562)

皆さんこんにちは!

管理人のひろたけ(@drmus0715_2)と申します!

今回は、あの有名なマイコンESP32でCANを動かす方法について自分なりに調べてみました!

情報の少ないESP32 DevKit+CANの動作情報や注意点についても調べてみましたので、是非ご覧ください!

それではどうぞ!

~目次~

1. ESP32について

ESP32とは、Wi-FiBluetooth入りのマイコンです!

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

動かすときは、このサイトと、

www.mouser.jp

このサイトを参考にしました!

docs.espressif.com

配線したら、espressif/esp-idfのGitからセルフテストのサンプルをダウンロードして、皆さんの各自の環境で動かしてみてください!

サンプルは以下のサイトからダウンロードできます。

github.com

4. ESP32+CANについてのまとめ

いかがでしたか?

今回は、高性能マイコンESP32でCANを使う方法について調べてみました!

やはり使っている人が少ないのか情報も少ないですね笑

しかし、ネットにある情報が少ないほど調べがいがあるというもの!
今後もいろんな実験をしていきたいですね!

それでは、ここまで読んでいただきありがとうございました!

付録

本編です。

以下の機材を使用しました。

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に落とすと良いでしょう。

f:id:drmus0715:20190615183625p:plain
出典:MCP2561/2 Data Sheet(Microchip)

上の方のセルフテストのサンプルでは、相手側機器を繋がずに自分で送ったものを自分で受信します。受信できれば、CANトランシーバは正常に動いています。

エラーが出るようであれば、ESP32側のCAN_RXとCAN_TXを直結すると誰が悪いのか問題が切り分けられると思います。

以上です。 途中で面倒くさくなったので中途半端ですが、面白いことができたらまとめようと思います。

参考文献

nandemoari810.blog.fc2.com

MicroPython on ESP32 の はじめ

にゃー、ねこです。違います。

MicroPythonをESP32で動かすなどしました。今更ですね。

準備

今回以下の環境でしばらくやっていくことを決意しました。(2018/10/13現在)

  • WSL (Windows Subsystem for Linux)上で動かす、今回はUbuntu 16.04LTS

  • 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でいいです。

micropython.org

f:id:drmus0715:20181013180124j:plain

ESP32をつないだらWindows10のデバイスマネージャーでポートを確認します。

f:id:drmus0715:20181013180644j:plain

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で開いて繋いで切断してからやってみましょう。 f:id:drmus0715:20181013182208j:plain

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、それからピッチベンドにしか対応してないので足りない部分をいつか作ろうと思います。

妄想してる図はこんな感じ f:id:drmus0715:20180722232015p:plain 足りないのはBreath CCだけなのでそこだけ作ってやればいいんですがそれなら全部作っちまおうぜ、ということでこんな図になってます。 あとModulation CCも足せたらいいんですがどうしても思いつかないというか面倒なんで後回しにします。

これからやることをまとめると

  • MIDI to CV Conv.の製作
  • VCO2と対応したミキサの製作
  • 上2つを組み込んだケースの製作

です。5000兆年後くらいになりそうです。がんばります。

CANARE L4E6S + CLASSIC PRO P12

こんにちは、無ですか?私は無です

モノラルフォンケーブル(でかい)を作りたいと思います。やっていきましょう

使ったのはCANARE L4E6SとSoundhouseのPBです。利点は安いことです。初めて作るのでよくわかりません

プラグを分解します

先に透明なやつと外部分をケーブルに通します。通さないと後で人間が終わります

被覆を剥きます

むいた

シールドをほぐします、伸ばしながら左右に小刻みに動かすとほぐれます

ほぐれたらまとめましょう、白い部分は切って下さい。

ワイヤストリッパーで剥きます。より線なので芯線を切らないようにしましょう。信頼性が悲しいことになります。私はやりました

はい

まとめます 今回は青2本をホット、白2本とシールドをコールドにします。やり方はいろいろですが動けばよかろうなのだ

予備はんだします、これは付けすぎ

位置を確認、線長すぎたら切りましょう。

ペンチでケーブルを固定します(かしめる)

はんだ

透明なやつをかぶせます

できあがり、お疲れさまでした 使う前に導通確認をしてショートしてないか見てから使いましょう

所感

社会人になりました。

もうちょい落ち着いたらいろいろやりたいと思ってます。なんか同期にシンセつよいマンがいたので機材用意したらいろいろできそう

  • Analog2.0をPCにつなぐ
  • Analog2.0のVCOを増やすとか

EWI使っての演奏とか載せれたらいいんじゃないですかね。吹けないけど。

いつか音楽的なアレもアレできたらいいなーとか思っています。なぜかちょいちょい見てくれてる人がいるのであと半年を目処に新しい記事をお待ち下さい。待たなくてもいいです。

もしAnalog2.0の制作不明点とかあったら答えれる範囲で答えられるのでフォーラムで聞くの怖い人はコメントで聞いてください。

いじょい

Analog2.0の製作(完)

終わりました。写真はありません。 なぜかというと部屋の引越しで写真撮る前に梱包してしまったからです。

無事に配線等の確認も終え、若干の不具合(接触不良)を残し製作を完了しました。外装ェ…

ところで次の目標です。

  • EWI-USBとPCを介しての接続、演奏
  • EWI-USBと繋がるコントローラ作成
  • 素敵な外装の作成

私はEWI-USBを所持しています。自作アナログシンセと繋げて演奏できたら面白いなーとか思うのでやりたいなーとか思っています。

EWI-USBは別名管楽器型USB-MIDIコントローラなのでCV/GateとMIDIをうまく変換してくれる奴を作ればいいわけです。

まあ、いつか、やりましょう…

おわり