フォト
2024年9月
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 30          
無料ブログはココログ

arduino

2024年3月21日 (木)

Arduino UNO R4 WiFiに関するメモ

遅ればせながらArduino UNO R4 WiFiの調査(-_-;) .. 随時追記します

文献調査
Arduino UNO R4 WiFi
 https://docs.arduino.cc/hardware/uno-r4-wifi/

 まずは、本家のこの資料の参照がスタート地点でしょう..
 ここを起点に、色々と調べることが出来ます

Arduino UNO R4 WiFi - Product Reference Manual 
 https://docs.arduino.cc/resources/datasheets/ABX00087-datasheet.pdf

 「このボードは何ぞや?」を知るために①のリンクからこの最初にこのPDFを読む..

Arduino UNO R4 WiFi Cheat Sheet
 https://docs.arduino.cc/tutorials/uno-r4-wifi/cheat-sheet/
 A reference to all technical features on this board, with pointers to additional documents.

 この資料が一番全体の機能や使いざっと把握できそうです

Arduino Renesas fsp Boards(ArduinoCore-renesas)
 https://github.com/arduino/ArduinoCore-renesas

 Arduino UNO R4 WiFiのCoreおよびライブラリのソースを見るにはここ
 さらにボード依存しない抽象層のAPIは以下
   ArduinoCore-API 
  https://github.com/arduino/ArduinoCore-API

Renesas  Arm® Cortex-M MCU RA4M1
 RA4M1 48MHz Arm® Cortex®-M4とLCDコントローラおよびHMI用静電容量式タッチセンサ搭載 32 ビットマイクロコントローラ
 
 搭載マイコン RAM1の機能知るための公式サイト掲載情報、とりあえず下のマニュアルが日本語なので役立ちそう
  Renesas RA4M1グループ ユーザーズマニュアル ハードウェア編

トランジスタ技術 2024年 1月号 新生!Arduino Uno R4 本格派ルネサス版
 とりあえず購入して積んでいました。今更ながら読んでみます..

・・・

Renesas RA4M1のブロック図
20240322-103131
  「Renesas RA4M1グループ ユーザーズマニュアル ハードウェア編」- 1. 概要 1.2 ブロック図より抜粋


・・・


用語関連
FSP(Flexible Software Package)
 ルネサスのArmマイコンRAファミリを用いた組込みシステム設計向けに、ユーザフレンドリでスケーラブル、
 かつ高品質なソフトウェアを提供するために設計されたソフトウェアパッケージ。
 

Arduino用 美咲フォントライブラリを更新しました

「Arduino用 美咲フォントライブラリ 教育漢字・内部フラッシュメモリ乗せ版」を更新しました。
ここ最近の調査をライブラリに反映しました。
 
・Arduino-misakiUTF16 Arduino用 美咲フォントライブラリ 教育漢字・内部フラッシュメモリ乗せ版
 https://github.com/Tamakichi/Arduino-misakiUTF16

おもな変更点
・ライブラリ形式(library format)をrev. 2.2に変更(以前はrev 1.x)
・美咲フォントの最新版 2021-05-05(美咲ゴシック第2)利用に変更

 (以前は2012-06-03 正式公開初版を利用)
・isZenkaku()の追加
 ⇒ 半角(4ドット)・全角(8ドット)幅判定により半角文字を詰めて表示可能となりました
・いくつかの不具合対応(半角・全角変換ミスなど)


せっかくの機会なので、新Arduino Uno(Arduino Uno R4 WiFi)に搭載されているLEDマトリックスで、デモってみました。

Arduino Uno R4 WiFi搭載 LEDマトリックスで美咲フォント表示
Arduino_uno_r4_led_matrix

動いている様子(Youtube ※BGMあり)


表示器がボート搭載だと、お手軽に利用できて良いですね~

プログラムソース


このサンプルプログラムは、ライブラリのサンプルプログラムとして添付しました。

参考にした文献
・Using the Arduino UNO R4 WiFi LED Matrix
 https://docs.arduino.cc/tutorials/uno-r4-wifi/led-matrix/

 公式サイトのLEDドットマトリックスを利用するための解説です。
 利用するライブラリ及び、LEDドットマトリックスのフレームバッファの構造について説明されています。

