2026年5月 この範囲を時系列順で読む この範囲をファイルに出力する
Art-Net 関連品の開発では「Rust」を使うことにしました。
Rust が持つ標準機能が Art-Net 関連品を作るのに絶大に有益なことがわかったからです。コレクションと呼ばれる機能です。
新たな言語を勉強するのは大変ですが、C言語の方言と思えばゼロベースではありません。C言語を学んだことで Rust がすんなり自分の中に入ってくる実感があります。Rust を学ぶためにC言語を勉強するベキ!?ってことでもありますが、案外そんなもんかなと感じています。C言語でも Rust でもコードの裏側にあることは同じってことですかね。ハードウェアを動かすのがソフトウェアですから。
あまりに便利なので Python みたいに遅くねーの?って疑問はありますが、コンパイルされたバイナリはC言語やC++に匹敵するらしいのでその評価を信じましょう。
言葉は優しいですが、AI/Geminiさんのお言葉を要約するなら基板を作ってPIC16アセンブラを書いて RaspberryPi と協調動作する装置を作る素人(アマチュア)は斜め上過ぎる存在らしいです。私にとっては日常感覚ですケド、その延長かプログラム言語に対するアプローチも少し変みたいです。私からしたらパチンコやスロットで確率数値を操って常に勝ち続けてる人の方がどうかしてますケド。
#器具の製作 #C言語 #Rust
Rust が持つ標準機能が Art-Net 関連品を作るのに絶大に有益なことがわかったからです。コレクションと呼ばれる機能です。
新たな言語を勉強するのは大変ですが、C言語の方言と思えばゼロベースではありません。C言語を学んだことで Rust がすんなり自分の中に入ってくる実感があります。Rust を学ぶためにC言語を勉強するベキ!?ってことでもありますが、案外そんなもんかなと感じています。C言語でも Rust でもコードの裏側にあることは同じってことですかね。ハードウェアを動かすのがソフトウェアですから。
あまりに便利なので Python みたいに遅くねーの?って疑問はありますが、コンパイルされたバイナリはC言語やC++に匹敵するらしいのでその評価を信じましょう。
言葉は優しいですが、AI/Geminiさんのお言葉を要約するなら基板を作ってPIC16アセンブラを書いて RaspberryPi と協調動作する装置を作る素人(アマチュア)は斜め上過ぎる存在らしいです。私にとっては日常感覚ですケド、その延長かプログラム言語に対するアプローチも少し変みたいです。私からしたらパチンコやスロットで確率数値を操って常に勝ち続けてる人の方がどうかしてますケド。
#器具の製作 #C言語 #Rust
DMX-Timer は終わりが見えてきました。次の課題はArt-Net 関連機器と行きたいところです。
これらは RaspberryPi 上でのプログラミングが主となりますが言語どうするか。C言語か Rust の二択ですけど、未だに迷っております。この2種はハードウェアを扱うのに適した言語ですから Art-Net 関連機器を組むにはよいと思われます。両方を使いこなせればいいのですが、年齢的に一つでも辛いのに二つは無理。。。少し前までC言語でいくつもりで勉強していましたが、 Rust の教科書を斜め読みしたところ自分がやりたいことには Rust が向いているような気がして困っているワケです。
Rust の情報に接しますと「所有権がぁ、所有権がぁ」と脅しの様に書かれております。これはC言語での「ポインタがぁ、ポインタがぁ」や、C++での「オブジェクト指向がぁ、がぁ」と同じです。身に着けないと使えないし身に着ければよりよいコードが書けるのですから身に着ければいい。簡単でないことは確かですが、言語をデザインした神エンジニアたちは苦労や混乱をさせたかったワケではありません。たぶん。
開発には心の余裕とまとまった時間が必要です。なかなかそんな時間は取れませんので、引き続き妄想しながら勉強をしましょう。
#C言語 #Rust
これらは RaspberryPi 上でのプログラミングが主となりますが言語どうするか。C言語か Rust の二択ですけど、未だに迷っております。この2種はハードウェアを扱うのに適した言語ですから Art-Net 関連機器を組むにはよいと思われます。両方を使いこなせればいいのですが、年齢的に一つでも辛いのに二つは無理。。。少し前までC言語でいくつもりで勉強していましたが、 Rust の教科書を斜め読みしたところ自分がやりたいことには Rust が向いているような気がして困っているワケです。
Rust の情報に接しますと「所有権がぁ、所有権がぁ」と脅しの様に書かれております。これはC言語での「ポインタがぁ、ポインタがぁ」や、C++での「オブジェクト指向がぁ、がぁ」と同じです。身に着けないと使えないし身に着ければよりよいコードが書けるのですから身に着ければいい。簡単でないことは確かですが、言語をデザインした神エンジニアたちは苦労や混乱をさせたかったワケではありません。たぶん。
開発には心の余裕とまとまった時間が必要です。なかなかそんな時間は取れませんので、引き続き妄想しながら勉強をしましょう。
#C言語 #Rust
昨日修正した DMX-Timer は15時間経過でほぼ合ってます。このまま続けて誤差を出しましょう。
48時間で1秒くらいだったらOKとし、誤差次第ではキャリブレーション機能を追加します。
試作2号機が組めたら並列で試験です。
修正前は8秒/日の誤差でした。カウント値を1秒毎に3つ多くすることで今があります。
カウント値1つあたり2.6秒/日の補正ですので、これ以上細かい誤差は補正出来ません。
追記
24時間経過で1秒以下の誤差です。
見た目で数値がわかるわけありませんが、1秒の1/3か半分くらい遅れているように見えます。仮に0.5秒なら明日には1秒になるでしょう。
今以上の補正は難しいので、この後は誤差を把握するだけにします。
追記の2
34時間経過で誤差は1秒以下。
何時間後に1秒ズレるのか確認しようと思っていますが、48時間で1秒くらいなら御の字なのでそこで終わりにしましょう。
#ガチ工作 #器具の製作
48時間で1秒くらいだったらOKとし、誤差次第ではキャリブレーション機能を追加します。
試作2号機が組めたら並列で試験です。
修正前は8秒/日の誤差でした。カウント値を1秒毎に3つ多くすることで今があります。
カウント値1つあたり2.6秒/日の補正ですので、これ以上細かい誤差は補正出来ません。
追記
24時間経過で1秒以下の誤差です。
見た目で数値がわかるわけありませんが、1秒の1/3か半分くらい遅れているように見えます。仮に0.5秒なら明日には1秒になるでしょう。
今以上の補正は難しいので、この後は誤差を把握するだけにします。
追記の2
34時間経過で誤差は1秒以下。
何時間後に1秒ズレるのか確認しようと思っていますが、48時間で1秒くらいなら御の字なのでそこで終わりにしましょう。
#ガチ工作 #器具の製作
ちょっと誤差計算しました。
96ppmのズレってことは、8MHzのクロックで768カウント相当です。
このクロックの256カウントで1カウントするカウンタを3,125カウントして0.1秒を得ていますが、これに閏カウントを1秒毎に3つ入れればイイとなります。各秒のアタマ(1/10秒がゼロの時)に768カウント分まとめて入れてもいいかな?違いは96usecですから気にならないと思う。これなら簡単かも。
実際の誤差は96ppm丁度ではありませんし水晶発振子に誤差があるならば単純ではありませんが、1秒あたり256x3のカウント調整をすれば今よりずっと良い値になると思うのです。
追記
モヤモヤしてしまうので書き直し。30分くらいの作業でした。
またもや動作試験です。
#ガチ工作 #器具の製作
96ppmのズレってことは、8MHzのクロックで768カウント相当です。
このクロックの256カウントで1カウントするカウンタを3,125カウントして0.1秒を得ていますが、これに閏カウントを1秒毎に3つ入れればイイとなります。各秒のアタマ(1/10秒がゼロの時)に768カウント分まとめて入れてもいいかな?違いは96usecですから気にならないと思う。これなら簡単かも。
実際の誤差は96ppm丁度ではありませんし水晶発振子に誤差があるならば単純ではありませんが、1秒あたり256x3のカウント調整をすれば今よりずっと良い値になると思うのです。
追記
モヤモヤしてしまうので書き直し。30分くらいの作業でした。
またもや動作試験です。
#ガチ工作 #器具の製作
昨日は見間違えをしたようです。
基準となる時計の00秒で DMX-Timer のズレを見るハズが逆をやっていたようです。
先ほどチェックしたところ、120時間30分経過で42秒のズレです。誤差は 96ppm 程度。
一定していますのでそういうものだとしましょう。
昨日は34秒のズレだったワケです。
この誤差ですと1日あたり8秒、1時間あたり0.346秒、10分なら0.0576秒のズレです。1秒ズレるのは2時間53分後です。
DMX-Timer は計測や自動操作ではなく経過時間の目安を見るためのものです。量販店で手に入るストップウォッチと同等かそれ以上の精度ですから問題ないっしょ。
時間があって気が向いたら精度を高める方法を考えてみましょう。
もし、時計に相当する仕掛けを作るなら、それ相応の精度を持ったタイマーを使うか RaspberryPi などの NTPサーバーと通信出来るマイコンを使うのが良いかと。
タイマーを使った定時実行のライトアップを毎年やらせて頂いていますが、年に一回の使用なので翌年のセットアップではタイマーの時刻がズレています。仕込み時に合わせれば問題ありませんが、この程度の精度で十分仕事になっています。より精度が高いのは NTPサーバーや基準電波との同期だと思います。1/100秒くらいの精度は出ると思いますので、年中動かしっぱなしならお勧めの方法です。
#ガチ工作 #器具の製作
基準となる時計の00秒で DMX-Timer のズレを見るハズが逆をやっていたようです。
先ほどチェックしたところ、120時間30分経過で42秒のズレです。誤差は 96ppm 程度。
一定していますのでそういうものだとしましょう。
昨日は34秒のズレだったワケです。
この誤差ですと1日あたり8秒、1時間あたり0.346秒、10分なら0.0576秒のズレです。1秒ズレるのは2時間53分後です。
DMX-Timer は計測や自動操作ではなく経過時間の目安を見るためのものです。量販店で手に入るストップウォッチと同等かそれ以上の精度ですから問題ないっしょ。
時間があって気が向いたら精度を高める方法を考えてみましょう。
もし、時計に相当する仕掛けを作るなら、それ相応の精度を持ったタイマーを使うか RaspberryPi などの NTPサーバーと通信出来るマイコンを使うのが良いかと。
タイマーを使った定時実行のライトアップを毎年やらせて頂いていますが、年に一回の使用なので翌年のセットアップではタイマーの時刻がズレています。仕込み時に合わせれば問題ありませんが、この程度の精度で十分仕事になっています。より精度が高いのは NTPサーバーや基準電波との同期だと思います。1/100秒くらいの精度は出ると思いますので、年中動かしっぱなしならお勧めの方法です。
#ガチ工作 #器具の製作
本業が忙しくなってきたので工作は一旦休憩です。
されど気になったので時計の精度について調べてみました。
一般的: 日差 -10〜+20秒程度
高品質/アンティーク: 日差 +30〜+60秒?
クロノメーター規格: 平均日差 -4〜+6秒以内
クォーツ式時計 通常モデル: 月差 ±15秒前後(日差にすると±0.5秒)
クォーツ式時計 年差モデル: 年差 ±5秒〜±1秒(超高性能)
とのこと。
一般的が「日差 -10〜+20秒程度」なら DMX-Timer はまぁまぁでしょう。
比較対象は原子時計の値を表示するアプリやサイトを使うのが良さそうです。
ネット回線の遅延もありますし観測期間が短いと評価が難しいので数日単位が良いと思います。4-5日動かして秒のズレで見ればいいかなと。
妄想ですが、ネットに繋げて原子時計と比較して自動的にキャリブレーションが出来たらいいなぁ~なんて思います。
DIYとして手に入る水晶発振子ですと温度による変動も大きいようです。製品によって違いますが、一般的には±20~100ppmくらいらしい。今以上の精度を求めるには温度管理が重要になりそう。こりゃ無理ってもんです。
#ガチ工作 #器具の製作
されど気になったので時計の精度について調べてみました。
一般的: 日差 -10〜+20秒程度
高品質/アンティーク: 日差 +30〜+60秒?
クロノメーター規格: 平均日差 -4〜+6秒以内
クォーツ式時計 通常モデル: 月差 ±15秒前後(日差にすると±0.5秒)
クォーツ式時計 年差モデル: 年差 ±5秒〜±1秒(超高性能)
とのこと。
一般的が「日差 -10〜+20秒程度」なら DMX-Timer はまぁまぁでしょう。
比較対象は原子時計の値を表示するアプリやサイトを使うのが良さそうです。
ネット回線の遅延もありますし観測期間が短いと評価が難しいので数日単位が良いと思います。4-5日動かして秒のズレで見ればいいかなと。
妄想ですが、ネットに繋げて原子時計と比較して自動的にキャリブレーションが出来たらいいなぁ~なんて思います。
DIYとして手に入る水晶発振子ですと温度による変動も大きいようです。製品によって違いますが、一般的には±20~100ppmくらいらしい。今以上の精度を求めるには温度管理が重要になりそう。こりゃ無理ってもんです。
#ガチ工作 #器具の製作
2026年4月 この範囲を時系列順で読む この範囲をファイルに出力する
DMX-Timer を数日動かしました。水晶発振子頼りの無補正です。
電波時計と比較して16秒/46時間5分の誤差です。計算しますと100万分の96くらいです。単位を変えると96ppmでしょうか。約2時間52分毎に1秒のズレです。10分毎ですと0.06秒のズレです。そもそも完璧な基準がわかりませんので、良し悪しすら評価出来ません。ひょっとすると DMX-Timer が合っている可能性すらあります。少なくとも、安物のストップウォッチより正確っぽいのでヨシとしましょう。
電波時計を正しいとするなら水晶発振子のカタログスペックより大きい誤差ですが、製品の位置付け的には十分な精度だと思います。製品の見た目は24時間計にしていますが、これを頼りに24時間オペレートをする人も居ないでしょうし、このタイマーで自動的に何かを動かすワケではありません。これ以上頑張っても手間の割りに結果は変わりませんし、キャリブレーション機能を追加しても使う人がいるのか?って思います。
つわけで、コメントになっているお試し処理をソースコードから消して終りにしましょう。
連休明けに到着予定だった抵抗が入荷しましたので量産品を組める状況になりました。本業の課題はありますが、時間を見つけてハンダ付けしましょう。
表に出す誤差値を決めるために継続して動かしています。100時間くらい動かして出た数値を「試作品」の誤差とします。量産品を作って同様にチェックして製品としての誤差を決めましょう。
#ガチ工作 #器具の製作
電波時計と比較して16秒/46時間5分の誤差です。計算しますと100万分の96くらいです。単位を変えると96ppmでしょうか。約2時間52分毎に1秒のズレです。10分毎ですと0.06秒のズレです。そもそも完璧な基準がわかりませんので、良し悪しすら評価出来ません。ひょっとすると DMX-Timer が合っている可能性すらあります。少なくとも、安物のストップウォッチより正確っぽいのでヨシとしましょう。
電波時計を正しいとするなら水晶発振子のカタログスペックより大きい誤差ですが、製品の位置付け的には十分な精度だと思います。製品の見た目は24時間計にしていますが、これを頼りに24時間オペレートをする人も居ないでしょうし、このタイマーで自動的に何かを動かすワケではありません。これ以上頑張っても手間の割りに結果は変わりませんし、キャリブレーション機能を追加しても使う人がいるのか?って思います。
つわけで、コメントになっているお試し処理をソースコードから消して終りにしましょう。
連休明けに到着予定だった抵抗が入荷しましたので量産品を組める状況になりました。本業の課題はありますが、時間を見つけてハンダ付けしましょう。
表に出す誤差値を決めるために継続して動かしています。100時間くらい動かして出た数値を「試作品」の誤差とします。量産品を作って同様にチェックして製品としての誤差を決めましょう。
#ガチ工作 #器具の製作
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 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128

