「PIC AVR 工作室」サイトの日記的なブログです。
サイトに挙げなかった他愛ないことを日記的に書き残してます。
PIC AVR 工作室 ブログ



とりあえず、ArduinoをPCに繋いでごにょごにょできる
環境を作ったので、ようやく、Arduino Uno R4 Minima
のdouble型がどういう実装になっているのかを試して
みることに。

とりあえず、double型で変数2個ほど作って、片方に
割られる数、もう片方を商にして、そいつをSerial.
printlnで出力すればいいんだろうとか思ってスケッチを
サクッと書いてみると…

いくつか落とし穴。

まずは、Selial.beginの後に、
while (!Serial) {
;
}
を入れないと、どうやらうまく表示できないみたいだった。

あとSerial.println関数では、直接double型を出力する
ことはできないっぽいな。
調べてみたら、

Arduinoでsprintfの書式とfloatの扱い方、0埋めとか

Arduinoで文字列に変換する関数sprintfを使用する場合のフォーマット指定子一覧の解説と浮動小数点の扱い方(Arduinoでは浮動小数点の指定子が使えません)の紹介記事です。そ...

くろべこblog

 


dtostrf関数っていうのを使って、double型を一旦文字列
(Stringオブジェクトではなく、char配列でいいみたい)
に変換してやる必要があるみたい。

で、出来上がったスケッチがこれ。



void setup() {
Serial.begin(9600);
while (!Serial) {
;
}
double a = 1.0;
double b = a / 3.0;
char buf[20];

Serial.println("start!");
dtostrf(b, 20, 15, buf);
Serial.println(buf);

}

(あぁ、最近のArduino IDEって、html形式でコピー
するっていう編集機能がなくなってしまったみたい。
あれ、何気に便利で愛用していたのに…テキストとして
ブログ記事に貼り付けちゃうと、インデントがなくなって
全部左寄せになっちゃうんだよな。なにかいい方法は
ないかな)

とりあえず、小数点以下15桁表示させてみたんだけど、
ちゃんとでてるみたい。
(実装が、float型だと約7桁。double型だと約15桁)

というわけで、およそ倍の桁が使えるようになった
ので、まぁ精度不足で困ることはないってことだろう。



あとは、R4 Minimaに実装されているクロック源なんだ
けど、IC内蔵のRC発振だろうと思うので、多分精度が低い。

調べてみると、




NJU6319AEっていうのがあるみたい。

水晶発振器用IC(クォーツクリスタル発振器) NJU6319AE (4個入): 半導体(モジュール) 秋月電子通商-電子部品・ネット通販

秋月でも売ってるし、Aliexでも売ってる。結構汎用に
使われているものみたいだな。入手性は悪くなさそう。
しかも、3段までの1/2倍分周期も入ってるやつもある
みたい。(秋月で扱ってるのは「A」なので分収なしの
やつみたい)

このICの出力バッファをトライステートにする端子
(/CONT)って、オープンでいいのかな?これ。内部で
プルアップされてるし。
それにしても、上記のtwitterの使用例の基板。なかなかに
便利そうで欲しいなこれ。

最大で50MHzまでってなってるんだけど、遅い方はどこまで
行けるんだろう?時計用の遅いクロックとかもいけちゃう
のかな?
まぁ、16MHzとかで発振させて、割り込み入力ピンからの
入力を、Arduino側で分周してから割込み掛けさせればいい
んだろうけどな。

とりあえず、Arduino Uno R4 Minimaを使って、double型
で割り算の結果を扱ったり、水晶発振子の精度(50ppm)
で正確な割込みを発生させることが比較的簡単にできる
ことはわかった。

ちょっとブレッドボードで、テスト動作させられる回路
を作って動かしたいところだな。
(その前に、そもそも素のR4 Minimaの発振精度がどの程度
なのかがわかるといいんだけど、計測器持ってないからな)


なんにしても、ちょっと実験してて、R4 Minimaはやっぱり
32ビットコアのおかげか、double型がちゃんとdoubleで計算
されているのでよかった、よかった。
(公式のリファレンスページが古くて、dueではdoubleとして
実装されているよ、っていうことしか書いてないんだよな)





【速報】ホンダが「モトコンパクト」を発表! 電動でモトコンポが再来、価格は1000ドル(約15万円)以下!【東京モーターショー2023】 | Webikeプラス

