非常にゆっくりした三角波を作るプログラム

Post date: 2018/01/15 12:31:25

rubyで書いてるので、apt-get install rubyしてもらう必要がありますが、ruby slow_rect.rbで実行します。

start=Time.now.to_f

period = 16.0

vh = 1.0

vl = 0.0

vps = ((vh-vl)/period)*2.0

last = 0

while (time=Time.now.to_f - start) < period

next if time - last < 0.2

if time < period/2

vout = time*vps

else

vout = 2*vh - time*vps

end

puts "#{time}, #{vout}"

system "generate 1 #{vout} 0"

last = time

end

generateというのが、redpitayaに電圧を設定するプログラムなのですが、/opt/redpitaya/binにありますので、PATHに加えるか、直接/opt/redpitaya/bin/generateを呼び出すようにプログラムを変更してください。参考: http://redpitaya.readthedocs.io/en/latest/developerGuide/125-14/fastIO.html

slow_rect.rbはそのままだと16秒かけて0−>1−>0を出力します。適当にvh, periodをいじることができます。あまり頻繁にgenerate実行するのも不都合かも知れないので、0.2秒おき程度にしてますが、この値ももっと小さくすれば出力は滑らかになります。