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

2024年4月 6日 (土)

NHK R1 文芸選評 短歌 テーマ「猫」(*´ω`*)

私はラジオ派(NHK R1固定)(TVはあまり見ない)で、常時24時間視聴... (*´ω`*)
聞き流してていたところ、4/06(土)  文芸選評 短歌 テーマ「猫」で猫の短歌.... (*´ω`*)

短歌選者の穂村弘さん、猫飼い初心者のようですが、雰囲気・お声がいいですね~

「文芸選評」

https://www.nhk.jp/p/bungeisen/rs/X6ZRG6K3N8/ 


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

2024年3月15日 (金)

やはり、C言語は難しい

MicroPython環境で美咲フォントを利用するライブラリを作成した後、Arduino版の美咲フォントライブラリをの修正に着手したのですが、
Pythonにどっぷりつかった後に、C・C++をいじると、『やはり、C言語は難しい』と感じますね~
特にC言語で、UTF-8のマルチバイト文字の操作は厳しい・面倒くさい(>_<)
言語レベルでユニコードをサポートしていないのは、何とかならんですかね~

文字・文書、画像、データ(CSV、リストなど)などをお手軽・簡単の処理するには、C言語は不向き..
個人的にプログラミング的な思考はC言語ベースなのです。
ただ、PythonはPythonで、バイトデータや構造体的なきっちりとしたデータの構造や塊の操作においては面倒くさいです。

Arduinoでは、C言語の難しいと思われている「ポインター」の利用は「配列に置き換える」などの指針がありますね~



«Raspberry Pi Pico(MicroPython)でLEDドットマトリックスを使ってみる