今回作成したサンプルプログラムでは、フレームバッファにデータをセットして表示しています(setAt()関数)。
フレームバッファの構造は、横12ドットx縦8ドットの計96ドット分の96ビットをlong整数 32ビットx3個 に単純に詰めている感じです。
フレームバッファを直接いじれば、なんでも表示できそうですね

フレームバッファの左スクロールを実装しているscroll()関数、
汎用性のない、12x8ドット限定の力業実装で少々分かりにくいコードですが、
32ビットx3の配列をビットシフトでビットを左にずらしているのですが、その際に
 ①ビットシフト時の最上位ビットの欠落対策
 ②0~7行の右端ビットクリア、
 ③ワードをまたぐ行の左端ビットの処理
を行って補正してます。
ちょっとエレガントでないのでもう少し良い方法があるかもしれません

新Arduino Uno R4ボード、搭載マイコンがRenesas RA4M1(Arm Cortex-M4)に変更となりました。
このボードも発売直後に購入したものの、放置していました。やっと使い始めた感じです。
まだまだ、使いこなせてないので、ドキュメントをあさりつつ遊んで行きたいと思います。

こんな感じで、ライブラリ更新と少々の動作確認の上、公開いたしました。

2024年3月18日 (月)

Arduino用ライブラリの自作用のメモ

Arduino用の美咲フォントライブラリの更新に伴い、Arduino用ライブラリ作成の再確認メモです。
(久しぶりのライブラリ作成・修正ですっかり忘れてました)

参考文献
・Arduino DOCS - Home/Learn/ Writing a Library for Arduino
 https://docs.arduino.cc/learn/contributions/arduino-creating-library-guide/
 ライブラリ作成の入門編的な資料です。

・Library specification
 https://arduino.github.io/arduino-cli/0.36/library-specification/
 ライブラリ作成に関する仕様です。

