フォト
2020年2月
            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
無料ブログはココログ

arduino

2020年2月14日 (金)

Arduino IDE 1.8.12が公開されました

Arduino 1.8.12が公開されたため、早速最新版をインストールしました。

・ARDUINO 1.8.12
   https://www.arduino.cc/en/Main/Software

01_20200214172601
  リリースノートを見る限り、特に大きな変更はなさそうです。
 (ただし、Java環境をOracle版からOpenJDK への切り替えを試みているようで、それが難航しているようです)

私の開発環境では、Windows ストア版とzip版の2つの環境を併用しています。

まずは、Windowsストア版のインストール

04_20200214173301
旧版をインストール済みでも、開くとダウンロードを開始して更新してくれます。
インストール後、起動すると1.8.12になりました(タイトルバーにWindows Storeの記載があります)

02_20200214173401

次にzip版のインストール

ダウンロードして解凍して、起動すると1.8.12になりました。
03_20200214173601

とりあえず、最新版のインストール完了です。

2020年2月 4日 (火)

M5Stackで日本語表示(2)

M5Stackでの日本語表示の続きです。
前回とは別の自作ライブラリをM5Stack対応の修正を行いました。

利用ライブラリ
 ・Arduino-KanjiFont-Library-SD
    Arduino用のマルチサイズ漢字フォントを利用するためのライブラリ(SDカード版)
    https://github.com/Tamakichi/Arduino-KanjiFont-Library-SD

ライブラリを使って、「吾輩は猫である」の文書を表示してみました。

    01_20200204162501 

動いている様子
    

8ドットから24ドットのフォントサイズを変えて繰り返し表示しています。

動画を見れば分かると思いますが、表示はあまり速くないです。
逐次、SDカードから読んでいるためかと思われます。
まあ、とりあえずは良しとします。

スケッチ


表示の高速化のため、M5Stackで利用されている液晶パネルILI9341Windows機能を利用してフォントの表示を行っています。
drawPixel()を使うよりもコマンド送信数が少なくて済むので多少は速くなると思います。
ただし、SDカードアクセスが遅いためあまり効果としては現れませんね。

ちょっとハマった..

今回はテキストをスクロールさせるつもりでscrollUp()関数を作成したのですが、
期待通りに動きませんでした。
プログラム的には、指定座標のピクセル色を読んで、1文字分上に表示でスクロールさせようとしたのですが..

「何故だろう..?」と調べると、
なんとMISO(LCDからデータを読む)が使われていません。

02_20200204164501
(回路図は公式サイトより入手し引用)

これでは、物理的にデータの取得は出来ないですね。
ですので用意されている readPixel()readRect() は正常に動きません。
ためしてみると、ピクセルの色は常に 65535の値が返されます。

もう一点、ウィンドウ設定でsetAddrWindow()を使っているのですが、
setWindow()だと正しく表示出来ませんでした。
setAddrWindow()は、内部的にsetWindow()を読んでいるのですが、
SPIの設定を行ってからsetWindow()が呼び出されています。
SPIがSDカードのアクセスと共用のため、SPIの設定が必要だったのだと思われます。

とりあえずは、ウィンドウ設定の関数が用意されているのが分かったのは収穫でした。

追記
  MOSIを双方向にてデータを読む方法があるようです。

  関連情報
   ・M5Stackで画面キャプチャーを取得する
      https://qiita.com/fukuebiz/items/8aff6cad2f6048f02f12

   ・Bodmer/TFT_eSPI
      Arduino and PlatformIO IDE compatible TFT library optimised for the STM32,
      ESP8266 and ESP32 that supports different driver chips
      https://github.com/Bodmer/TFT_eSPI

  M5Stackのライブラリ=v0.2.9)のTFT_eSPIが古いため、現時点で readPixel()readRect() が使えないようです。
  まあ、いずれ、TFT_eSPIの最新版を取り込んで利用可能になると思います。

2020年1月26日 (日)

M5StackでMML単音演奏

以前 Arduino用に作成したMML文演奏ライブラリをM5Stackにて利用してみました。
M5Stackにて、単音演奏をやってみました。
数日前にやった、「M5Stackのビープ音、Tone音の爆音対策」を適用して音量が出来るようにもしました。

01_20200126102101

