あやの
NゲージをベースとしたDCCについての日記を 書いています。 ある程度貯まりましたら、鉄道模型のDCCのまとめサイトに まとめています。 借りている容量が最大に達しましたので、移転します。 ★移転先:http://maison-dcc.sblo.jp/
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
検証してみました。
言語はExcel VBAを使いました。
■その1
以下のような、プログラムで作りましたが、線1本なので味気がありません。
Sub test()
ActiveSheet.DrawingObjects.Delete
Pi = 3.14
ox = 100
oy = 100
For i = 0 To 360 Step 45
x = Cos(i * Pi / 180)
y = Sin(i * Pi / 180)
ActiveSheet.Shapes.AddLine x * 100 + ox, y * 100 + oy, x * 10 + ox, y * 10 + oy
Next i
End Sub
■その2
針を太らせるために以下のような、プログラムで作りましたが、角度によって開きが異なります。
※現在のDCC速度計のアルゴリズムと同等
Sub test2()
ActiveSheet.DrawingObjects.Delete
Pi = 3.14
ox = 100
oy = 100
For i = 0 To 360 Step 45
x = Cos(i * Pi / 180)
y = Sin(i * Pi / 180)
ActiveSheet.Shapes.AddLine x * 100 + ox, y * 100 + oy, x * 10 + ox + 5, y * 10 + oy + 5
ActiveSheet.Shapes.AddLine x * 100 + ox, y * 100 + oy, x * 10 + ox - 5, y * 10 + oy - 5
Next i
End Sub
■その3先っぽもSin,Cosを使う必要があるんだねということで。
良い感じになりました。
Sub test3()
ActiveSheet.DrawingObjects.Delete
Pi = 3.14
ox = 100
oy = 100
Angle = 60
For i = 0 To 360 Step 45
x1 = Cos(i * Pi / 180)
y1 = Sin(i * Pi / 180)
x2 = Cos((i * Pi + Angle) / 180)
y2 = Sin((i * Pi + Angle) / 180)
x3 = Cos((i * Pi - Angle) / 180)
y3 = Sin((i * Pi - Angle) / 180)
ActiveSheet.Shapes.AddLine 100 * x1 + ox, 100 * y1 + oy, 10 * x2 + ox, 10 * y2 + oy
ActiveSheet.Shapes.AddLine 100 * x1 + ox, 100 * y1 + oy, 10 * x3 + ox, 10 * y3 + oy
Next i
End Sub
■原理はこんな感じで、(x1,y1)を起点として、(x2,y2), (x3,y3)の座標を演算して表示させています。
ちょっとやってみようと情報を仕入れたら、
最新版のNmraDccのコメントに
2017-01-19 added STM32F1 support by Franz-Peter
おー、STM32F1に対応したみたいです。
Franz-Peterさん、goodです!
Webサイトがあるのかなーとググってみたけど、http://ww.stummiforum.de/ かなー
と思うけど開きませんでした。
ドイツは遠かった。
Arduino zero(M0)のCortex-M0でもうごくかな?!
基板の大きさがコストアップに大きく影響しています。
基板寸法を8mm x 95mmにして、テープLEDと併用をして安くしようかなと考え中。
新幹線に入れる場合は、テープLEDを5mmほど切り詰めれば140mmになり、ちょうど入ります。
うーん、テープLED使った瞬間、魅力を失いましたw
SmileFunctionDecoderでいいじゃんという気持ちが強くなったので(^^;
Smile Function Decoder Light は、妄想で終わらせます。
SmileFunctionDecoder完成品をポッチっとw