・KEI SAKAKI's PAGE. - Arduino開発環境用の「ライブラリ」を作成してみる
 https://kei-sakaki.jp/2015/01/07/making-library-for-arduino-development-environment/
 Arduino IDEのバージョン的に少々古い情報となりますが、大変参考になりました(情報公開に感謝♪

まずは、ディレクトリ構成に規約があります。
■ ライブラリのディレクトリ構成
librarys\
   ライブラリ格納ディレクトリ\
    keywords.txt
    library.properties
    src\
    ライブラリ用ヘッダーファイル
    ライブラリ用ソースファイル
   examples\
    サンプルプログラム\
      サンプルプログラムソースファイル
        ・・・
   extras\ (オプション)
     資料など

例:美咲フォントライブラリの例


librarys\
└─ misakiUTF16\
    │  keywords.txt
    │  library.properties
    ├─ examples\
    │  ├─ aitendo_ht16k33
    │  │      aitendo_ht16k33.ino
    │  ├─ banner\
    │  │      banner.ino
    │  └─ misaki_tvout\
    │          misaki_tvout.ino
    └─ src\
      misakiUTF16.cpp
      misakiUTF16.h
      misakiUTF16FontData.h


keywords.txt の定義


name=misakiUTF16
version=1.2.0
author=Tamakichi
maintainer=Tamakichi
email=tamacat2014@gmail.com
sentence=Japanese font data and driver
paragraph=8x8dots Misaki font driver for Arduino Uno
category=Other
url=https://github.com/Tamakichi/Arduino-misakiUTF16
architectures=*

■library.propertiesの定義

#######################################
# Syntax Coloring Map For misakiUTF16
#######################################

#######################################
# Datatypes (KEYWORD1)
#######################################

#######################################
# Methods and Functions (KEYWORD2)
#######################################
misakiUTF16 KEYWORD2
findcode KEYWORD2
getFontDataByUTF16 KEYWORD2
getFontData KEYWORD2
utf16_HantoZen KEYWORD2
hkana2kana KEYWORD2
HantoZen KEYWORD2
charUFT8toUTF16 KEYWORD2
Utf8ToUtf16 KEYWORD2
getFontTableAddress KEYWORD2
isZenkaku KEYWORD2
LatenS2Zen KEYWORD2
isBasicLatin KEYWORD2
isLatinSupple KEYWORD2

#######################################
# Constants (LITERAL1)
#######################################


■開発者用フラグファイル
ライブラリの開発中、Arduino IDEにてlibrarys\に配置いているサンプルプログラムの上書きは禁止されているのですが、
ライブラリのルートフォルダに.developmentを配置すると上書き可能となる。

これについて検証してみましたが、Arduino IDEでサンプルプログラムを直接開いた分には、この設定無しに上書きできます。
Arduino IDEの「スケッチの例」にてサンプルプログラムを開いた場合は、.developmentの有無に関係なく、上書き出来ません。
う~ん、今一意味不明..


・・・

しかし、ココログ.. htmlのタグ記述とかできるのに、いうこと聞いてくれなくて糞過ぎ..(>_<)
過去の記事は修正するとレイアウトが崩れるので編集不能だし.. 何とかならんですかね..

2020年11月21日 (土)

豊四季Tiny Basic for micro:bit のマニュアルを更新しました

micro:bit(v1.5)で動作する「豊四季Tiny Basic for micro:bit」のマニュアルを更新しました。
今回の更新は、レイアウト不具合の修正のみです。

公開サイト
・豊四季Tiny Basic for micro:bit V0.08
   https://github.com/Tamakichi/ttbasic_microbit

micro:bitといえば、V2.0がリリースされ、日本でもそろそろ販売開始です。
スイッチサイエンスさんのmicro:bitの商品ページでも、バージョンアップによる商品切り替えを掲示しています。
今、micro:bitを購入する場合は、バージョンの注意が必要ですね。

参考情報
・micro:bit のバージョンアップについて(仕様変更点等)
  https://switch-education.com/2020/10/13/

V2.0では、スピーカーとマイクが付いた他、
フラッシュメモリが256kbから512kb、
SRAMが16kbから128kbに大幅に増えたようです。

豊四季Tiny Basicの実装においては、フラッシュメモリ、SRAMの容量不足で
無線通信に未対応でしたが、V2では乗せられるかもしれません。



2020年7月27日 (月)

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

Arduino(AVR)版用でMega2560でのフルスクリーンエディタ対応中のV0.08を更新しました。

豊四季タイニーBASIC for Arduino機能拡張版 V0.08
https://github.com/Tamakichi/ttbasic_MW25616L/tree/support_fulledit

01_20200727074901

Arduino Uno環境でコンパイルエラーが発生する不具合を修正しました。
開発中のため、ブランチです。完成次第、本流にマージします。




2020年7月24日 (金)

Arduino IDE 1.8.13が公開されています

しばらく、電子工作から遠のいていたのですが、久しぶりにArduinoの公式サイトをチェックすると、
Arduino IDEがアップデートされて1.8.13が公開さていました。

Download the Arduino IDE https://www.arduino.cc/en/Main/Software 
01_20200724073501

リリースノートをチェックすると、今回のアップデートは少々変更点が多いようです。
早速、アップデートしてみました。

まずは、IDE周りでは「ツール」メニューのボード関連がボート別にグループ化されて使いやすくなりました。

06_20200724075601  

この変更は嬉しいですね。
以前はターゲットボードを切り替える際、長いメニューリストをスクロールして探す必要がありました。
書込装置のメニューも関係の無いボードの情報はリストに表示されないようになったようです。

core周りでは、AVRのgccに更新があったようです。またWireライブラリ(I2C)でtimeoutがサポートされたようです。
07_20200724080501

確かに、I2Cの送受信、タイムアウトが無いので待ち続けるしかなくて難儀しましたね。
API的に修正されたかは、後で調べてみたいと思います。

gccの更新は要注意で、自作のライブラリ等でコンパイルが通るか確認が必要ですね。




2020年5月13日 (水)

SPI接続フラッシュメモリモジュールを入手しました

Aliexpressにて、SPI 接続で利用するフラッシュメモリ W25Q64を見つけ、入手しました。
容量的には64Mビット(8Mバイト)です。3.3Vでの利用します。

 W25Q64 64Mbit 8mbyte Flash Storage Module SPI Interface
01_20200513113001




DIP版は以前から、Arduino用の漢字フォントの格納用に利用していたのですが、

W25q64

ブレッドボード上で使う場合、こんな感じで配線が必要なんですよね。

Demo

今回入手したも―ジュールを使うこと、改善できると思います。


届いた製品


Dscn2645

ちゃんと、梱包されていていい感じです。

Dscn2646

基板に乗っているICは、W25Q64FVでした。使ったことがあるICで、これなら問題なしです。
基板やはんだ付け具合は問題なさそうです。


動作確認

早速、はんだ付けして、3.3V対応の Arduino Uno互換機で動作しました。

Dscn2693

この 3.3V対応のArduino Uno、なかなか重宝しています。

Dscn2694

モジュールには通電が確認出来るLEDが乗っています。

動作確認には、自作のW25Q64ライブラリのサンプルプログラムを利用しました。

  ■ 利用したライブラリ
     Arduino用 SPI接続フラッシュメモリW25Q64ライブラリ
     https://github.com/Tamakichi/Arduino-W25Q64

   03_20200513115801    
   ライブラリにUnique ID取得の際、バイト長にミスがることをあり、修正しました。
  (nopnop2002さん、不具合のご指摘、ありがとうございました)

スケッチを書き込んで、サンプルプログラムにて
フラッシュメモリの種別、ユニークIDの取得、データの読み書き等を行ってみました。

02_20200513120101      
 
正常に認識し、問題無く動作しているようです。

念のため、STM32マイコンでも試して見ましたが、問題なく動作しました。

Dscn2696

3.3V利用には注意が必要ですが、お手軽に大容量(8Mバイト)のメモリが利用出来るようになりました。


2020年2月20日 (木)

豊四季タイニーBASIC for Arduino 機能拡張版 フルスクリーンエディタ対応

継続的に開発を進めている「豊四季タイニーBASIC for Arduino機能拡張版」、
Arduino Mega2560にも対応しているのですが、SRAMが5kバイト無駄に余っています。

SRAMを有効に使おう! ということで、Mega2560限定でフルスクリーンエディタ対応してみました。

まだまだテスト中ですが、とりあえず動いています。
画面操作は「豊四季タイニーBASIC Arduino STM32」と同等です。

01_20200220201001

起動画面(クリックすると拡大表示します)
02_20200220201001
 バージョンは1つ上がってV0.08としています。

内部EEPROMに保存していたプログラムをロードして表示
03_20200220201001

Arduino Mega2560では、プログラム領域が2Kバイトです。
内部EEPROMには、2kバイトのプログラムが2本保存することが出来ます。

LISTコマンドでプログラムを出力し、
フルスクリーンでカーソル移動にてテキスト編集出来ます。
全角文字(シフトJIS)にも対応しています。

04_20200220201001

サンプルとして、組み込んでいる美咲フォントのデータを参照して、
「あ」を表示してみました。

豊四季タイニーBASIC Arduino STM32」版で作成したフルスクリーンエディタ部分のクラスライブラリを
そのまま組み込んだので、意外と楽に実装出来ました。

現時点では、ブランチ版として開発を進めています。
フルスクリーンエディタ対応の他に、Mega2560のもう一本のシリアルポートも使えるようにしたいと思います。

ブランチ版として開発を進めています。下記ブランチ版リンクページから参照&ダウンロード可能です。
https://github.com/Tamakichi/ttbasic_MW25616L/tree/support_fulledit

00_20200220201001

Arduino Mega2560ではまだまだメモリの余裕がありそうです。
豊四季タイニーBASIC Arduino STM32」でやっていたOLED画面+PS/2キーボードも実装出来るかも..
Neopixelの16x16ドットマトリックスにも対応したい..

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の最新版を取り込んで利用可能になると思います。

より以前の記事一覧