LoginSignup
9
6

More than 1 year has passed since last update.

teensy4.1完全に理解した

Last updated at Posted at 2021-12-07

 はじめに

最近teensy4.1というマイコンに出会ったので,teensy4.1の開発のための環境構築について書いてみたいと思います.

teensy 4.1とは

ARM Cortex-M7の高機能・低価格マイコンです.スペックを一部抜粋
- クロック周波数600MHz
- Eathernet 10/100 Mbit
- USB device 480 Mbit/sec & USB host 480 Mbit/sec
- 55 digital input/output pins, 35 PWM output pins
- 18 analog input pins
- 8 serial, 3 SPI, 3 I2C ports
- etc ...

詳しいスペックは公式サイトを参照して下さい.
https://www.pjrc.com/store/teensy41.html

注目すべきはその速度,600MHz.Arduino UNOは16MHzですから,断然早いですね.またESP32よりも120MHz早いです.ただ,ESP32は2コアありますから,処理内容次第でTeensyよりも早いでしょう.
35のPWMピンと18のアナログピンがあり(重複),センサーもサーボモータもブイブイ言わせれます.
価格も4千円でスイッチサイエンスなどで購入できるお手ごろさです.
https://www.switch-science.com/catalog/6377/

環境構築

TeensyはArduino IDEで書き込みができます.全てのマイコンはArduinoで始まりArduinoで終わるんですね(謎).nrf52840もarduino-cli使ってファーム書いてる今日この頃..な筆者です(書き込みはUF2ブート).
また,PlatformIOでも書き込みが出来ますので,こちらにも取り組みました.
僕はノートPCにUbuntu20.04を使っているので本記事はLinuxを対象とします.とはいえ,基本的に設定方法は公式を参照すれば大丈夫だと思います.

Arduino IDEでの設定(Linux)

Arduinoのインストール

次の記事を参考にしました.
https://qiita.com/ma2shita/items/927aa9e55962b4137518

Teensyduinoのインストール

Linuxはruleファイルを置いておく必要があります.公式サイトから「Other Files」の項目にある「Linux udev rules」をダウンロードします.自分は適当にクリックしたらブラウザに表示されてしまったので,全選択してコピーし,nanoで開いてShift+Ctr+Vで貼り付け
て保存しました↓

$ cd /etc/udev/rules.d/
$ sudo nano 00-teensy.rules

次に「Teensyduino Files」をダウンロードしてきます.僕はLinux Installer (X86 64 bit)を選びました.
ダウンロードされたディレクトリに移動し,下記コマンドを入力してインストーラーを起動します.

$ chmod 755 TeensyduinoInstall.linux64
$ ./TeensyduinoInstall.linux64

このようなものが表示されればOKです.
Screenshot from 2021-12-07 22-12-20.png

「Next」を押すと,udev ruluesがあるか判断され,所定の場所にrulesファイルがあれば問題なく顔文字で笑ってくれます
Screenshot from 2021-12-07 22-15-09.png

ここから「Next」を押すとArduinoをインストールしているディレクトリを選択する必要があるのですが,ここでつまずきました.
なぜなら僕はArduinoを~/.local/shareに置いてあり,TeensyduinoのGUIでは隠しファイルとなって選択が出来ませんでした.どうすりゃええねん,とググったところ,どうやらコマンドオプションがあるようで,--dirでディレクトリを指定できました.GUIはキャンセルし,下記コマンドをターミナルに打つことで無事設定できました.めでたしめでたし.
これでteensyduinoの設定は終わりです.

ディレクトリの選択
$ ./TeensyduinoInstall.linux64 --dir=/home/Nobu/.local/share/arduino-1.8.15

PlatformIOでの設定

Arduino IDEは補完機能がないので,人間には優しくありません(言い過ぎたごめん).
補完機能がついているVSCodeで書きたいです.
VSCodeでマイコンのファームを書く場合,PlatformIOが便利です.PlatformIOでTeensy4.1のファームを書き込んでみましょう.

とは言ったものの,実は特にやることはなく,プロジェクトを作成する際にBoadをTeensy4.1で選べば良いだけです.なお,Teensyduinoはインストールしておく必要があり,Arduinoの設定方法で問題ありません.特にPlatformIOのディレクトリを選ぶ必要はなさそうです.

Screenshot from 2021-12-07 22-42-58.png

ただ,ここではまりポイントが一つありました.
普通にアップロードを押すとTeensyduinoのGUIが立ち上がり書き込みを行うのですが,なぜかうまく行かず,下記エラーがでます.

uploading .pio/build/teensy41/firmware.hex
Opening Teensy Loader...
Teensy Loader could not find the file firmware
quitscons: *** [upload] Error 1

どうやらTeensy Loaderがファームウェアのファイルを見つけれないようです.Pathが通ってないのか,なんなのか
ただ,調べてみるとCLIでのアップロードもあるようで,
https://docs.platformio.org/en/latest/boards/teensy/teensy40.html
結局,プロジェクトのplatformio.iniファイルでupload_protocolをCLIにすると無事にアップロードができました.

platformio.ini
[env:teensy41]
platform = teensy
board = teensy41
framework = arduino
upload_protocol = teensy-cli

この時の動作確認はビルドインのオレンジLEDを点滅させるプログラムにしました.参考までに

main.cpp
#include <Arduino.h>

void setup() {
  // put your setup code here, to run once:
  pinMode(13, OUTPUT);
}

void loop() {
  // put your main code here, to run repeatedly:
  digitalWrite(13, HIGH);
  delay(1000);
  digitalWrite(13,LOW);
  delay(1000);
}

micro-rosを入れて動作させることも行ないましたが,長くなるのでまた別の記事に書きます.

9
6
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
9
6