忍者ブログ

あやの

NゲージをベースとしたDCCについての日記を 書いています。 ある程度貯まりましたら、鉄道模型のDCCのまとめサイトに まとめています。 借りている容量が最大に達しましたので、移転します。 ★移転先:http://maison-dcc.sblo.jp/

2026/09    08« 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  »10
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

Smile Decoderの開発言語は、C/C++ライクなArduino言語が使われています。
でも、プログラミングが知らない場合、結構敷居が高いので
Smile Decoderの性能発揮ができません。

Arduinoでビジュアルプログラミングができないかなと調べてみると・・・

Arduino専用ビジュアルエディタBlocklyDuinoの使い方
Ardublock
私家版 Ardublock
Arduino用ビジュアルプログラミングソフトVisuino
Embrio



でも、これらって、関数・変数の文字がパーツになったのにすぎないので、結局プログラミングなのですね。
今の、デコーダースケッチが絵になった所で更に難解なものになりそうw

やっぱ、esu のLokProgrammerのような、サウンドスケジュールエディタみたいな
プログラム要素の一切無いツールが鍵になりそうですね。



こんな感じなやつね。

拍手[0回]

PR
いろいろいじって、いい感じのものができました。
ボタンが押されたら、50ms周期のサンプリングで10回記録して、
そのバッファ内の状態から、クリック・ダブルクリック・長押しを判定する処理にしました。







ソースファイルはこちら


拍手[5回]

仕事中にもう一個の方法を考えたので、帰宅次第作ってみました。
50ms周期にボタンの状態を10個のリングバッファに詰めておき、
何かボタンが押されてから、リングバッファが一周すると、
ボタンの状態を計算して、シングルクリック・ダブルクリック・長押しの
検出ができる様になっています。

リングバッファを形成しなくても、初回キー入力からボタンをロギングさせたほうが
簡単ぽいですね。



拍手[0回]

中々うまくいかなくて、かなり時間が掛かってしまいました。
Arduinoのloop()内で呼ばれるButtonState()というステートマシン内でボタンの
シングルクリック・ダブルクリック・長押しを認識させるプログラムです。
なかなかスマートに書けなかったのですが、検出する方式は、パルスを検出させて、
その次のパルスまでの時間を計って、シングルクリックなのか、ダブルクリックなのか
長押しなのかを検出しています。

こんなの半分くらいの行でかけるぜーという方がおりましたら、
そのスケッチくださいw

他のloop()処理が止まらない様に、ButtonState()内に留まらせない様に作るのがミソですw

スケッチはこちら

 





拍手[0回]

【今日も難しい話です】
SmileWriter5in1を使って、PIC12F1822用のPICライターを作ろうと試行錯誤しています。

今日は、Arduinoのスケッチ:Ardpicprog、Windows7用ホストアプリ:ProgramPicが
GitHubに登録されているので、Fork(デットコピー)して自分のアカウントでリポジトリしました。


Windows7用ホストプログラム
ArdPicProgHost.exe
extended segment address に対応。

Arduino用シールド
ProgramPIC.ino
PIC12F683 と PIC12F1288に対応。


まだGitHubの使い方がよく分からない(^^;

拍手[0回]

ブログ内検索

プロフィール

HN:
あやのすけ
性別:
非公開
<< Back  | HOME Next >>
Copyright ©  -- あやの --  All Rights Reserved
Design by CriCri / Material by もずねこ / powered by NINJA TOOLS / 忍者ブログ / [PR]