ホンダがアメリカで「Motocompacto(モトコンパクト)」を発表した。1981年のMOTOCOMPO(モトコンポ)と同じように折り畳み式のボディを採用した電動バイクは、キャリーケー...

Webikeプラス

 


ホンダ・モトコンパクト。

これ、軽くていいんだけど、航続距離が短いな。
車載用としての用途を考えた結果なんだろうけど、できれば
普段使いもできるように、もうちょっと航続距離を長く
できるオプションでも欲しいところなんだよなぁ。

それにしても、かなり軽量に作られているな。これなら、
一人でクルマに載せられそう。


コメント ( 0 )




こないだスイッチサイエンスで注文してたArduino Uno
R4 Minimaが届いた。



あれこれ弄り回す前に、いくつか調べ事とかしておかないと
いけないなと思ってるんだけど、まずはArduino IDEの
アップデートしておかないとなと。

どうやら6月に今のWindows環境をごにょごにょしてた時に
Arduino IDEをインストールして以来だと思うので、当然
アップデート来てるはず。…来てた。



IDEをアップデートして、ファイルメニューからボード
マネージャで、Arduino Uno R4 Minimaをインストール。

アップデートしたのはいいんだけど、最近Arduino IDEを
久しくいじってなかったので、浦島状態になってる。
画面左側に並んでるアイコンなんだろう?と思って1個1個
クリックしていく。ほほう。上から2個目がボードマネジャ
なんだな。アクセスしやすくなっているんだな。ほほう。

で、気になったのは上から4つ目の虫さんマーク。
開いてみると、



変数とかブレークポイントとかコールスタックとか、いろいろ
出てくる。ほほう。
もしかして、R4 Minimaって、USBケーブル1本でデバッガまで
使えるようになっちゃったの?とか期待してたら、さすがに
そうではなかったみたい。

https://docs.arduino.cc/tutorials/uno-r4-minima/debugger

「Segger J-Link」「Ozone」を用意して、SWD経由でデバッガ
の機能を使うみたい。そうなのか。

「Segger J-Link」は結構高いみたいなので、なにか汎用の
ものが使えないものかなぁ?とか思ってるところ。

https://garretlab.web.fc2.com/arduino.cc/docs/software/ide-v2/tutorials/ide-v2-debugger/

まだちゃんと調べきれてないけど、ほかのものを使っても
デバッグができそうな感じはある。

そういえば、

https://www.switch-science.com/products/8708

Raspberry Pi Picoデバッグプローブとかは使えないのかな?




で、まぁデバッグ環境もできれば整えて使えるようにしたい
ところではあるんだけど、今やりたいのはそういうことでは
なく、R4 Minimaが32ビットコアになっているので、これなら
もしかしたらfloat型とdouble型がちゃんと違う実装になって
いたりして、doubleが倍精度で計算してくれているんでは
ないのかなぁ?ってとこ。

ちゃんと倍精度で実装されているなら、いろいろと捗る
ことになりそうなので。

あとでちょこっとテスト用のスケッチ書いてみて、
計算結果を表示させて眺めてみよう。

これまでの8ビット版Arduino Unoとかって、なんでfloat型
しか実装されてなかったんだろうね?

処理速度云々であれば、単に処理が終わるまで待つだけ
だからあまり実装から外す意味はないだろうと思うん
だよな。
Serial.print関数とかキャスト演算子とかが重たくなりすぎ
たりするのをなんとかしたかったのかな?

まぁ、容量もほかの32ビットArduinoボードのように大きく
なったし、処理速度も上がったし、double型が実装されない
理由は見つからないので、多分実装されているんじゃないか
なぁというのが予想。
はたして…

コメント ( 0 )




Arduino Uno R4には興味はあるものの、Arduino環境は
mbedと違ってタイマ割込みライブラリが標準のものが
ないのがいつもネックになりがちなので、ちょっと手を
出せずにいたところ。

でも、そろそろタイマ割込みを作っちゃう人が出てくる
ころじゃないのかな?と思って検索。

【Arduino UNO R4】タイマーライブラリ作りました - WASHIYAMA GIKEN

