3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Leafony Basic Kit 2 のSTM32 でLチカに挑戦!

Last updated at Posted at 2022-12-03

いきなりスタートアップガイドを無視する

Webエンジニアです。 説明書を読まないオッサンです。

Leafony Basic Kit 2 というものを入手しました。
使ったことないので、Lチカでもやってみようと思います。

Lチカとは!?

LEDを点けたり消したりを繰り返し行いチカチカさせることを Lチカ と言います。
マイコンのプログラミングにおける hello world のようなものです。

Qiitaでも、いろんな Lチカ記事がありますね!
この記事も仲間入りだー!

Basic Kit 2 に入っているもの

開封後すぐに写真を撮ればよかったのですが、雑にバラしたら訳が分からなくなりました。
どう仕舞うのが正解なんだ!? わからん

1.jpg

Basic Kit 2の内訳は下記の通りです。(ネジとかナットとかそういうの除く)

情報: https://shop.leafony.com/collections/products/products/basic-kit-2

モジュール名 説明
AC02 BLE Sugar BLE通信モジュール
AIO1 4-Sensors センサーモジュール
AP01 AVR MCU AVRモジュール
AP03 STM32 MCU STM32L4モジュール
AV01 CR2032 CR2032電池モジュール
AX02 29pin IO外だし用モジュール
AZ01 USB USBシリアル通信モジュール

公式のスタートアップはIoT

Leafony Basic Kit 2 の スタートアップガイドは下記にあります。

しかしこれ、Basic Kit 2 に入ってる 大量の基板をつなげて、 IoTを試す という内容です。
これはマイコン買って最初にやることじゃない!と思う Lチカ信者なので、とりあえずスタートアップガイドはスルーすることにしました。

なぜかめんどくさい方のLチカへとつき進む! Arduinoの準備

Lチカに必要なのは、電源と、マイコンと、そしてLEDです。センサーとか電池とかは使いません。

AVR使えば簡単

実は、Leafony Basic Kit 2を使ったLチカで一番簡単なのは、AP01 AVR MCU を利用することです。AP01 AVR MCU にはLEDが内蔵されていますので、本記事のようなめんどくさい手順は不要です。 公式ページにも AVR を使ったLチカの手順 が紹介されています。

実は後で STM32 を使って別のことがやりたいのですが、AP03 STM32 MCU の方にはLEDが内蔵されていないようなので、LEDを別に用意することにしました。 本記事では AP03 STM32 MCU を使ったLチカを紹介します。

全国1000万のLチカファンの皆様も、LEDを持ってるはずですので問題ないでしょう!
STM32の方はなんでLEDつけなかったのか?

だが今回は STM32の方を使う

というわけで、環境構築を始めます。

Mac / Windows などのPCと、Arduino IDEを準備します。
筆者は下記環境で確認しました。

Arduino IDEは既にインストールされているものとして話をすすめます。
最初にSTM32用のボードを追加します。
Leafonyのサイトに説明がありました。

まず Arduino > Preferences > 追加のボードマネージャのURL に下記URLを入れて、ボードマネージャーから追加のボード「Leafony STM32」をインストールします。

ボードの設定はこんな感じ

setting.png

Lチカだけですので、プログラム(スケッチ)は下記で良いでしょう。

blink.ino
#define LED_PIN 13

void setup() {
  pinMode(LED_PIN,OUTPUT);
}

void loop() {
  digitalWrite(LED_PIN,HIGH);
  delay(1000);
  digitalWrite(LED_PIN,LOW);
  delay(1000);
}

ここまで出来たら、先にLeafonyを組み立てます。

Lチカ用に Basic Kit 2 を組み変える!

ソフトウエアの準備ができたので(と思っていた。実はできていなかった。その話は後で)、STM32 を使った Lチカ用に Basic Kit 2 を組み変えます。

Basic Kit 2 では、複数のボードが既にスタックされてネジ留めされた状態で箱に入っていましたが、冒頭で紹介したように、開封後何も考えずにいきなり分解したため、どのような状態だったか? 覚えていません。 ようするに、それらの中から下記のように一部のボードを使います。

準備するものは下記の通り

Basic Kit 2に含まれているもの

  • AX02 29pin
  • AZ01 USB
  • AP03 STM32 MCU
  • ネジ(Basic Kit 2に最初から入ってた2本)
  • ナット(CR2032のボードに付いてたやつを分解して拝借)
  • ドライバー(Basic Kit 2に最初から入ってる)

別に準備するもの

  • LED(色はお好みで。今回抵抗つけないので壊れてもいいやつ)
  • ポリイミドのテープ(AX02 29PINの下にLEDの足が出て下の基板とショートしたら泣くので保護用)
  • ハサミ(ポリイミドのテープをカットする用)
  • USBケーブル(USB-Type microB と PC側のコネクタに合わせたケーブル。USB-Type Aだと最近のMacに刺せないので Type Cへの変換が必要です)

2.jpg

Leafony は下記の順序でスタックします。

重ね順(上から) 部品名 説明
1 AX02 29pin IO外だし用モジュール→ここに頑張ってLEDを繋ぐ
2 AZ01 USB USBシリアル通信モジュール→STM32書き込み用兼電源
3 AP03 STM32 MCU STM32L4モジュール→ここにLチカのプログラムを書く

ネジとドライバで組み立てたくなりますが、先にやることがあります。

1. AZ01 USB をポリイミドテープで絶縁する

