いやはや、2日間悩んでしまいました.地雷多すぎです.
石定盤3DプリンタのY軸のstepping motorを動かしてみようかと、Arduino MEGA2560を動かそうとしたのですが、なんと地雷の多いことか....
【環境とパーツ】
1)Arduino MEGA2560 R3
2)RAMPS 1.4 + A4988
3)LCD
4)Marlin 2.x
5)windows10
6)Arduino IDE → VSCode+PlatformIO
12は基板です.youtube動画を見てチャチャっと組み立てます.
3のLCDはこちらのページなんかを見て組み立てました.
とくに問題ないです.
4の、MEGA2560に焼くfirmwareはどうするか?
Marlinという自主制作firmwareがあるのでそれを使います.
source DLは、MarlinのGitHubはどうもピンと来ません.こちらの方がいい感じです.
sourceをDLしたら、Arduino IDEでコンパイルするのですが、windows版だとコンパイルできません.原因はこちらなどに書かれていますが、win版Arduino IDEのコンパイル作業の最終段階で、リンカがオブジェクトファイルをひとまとめにします.その時、Marlin2.xは巨大なため、リンカscriptが長すぎでerrorになるそうです.Linux版やMac版 Arduino IDEならばこのような問題は発生しません.
というわけで、win版Arduino IDEでMarlin2.xは使えません.ギャフンですわ.Arduino IDEがいずれ修正されるといいですね.
win上で動く代替IDEとしては、VSCode+PlatformIOを使うしかありません.しかしVSCode+PlatformIOの使い方がさっぱりわかりません.
PlatformIOのインスト方法についてはここでは詳述しませんが、作業の90%はVisual Studio Codeのインストです.VSCodeの拡張機能としてPlatformIOを追加すればインストは完了です.ただし、インストしてもその後に地雷多数です.
【PlatformIOでMarlinをコンパイル&焼き】
PlatformIOの使い方が分からないし、Marlinもよくわからんのです.なのでここから先が長いのですが、とりあえずMEGA 2560にMarlinを焼くまでを説明してみます.こちらの動画は比較的参考になったかな、ありがとさん.
source入手
Marlin Firmwareに移動します.2つDLします.解凍します.置き場所はどこでもいいです. デフォルトの場所が良いかな.C:\Users\XXX\Documents\PlatformIO\Projects
configファイルを取り出します.本当はカスタマイズすべきですが、今は何も考えずに以下の4つとします.4つのファイルをコピーします.
コピー元フォルダ: Configurations-bugfix-2.0.x\Configurations-bugfix-2.0.x\config\examples\Creality\CR-10S\CrealityV1
CrealityV1という機種のconfig filesを選んだのは特に意味はないです.機種が違えばconfigの内容も異なります.configのカスマイズはこちらで少しですが考察しました.
4つのファイルのコピー先はここです.
コピー先フォルダ:Marlin-bugfix-2.0.x\Marlin-bugfix-2.0.x\Marlin
PlatformIO起動
これがVSCodeの起動アイコンです.PlatformIOは既に拡張機能としてVSCodeに仕込まれているものとします.
VSCode起動後に1分ぐらい待つと、左側にアリさんみたいなのが出て来るのでクリック.これでPlatformIOの画面が開きます.Marlinをimport
①②③の順にケアしてください.
Import画面です.上から順にケアしてください.DLして解答したフォルダを指定します.フォルダ階層を間違えないようにしましょう.Marlinフォルダの中に入ってはいけません.
必要な操作なのかどうか不明なのですが念のため、今importしたprojectを開きます.①②③④⑤の順でケアしてください.Marlin-bugfix-2.0.xが目的のものです.Marlinが使うライブラリでU8glibというのを入れておきます.最初だけで良いと思う.①②③④⑤の順にケアしてください.U8glibで検索した結果が出てきます.
U8glibをADDします.
Projectを選んでADDします.
Projectを選んでADDします.
Marlinをコンパイル&焼き
わたしにはVSCodeにおけるproject focusがよく分からないのです.なので、上で説明したprojectを開くをもう一度やります.
すると、このようにprojectの中身が表示されるようになります.この中にあるplatformio.iniに様々なproject設定が書かれています.
画面の下部にあるボタンは、レ点=コンパイル、→=焼き、の意味があります.
コンパイルが終わるまでに5分ぐらいかかります.このような表示が出れば成功です.Linking .pio\build\mega2560\firmware.elf
Checking size .pio\build\mega2560\firmware.elf
Building .pio\build\mega2560\firmware.hex
Advanced Memory Usage is available via "PlatformIO Home > Project Inspect"
RAM: [====== ] 60.8% (used 4978 bytes from 8192 bytes)
Flash: [====== ] 63.5% (used 161172 bytes from 253952 bytes)
=========== [SUCCESS] Took 270.01 seconds ================
MEGA 2560に焼きます.このような表示が出れば成功です.
avrdude: reading on-chip flash data:
Reading | ########################### | 100% 18.70s
avrdude: verifying ...
avrdude: 161172 bytes of flash verified
avrdude: safemode: Fuses OK (E:FD, H:D8, L:FF)
avrdude done. Thank you.
============== [SUCCESS] Took 87.45 seconds =============
Environment Status Duration
------------- -------- ------------
mega2560 SUCCESS 00:01:27.454
=========== 1 succeeded in 00:01:27.454 ================
Terminal will be reused by tasks, press any key to close it.
よく分からないままに、PlatformIOを使ってMarlinをコンパイルし、Arduino MEGA 2560に焼き、LCDに3DPの表示が出るようになりました.
しかし、PlatformIOでdebuggerの使い方がまださっぱりわかりません.
動いたよ.思ってたよりも音が静かでよかった.
かしこ
【おしらせ】
pdfをダウンロードしていただけます.全36ページ.
3DP印刷部品のstlファイルを無料ダウンロードできます.
Marlinのvscode project folder詰め合わせも無料ダウンロードできます.
まずは無料立ち読み版をご覧になってはいかがでしょうか.(pdf)
自分はArduinoM0という基板で頼まれ仕事をしているのですが、PCとのシリアル通信が浮かくいかなくてネットで調べていました。
返信削除恥ずかしながら初めて知ったのですが、Arduinoは2つのグループに分裂していて、その影響でArduinoM0の場合シリアル通信の関数名が変わっているそうです。
めんどくさ。
M0の外観はNanoと似ていますね.Cortex-M0が載ってるですか.秋月でも売ってるですか.
削除なるべく自分でprogramしないで済むのを希望します.パクリ厨でありたい....
その考えは正しいですねー。真っ当にコーディングしようとしたら、無駄に知らなきゃいけないことが多すぎます。
削除先人のおかげでたくさん楽さしてもらいます.乞食でいい、楽でさえあれば.
削除失礼致しました。Amazonで日本のラズベリーパイを販売している林遠です。
返信削除ブログを拝見しました。弊社のラズベリーパイ4bレビューブログ記事を書きしてくれませんか。
こちらは無料でサンプルを提供します。
連絡メールはjp02@vertue.cnです。
御返事お待ちしております。どうぞよろしくお願いします。