Arduino UNO R4 で タイマー割り込みを処理するだけのライブラリを作りました。 あれこれ調べた結果は別エントリーにまとめます(多分) github.com 覚え書き init(period, ...

WASHIYAMA GIKEN

 


あぁ、やっぱり発見。

あまり詳しい情報まではわかんないんだけど、mbedのタイマ
割り込みなんかと似たような感じに見える。

もう一つの課題としては、割り込みの周期だなと思っていた
んだけど、この人の別の記事を眺めてみると、

【Arduino UNO R4】エフェクター的なものを作る試み(リバーブ) - WASHIYAMA GIKEN

いつものようにまずはリバーブから。 youtu.be 割込みでADしている関係でサンプリング周波数は22,050Hz。DMAでごにょごにょできればもう少し周波数をあげられるのではないか...

WASHIYAMA GIKEN

 


サンプリング周波数が22050Hz(22050sps?)らしいので、
10kHzくらいまでのアナログ信号は使えるみたいだなぁ。

(そもそもR4のADCの変換時間って、どのくらいなんだろ?)


まぁ、音声信号はそこそこ扱えそうなので、だいぶ興味が
わいてきた。大きいメモリも使い勝手よさそうだし、
クロックも少し速くなってるし。
(あまり速いCPU積んじゃうと、消費電力もあるから、
そこそこのスペックのを載せているんだろうな、と思う)

で、じゃぁR4はいま簡単に手に入るの?と思ってスイッチ
サイエンスとか眺めてみると…売り切れだなぁ。当面は入手
が難しいかな…

タイマ割込み以外はあまり気にしなくても、これまで通りの
感じで使えるだろうと思うので、タイマ割込みライブラリが
出回り始めたとなれば、あとは在庫が復活するのを待つばかり
だなぁ。




共立エレショップのメールに載ってたこれがなかなかよさげ。

モーターマウント130/140 (Φ20mm)

共立エレショップ

 


130モータ、140モータで使えるモータマウント。
モータ使った工作が捗りそう。






「あたらないカキ」

これはいいものだ!
マガキ用かなぁ?岩ガキなんかもいけるのかな?
なんといっても、カキは生食が一番うまいもんなぁ。

まぁ、これまでの養殖カキに比べれば、機材も手間暇も
多いだろうから、高くはなっちゃうだろうけどな。でも
安心して食べられるのはいいよなこれ。

いくらくらいになるんだろう?






3Dプリンタ住宅。この社長さんの考えているビジョンは
とてもいいものだと思うなぁ。

3Dプリンタで作るコンクリの建物って、やっぱ一番気に
なるのは、ただのコンクリだとヒビが入ったらそのまま
ぽっきり欠けたり、天井崩れたり…ってことになりかねない
ことなんだよな。

多分、単なるコンクリだけで積層するんじゃないんだろう
けど、鉄筋コンクリに近い強度と耐久性、加えて断熱性
なんかも備えないと、住宅にはなかなか厳しい気がする
んだよな。

面白そうだったので、さらに調べていく。



メリットデメリットをちゃんと述べられていて好感。
やっぱり鉄筋の話は含まれていた。

旧来式の鉄筋と同じものを作るのは難しいかもしれないけど、
短くて細い針金みたいなのを大量にまぜたコンクリを使うって
いうのはすでに考えられているらしい。
(それがどのくらいの強度や耐久性を持つのかはよくわからない
ところだけど)

なんにしても、こういう形で建築のコストが激変していくのは、
住宅建築の業界に入ってくるお金が減ることにもなるわけなん
だけど、一方で他のことに使えるお金が増えるということだから、
多分経済学的にみても、世の中をいい方に変えていくチカラに
なるんじゃないのかなぁ?

宇宙開発とかで先に広く使われることになるんじゃないかと
思っていたけど、まさか一般住宅用にこういう技術が使われる
日が来るとは。なんか、この先が楽しみな技術分野だな。


コメント ( 0 )




しばらく頭の片隅に追いやってたけど、ラジオペンチさんの

http://radiopench.blog96.fc2.com/blog-entry-1201.html


相当作り込んだRaspberry Pi PicoのFFTアナライザを眺めてて、
あぁ、そうそう。Arduino Unoの2KB SRAMでは、途中まで
こういうのを作っていたのに、Arduino IDEのバージョンアップ
毎にArduino Coreのメモリ量も増えていっちゃって、途中から
メモリ不足で動かなくなっちゃったやつを久しぶりに思い出す。

https://blog.goo.ne.jp/nekosan0/e/3c4c67109df2f7e71dd0ef9facdb0602


ちょっと検索してみたら、8年も前にやってたのか…。全然
完成に近づいてないんだけど、まぁ、Arduino Unoに5110液晶
を繋いで、ちっちゃいオシロを作ろうっていうやつ。

仮想VRAMだけでも結構容量食っちゃうので、SSD1306とか
みたいな、128×64ドットは容量的に厳しくて、5110液晶を
チョイスしてたんだけど、それでもFFTライブラリとオレオレ
LCDライブラリを組み込むとぎりぎりの容量といった感じ
だった。
このあとのArduino IDEのバージョンアップで、メモリ不足が
発生する様になって…っていう。

で、その後、Arduino Nano Everyの、SRAMが6KB搭載っていう
当たりがビビビときて、そっちにインポートしちゃおうと思って
いたんだけど、ハード構成がそもそもかなり違うあたりで
引っかかってたところ。

ADCの最大サンプル速度を得るためにどうするかとかって話
もありつつ、一番引っかかってたのは何と言ってもタイマ割込み。
SFR周りが全然変わっちゃってるから、既存のライブラリは
使えないし、だれかいいタイマ割込みライブラリを作って
くれたりしないかな?なんてあたりで止まってた。

GIT HUBで公開されていた

https://github.com/Kees-van-der-Oord/Arduino-Nano-Every-Timer-Controller-B

これがよさそうって目星をつけていたんだけど、サンプル
コードとか関連情報とか漁ってるうちに、ちょっと頭から
抜け落ちてた。

https://qiita.com/CoTechWorks/items/c32b64f2cba082fea5c0


Qiitaにちょっといい感じの情報がまとめられていた。

とりあえず手っ取り早く使うなら、上記のGIT HUBの
情報を元に使え、と書かれているんだけど、そもそも
Mega4809のタイマって、こういう風になっているのねぇ、
って辺りから結構まとまっててありがたい。
(データシートまだよく読んでないんだよな)

サンプルコードをざーーーっと眺めた感じでは、SFRを
直接ゴリゴリと設定して動かしている感じ。

そのほか、TCB周りの、そもそものタイマ関係の機能に
ついても、ざーーーっと整理されているみたい。ありがたい。


あと、タイマ割込みじゃなくて、高速PWM周りについて
調べている人も。

https://www.g200kg.com/archives/2020/11/arduino-nano-ev.html


正弦波波形をPWMで出力している。興味深い。


あとでじっくり眺めながら、ちょっと手を動かしたい。
ただ、その前にまず、PCの新しいマシンへの移行を
してしまわないとなぁ…とか思いつつ、なかなか使用中の
PCを移行するのって、タイミングが作りづらいんだよなぁ。




久々に、印字する要件があって、「さて、プリンタで印刷…」
と思ったんだけど、インクジェットプリンタのノズルが乾いて
固まっちゃったみたい。
ノズルのつまりを解消するオペを2回やってみても、1ドット
も出力されない…。
(何か月もプリンタ使ってなかったからなぁ…)

で、高いもんでもないし、買い替えちゃう手もあるんだけど、
やっぱもったいないので、なんとか解消できないかな?と
思って、プリンタヘッドを洗ってお掃除する方法を検索。

機種は、エプソンのPX-K150っていう白黒専用機なんだ
けど、機種で調べてみたら、やっている先人をちらほら
発見。

https://iaeunoi.com/fuminsyou/pxk150/


http://tm-laboratory.com/200312-epson-px-k150/


これ、水(ぬるま湯)でいいのかなぁ?IPAとか使うんじゃ
ないのかなぁ?
確か、インクが染料じゃなくて顔料なんだよな。




ロボットの動画をちょいちょいみていたせいか、サジェスト
されていた動画をちょっと眺めると、

https://www.youtube.com/watch?v=2APxeGDQs0U


https://www.youtube.com/watch?v=EWXlMM5UQBY


https://www.youtube.com/watch?v=QlBHYNMCnWQ


及川奈央さんが、ロボットに行って、ガントレットをやって
いたり、セーラームーンをやっていたり、パワードリフト
をやっていたりする動画。よい。

この人のしゃべり方って、すごいしっとりしてていいな!
んで、何気に、ガンガン連コしてコンティニューしまくって
遊んでるの、とても良いな。楽しんでるのが伝わる。

ちなみに、オイラも以前ロボットでパワードリフトやった
時、同じようにローギヤのまま走り続けて、なんでこんなに
追い付かないの?って思いながら走ってた。
(そのあと。ギヤチェンジ要るのか、と思ってもう1ゲーム
走ったものの、1面クリアできなかったという。昔、どう
やってこのゲーム遊んでたのかすっかり忘れてしまったな…)

その流れから、「レトロ自販機でお弁当!」っていう動画が
あった。サムネを見て、あぁ!これは!!と思って眺める。

https://www.youtube.com/watch?v=yQdQxFC_iyA


やっぱり!あらいやオートコーナーだ。ここ大好きなんだよな。

51号沿いの、潮来より少し西側あたりで釣りをするときに、
とても便利なんよな。イートインできて、飲み物もあって。
動画中でも、釣りとかの人が使ってるって言ってたけど、そう、
まさに釣りの時に便利なんだよな。

51号っていう場所ながら、駐車場が小さいので、トラックとか
トレーラーとかには使いにくいと思うけど、乗用車サイズの
クルマで使うのはとても便利なんだよな。

ポイントが荒れるのはまずいので、詳しくは書かないけど、
ここから一本道でT字路のところまで走ったところに駐車
出来るところがあるので、そこにクルマを停めると、
おかっぱりが出来るいいスポットだったりするので、
あっち方面に行くと、この辺は必ず巡回する道なんだよな。

面白かったので、チャンネル登録して、レトロ自販機探訪
とかいくつか眺めてた。感性がとてもいいなぁ。

https://www.youtube.com/watch?v=F-9iS-gDfhY



コメント ( 0 )




https://twitter.com/shinichi_8o2/status/1517027455575670785

おぉ、面白いな。赤外線LEDを直接オシロのプローブに
繋いで、リモコンから信号を当てると、オシロで拾えて
しまうという…。

そもそもフォトダイオードやフォトトランジスタの中身が
相変わらずよく解ってないのでなんとも言えないんだけど、
LEDと、フォトダイオードやフォトトランジスタを比較
すると、構造的に全く違うのか、それとも特性とかの違い
だけなのか…。





Arduino用のVS1053bシールド。弄ろう弄ろうと思って
まだ弄れてないんだけど、とりあえず情報を整理して
おきたいなと。

https://wiki.seeedstudio.com/Music_Shield_V2.2/

SDカード、2GBまでしか対応してないの?それはちょっと
困るなぁ。
SDカードライブラリの制約なのか、それとも他のところの
制約なのかがよくわからないんだけど、sdFatライブラリを
使ったら、もうちょっと大きいSDカード扱えるのかなぁ?

https://www.arduino.cc/reference/en/libraries/sdfat/

https://www.elecrow.com/wiki/index.php?title=VS1053_MP3_Shield


あと、VS1053といえば、MIDI信号をシリアルで直接受けられる
ICなんだけど、その辺って、このシールドはどういう回路に
なっているんだろうな?と。

くだんの、

https://wiki.seeedstudio.com/Music_Shield_V2.2/

のページの下の方では、MIDIについてサンプルスケッチ云々
が書かれているんだけど、ざーーーーっと読んでみて、この
MIDIが、シリアル入力のMIDIなのか、それともMIDIファイル
のことなのかがよく判らなかった。あとでもうちょっと
読み直してみよう。

そうそう。秋月でVS1053を買った目的は、一つはmp3の再生
で、もう一つはMIDI音源(シリアルMIDI入力して音声を出力
するMIDIシンセ)だったんだよな。

パッと見た感じ、シリアルのMIDI信号を扱う端子が見当たら
無いんだよなぁ…。このサンプルスケッチが扱ってるMIDI
って、MIDIファイル(SMFファイル)のことなのかなぁ?

https://dg.ishibashi.co.jp/?p=30623


せっかくシールド買ったんだけど、できれば、mp3再生用と、
シリアル入力のMIDI音源の、両方で使えるといいんだけど
なぁ。




https://www.youtube.com/watch?v=MA0E0htHHKo

乾燥重量550kg、4A-GEU(多分)を搭載したセブン。
やっぱり、軽さは正義だよなぁ。

そういえば、このくらいの重さといえば、かつてのあの
MP4/5とか、505kgぐらいだったよなぁ、確か。(カメラ含む)
700PSくらいあるんだよな。恐ろしいパワーウェイトレシオ
だよなぁ。NAなのに。




コメント ( 0 )



« 前ページ 次ページ »