■ ライブラリ
   MML文演奏ライブラリ  MML_Play
   https://github.com/Tamakichi/MML_Play

   ライブラリ本体は、ESP32ではコンパイルエラーが発生したため修正&更新しました。
   ついでに、M5Stack用のサンプルスケッチ(本記事のスケッチ)を追加しました。

動いている様子
  

スケッチ(ライブラリに添付)

演奏操作は、
  ボタンAで演奏開始(または先頭から演奏しなおし)、
  ボタンBで演奏中断、
  ボタンCで中断した演奏を途中から再開
です。

音量は最低にしているため、小さめです。
音量を上げるには、MML文先頭のv1の値を1~9(爆音)の範囲で調整して下さい。

ノイズ等もなくとりあえずは、まともに演奏出来ているようです。
効果音的な何かには使えると思います。

2020年1月22日 (水)

M5Stackのビープ音、Tone音の爆音対策

M5Stackはスピーカーが搭載されており、
標準のAPIを使ってビープ音やTone音(周波数を指定して鳴らす)を簡単に鳴らすことが出来ます。
ただし、「爆音」です。
これには、ちょっと困りました。鳴らすとやかましいです。

ググってみると、多くの利用者が同様に困っているようです。
何とかならないかなぁ、と思い試行錯誤してみました。
結論としては、とりあえず、何とかなりました。

01_20200122220601

とりあえず、単音440Hz(ラ)の音を音量指定して鳴らしてみました。

サンプルスケッチ
音量指定できる新しいtone関数、toneEx()を作成しました。
音の大きさの制御は、デューティ比を操作で制御しています。

toneEx()の3番目の引数、volに0(無音)、1(最小) ~ 9(最大)の指定にて音量を指定することが出来ます。
サンプルスケッチでは、M5Stackの左ボタンで最小音、真ん中ボタンで3、左ボタンで5を指定して音を鳴らすことが出来ます。

耳で聞いた感じでは、いい感じで音量制御出来ています。
最小の1でも十分聞こえ、ちょうど良いかもしれません。

次の段階として、Arduino用に作成したMML演奏ライブラリを試してみます。

2020年1月18日 (土)

M5stackで日本語表示

Arduino Uno用に作成したフォントライブラリをM5Stackで試してみました。

ライブラリ
  ・Arduino用 美咲フォントライブラリ 教育漢字・内部フラッシュメモリ乗せ版
    https://github.com/Tamakichi/Arduino-misakiUTF16

とりあえず、LCDにライブラリ無修正で利用出来ました。
Dscn2468
ノーマルのサイズでは、文字が小さすぎて読めません。

3倍角にして表示してみました。
Dscn2477

まあ、8ドットフォントなのでこんなもんでしょう。

動いている様子


コントラストの関係で動画が綺麗に取れないため、背景色を青に変更しました。
8ドットフォントを1~4倍にして繰り返し表示しています。

スケッチ

スケッチは、OLED(SSD1306)で美咲フォントを使った漢字表示 のものを修正して作成しました。

フォント表示については、他の自作ライブラリの動作も検証したいと思います。



2020年1月 9日 (木)

NeoPixel(WS2812B)の制御 その4

ArduinoによるNeoPixel(WS2812B)の制御の続きです。質問があり、折角なので
以前作成した、8x8ドットマトリックスタイプのNeoPixelを制御するスケッチを汎用化(任意のサイズ対応)しました。
とりあえず手持ちの16x16ドットモジュールで試してみました。

動いている様子


利用したモジュールは、Aliexpressにて入手しまた。

1 pcs/lot DC5V 16x16 Pixel WS2812B LED Digital Flexible Individually addressable Panel light
04_20200109194301

このモジュールのNeoPixelの並びは次のようになっています。
05_20200109195701

接続
    Arduino:D11   -  NeoPixel:DIN
    Arduino:5V     -  NeoPixel:5V
    Arduino:GND  -  NeoPixel:GND

スケッチ


スケッチは、16x16ドットマトリックスに対応するように作成していますが、
下記の横ピクセル数、縦ピクセル数を変更することで、横8x縦8ドット、横32x縦8ドットにも対応出来ると思います。
  #define PXCEL_W  16    // 横ピクセル数
  #define PXCEL_H   16    // 縦ピクセル数