ボードを重ねる前に、一番上の AZo1 USBをポリイミドテープで絶縁します。
その上に重ねる AX02 29pin にLEDを直接刺す(ハンダづけはしない)予定なのですが、LEDの足が下に重ねる AZ01 ボードに貫通・接触してショートなどの事故を防ぐために絶縁性能のあるテープでガードしよう、というわけです。

3.jpg

このように巻いてから、

4.jpg

ハサミではみ出したテープをカットして整えればOK。

2. ボードを重ねてネジ止めする

それではボードを重ねます。

上から AX02 29pin → AZ01 USB → AP03 STM32 MCU の順番です。

5.jpg

重ねてから、

6.jpg

ネジ止めします。

3. LEDを雑に繋ぐ

リードの付いたLEDの足を少し広げます。

7.jpg

LEDを AX02 29pin のスルーホール部分に下図のように刺します。

8.png

今回のLチカ用のスケッチでは、LED_PIN13 を指定しました。
GPIO13は、Leafony BUSの F21 ピンになります。こちら側に LEDの + (アノード)側を刺します。
もう一箇所、GND 側に LEDの -(カソード)側を刺して完成です。

本来抵抗経由で繋ぐのが正しいですが、壊れても良いLEDを繋ぐということでこれでOKにしています。(雑!)

Leafony に Lチカコードを書き込む!

いよいよ、PCとLeafonyをUSBケーブルで接続してシリアルポートでArduino で Lチカをアップロードしてみましょう。

最初にLeafony の一番下にスタックした AP03 STM32 MCU のスライドスイッチを操作します。
スライドスイッチをUSBケーブルと逆の方向にスライドさせると赤いLEDが点灯します。

9.jpg

この状態で Arduino の ツール > シリアルポート を見ると、シリアルポートが見えるはずです。

serial.png

この状態で、Arduinoの準備 の最後のArduinoの画面でArduinoの「マイコンボードへ書き込む」ボタンをクリックします。
うまくいくと、ここでビルドが始まり、ビルドが成功して書き込み完了!となるのですが、いくつかエラーが出ました。

エラー1. prebuild.sh permission denied

err1.png

なんか、prebuild.sh に実行権限がなさそうな感じです。慌てず権限を付けましょう。

cd {prebuild.shがあるdir}
chmod +x ./prebuild.sh

これで治りました。

エラー2. STM32_Programmer_CLI not found

err2.png

STM32 MCU の Arduino IDE 設定 に、なんか入れろと書いてあったけど、Arduino のボードマネージャからビルド環境入るの普通だよね。と思ってたので無視してました。入らないのかよ!

というわけで、仕方なく入れることに(まー、ちゃんと説明読んでれば先に入れてるわけですが)

結構めんどくさいです。

  • https://www.stmcu.jp/design/sw_dev/pc_soft/58442/ からお使いのPC/OSに合わせたものをダウンロードする。このページにたどり着く前に、STMicroelectronics のID / Password でログインが必要。アカウントが無い人はアカウントを登録するところから。

  • Macなので 2.11.0 (Mac) をダウンロード。解凍すると、いかにもアプリケーションみたいなSetupSTM32CubeProgrammer-2.11.0 と書いたアイコンが出てきてダブルクリックで実行しそうになるけど、ダブルクリックしても実行されない。STMいつものお約束。STMが作るソフトのMac用インストーラーはだいたいこうなってる。慌てず SetupSTM32CubeProgrammer-2.11.0 を「パッケージの内容を表示」で開いて、Contents/MacOs/ の下の SetupSTM32CubeProgrammer-2_11_0_macos がインストーラの本体なので、これを コンソールから実行する。

  • この後、MacOS 12.6 だとセキュリティのエラー(ブロック)が出まくり、なかなかインストーラ画面に辿り着けない。エラーが出る都度 システム環境設定 > セキュリティとプライバシーダウンロードしたアプリケーションの実行許可 からブロック解除しまくる。数えてないけど インストーラー表示にたどりつくまでに、30回くらいやった気がする。Lチカへの道は意外に遠い!(このあと、1世代古いOS 11.6 でやってみたら、セキュリティエラーにならずあっさり インストーラー画面が表示される。MacOS新しくなるたびに使いにくくなるなぁ!というのは別の話なので置いとく)

  • インスローラー画面に辿り着けたら、あとは普通にインストールするだけ。

10.png

気を取り直して再度トライ!

STM32 Cube Programmer のインストールが無事終わったら、Arduino から もう一度「マイコンボードへ書き込む」を実行すると、ようやくビルドと書き込みに成功します。

下記画面が出たら、書き込み成功!

success.png

その後、AP03 STM32 MCU のスライドスイッチを USBケーブル側にスライドさせて(赤いLEDが消える)、リセットスイッチ(スライドスイッチの反対側にあるスイッチ)を押すと、Lチカが始まります!

blink.gif

まとめ

Leafony Basic Kit 2 の AP03 STM32 MCU で Lチカする方法を紹介しました。

  • AP01 AVR MCU の方を使えばLEDを頑張ってつなげなくても良い
  • AP03 STM32 MCU の方でLチカしようとすると、LEDを追加する必要があるので、 AX02 29pin を使ってLEDを挿す。その際  AZ01 USB を ポリイミドテープで保護し 上からAX02 > AZ01 > AP03 の順で3段重ねにする
  • Arduinoで AP03 STM32 MCU を利用する際には下記設定を行う
    • ボードマネージャーから追加ボード設定 (preferencesに設定するURL
    • STM32 Cube Programmer のインストール
    • chmod +x ./prebuild.sh (エラーになった場合)

参考(リンク集)

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?