材料を手に入れる
Arduino Zero または M0
現在のところSTEP100/200のファームウェアは
- Arduino Zero
- Arduino M0
- Adafruit METRO M0 Express
に対応しています。 Arduino Zero/M0は公式のサイトでは在庫切れになっていますが、秋月電子通商でM0が入手可能です。またAli Expressなどで互換品が入手できます。
Arduino Zero or M0?
この2機種はArduinoが2つに分かれていた時代の影響で別の機種に分かれてしまっていますが、ほとんど同じもので、どちらでも使用可能です。とはいえ違いもありますので、スケッチをコンパイル・書き込みする際には対応する機種名を選んで行う必要があります。
ハードウェア面では、D2ピンとD4ピンが両機種の間で入れ替わっています。紛らわしいのですが、互換品の中には Arduino M0 相当のハードウェアに Arduino Zero のブートローダが書き込まれていることがあります。Arduino Zeroとして認識される基板でも、実際にD2を点滅させるスケッチを書き込んでみて、D2とD4どちらが点滅するかを確認したほうが安全です。もしD2とD4が入れ替わっているArduino Zeroの場合は、スケッチの書き込みに進んだ際にboardsDef.h
の32行目付近
// #define MZERO_WITH_ZERO_BOOTLOADER
この行についているコメントアウト//
を消去してコンパイルしてください。
その他のArduinoについて
STEP100/200で使用するX-NucleoシリーズのSPIピンはSPIコネクタではなく、D11,D12,D13を使用しています。Arduino Zero/M0ではこれらのピンにSPI機能を割り当てて使用しています。これらの端子はArduino UNOでもSPI端子として使われていますので制御は可能ですが、UNOはRAMやFlashサイズが小さいのでSTEPシリーズのファームウェアは動かせません。
LeonardoやMEGAでは、D11-D13にSPIの機能が割り振られていないので使用できません。
Ethernet Shield
ファームウェアはWiznet W5500を使用したArduino Ethernet Shield2で動作確認をしています。こちらも公式ストアでは在庫切れですが、大手のディストリビューター(Mouser, Digikey, RSなど)で取り扱いがあります。
またAli Expressなどで互換品がたくさん出ているW5100を使った古いタイプの互換品もありますが、これは実機テストをしたところ STEP100(X-NUCLEO-IHM03A1) では動作しませんでした。STEP200(X-NUCLEO-IHM02A1)では動きます。
秋月電子通商で売っているEthernet Shield for Arduino v2.2はboardsDef.h
のピンアサインの定義を書き換えれば動作すると思われますが、実機動作は未確認です。
こういうタイプは上にさらにシールドを載せることができないので使えません。ArduinoとEthernetシールドは6ピンのSPIを介して通信しますが、X-Nucleoシリーズにはこのコネクタがないので、重ねる順序はArduinoの上は必ずEthernetシールドにして、その上にX-Nucleoシリーズを差し込む必要があります。
X-NUCLEOシリーズ
STMicroelectronics社から発売されている評価ボードです。こちらも大手ディストリビューターなどから入手できます。
Model | X-Nucleo | Driver | Mouser | Digikey | RS | Chip1stop |
---|---|---|---|---|---|---|
STEP100 | X-NUCLEO-IHM03A1 | PowerSTEP01 | link | link | link | link |
STEP200 | X-NUCLEO-IHM02A1 | L6470 | link | link | link | link |
電源
モータ電源の電圧は、X-Nucleoのデータシートによると
- IHM03A1(PowerSTEP01): 10.5V-50V
- IHM02A1(L6470): 8V-45V
となっています。とりあえずどちらも24V 4-5Aくらいの電源を準備して実験を始めるのが良いのではないでしょうか。電源とモータの選定も参考にしてください。
X-Nucleo側はねじ式ターミナルになっているので、ACアダプタとつなぐ場合はDCジャックのケーブルがあると便利です。
またモータ電源を供給してもArduinoには給電されないので、Arduino用の電源も必要です。USB経由でPCやUSB充電器などから給電すればokです。