また、メッセージ表示の縦位置は NeoMsg()関数の最後の引数で指定出来ます。
スケッチは、Githubのgistにて公開しています。スケッチ表示の下部の帯のリンクから参照出来ます。
スケッチのコンパイルには、別途下記のライブラリが必要です。

   ライブラリ
   ・Arduino用 美咲フォントライブラリ 教育漢字・内部フラッシュメモリ乗せ版
     https://github.com/Tamakichi/Arduino-misakiUTF16

関連記事
 NeoPixel(WS2812B)の制御 その4(2020.01.09)  ・・・ 16x16マトリックスの制御(この記事です)  
 
NeoPixel(WS2812B)の制御 その3(2018.05.30)  ・・・ 8x8マトリックスの制御
 NeoPixel(WS2812B)の制御 その2(2018.05.22)   ・・・ SPIを使った制御
 NeoPixel(WS2812B)の制御(2018.05.20)            ・・・ GPIOを使った制御

2019年12月 5日 (木)

M5Stack始めました

M5Stackを購入しました。これからESP32関連もやっていきたいと思います。

Dscn2268

Dscn2269

Dscn2263

2019年10月29日 (火)

豊四季タイニーBASIC for Arduino機能拡張版 のマニュアル完成

「豊四季タイニーBASIC for Arduino機能拡張版 V0.07」のマニュアルがやっと完成しました。

01_20191029115601

マニュアル作成は非常に単調な作業で面白くないのですが、
しっかりと作っておかないと、1年後には全て忘却してしまいます。
全ては1年後の自分のためなのです。

  公開サイト  豊四季タイニーBASIC for Arduino機能拡張版 V0.07
  https://github.com/Tamakichi/ttbasic_MW25616L

これで、やっと電子工作の時間が取れます。


2019年10月23日 (水)

豊四季タイニーBASIC for Arduino機能拡張版 V0.07の公開

ブランチ版の仕様が確定し、メインストリーム(V007) にマージして正式版として公開しました。

  豊四季タイニーBASIC for Arduino機能拡張版 V0.07 メインストリーム(仕様確定版) 
    ・ https://github.com/Tamakichi/ttbasic_MW25616L

     ※ブランチは削除予定です。

V007版公開ですが、まだまだテスト不足で不具合対応、プログラムソースのダイエット等の修正を
メインストリームに逐次マージしていきます。

マニュアル(pdf形式)の内容もV007に対応しました。
まだまだ誤字等の記載ミスがあると思いますが、ぼちぼちと修正してまいります。

01_20191023093601

02_20191023093601

03_20191023093601

2019年10月18日 (金)

豊四季タイニーBASIC for Arduino機能拡張版の更新

開発中の豊四季タイニーBASIC for Arduino機能拡張版 V0.07を更新しました。

Tamakichi/ttbasic_MW25616L
   ブランチ(随時更新) https://github.com/Tamakichi/ttbasic_MW25616L/tree/update_to_v007

   2019/10/22 追記
   ブランチ版をメインストリーム(V007) にマージして正式版として公開しました。※ブランチは削除予定です。
   メインストリーム(仕様確定版)   https://github.com/Tamakichi/ttbasic_MW25616L


主な変更点
1)マニュアルの更新
  ・完成度 90%

2)システムコマンドを一般コマンドに変更
  コマンドラインでのみ利用可能なコマンドの大半をプログラム内でも利用出来るようにしました。
  LOADコマンドもプログラム内で実行出来ます。
  プログラムから別のプログラムをロードして実行することも出来ます。

3)Arduino MEGA2560ではデフォルトでVFD以外全て利用可能変更
  ttconfig.hの機能利用設定をArduno UnoとArduino MEGA2560 と別々にしました。
  Arduino MEGA2560 では、VFD以外全ての機能が利用可能です。

4)不具合修正
  いくつかの不具合を修正しました。


話が変わりますが、Arduino MEGA2560 の小型のボードを入手し使ってみましたが、小さくていい感じです。
形状的に、Arduino用のシールドは利用できませんが良しとします。

左が小型ボード、右が通常サイズのボード
Dscn2239

Arduino MEGA2560 は、フラッシュメモリとSRAMにまだ余裕があるのでフルスクリーンエディタ対応をちょっと考えています。


より以前の記事一覧