ja1yaz’s diary

感動したいおやじの備忘録的ブログ 

JDS6600をRaspberrypiでちょっと使ってみた

衝動買いしたJDS6600。前回までの操作で、ある程度コマンドが見えてきた。

任意波形で、波形長2048以外を受け付けないのはちょっと残念だった。

高価なタイプだと、波形長1から2Mまで受け付けるのもあるようだが、さすがに低価格なだけはある。何か面白い使い方がないか考えてみよう。

 

とりあえず、動作確認をしてみた。

 

import serial
from time import sleep
ser= serial.Serial('/dev/ttyUSB0', baudrate=115200, timeout=3.0)

cmd=':w20=1,1.\r\n'             #CH1,CH2 ON
bcmd=cmd.encode()
ser.write(bcmd)
a=ser.readline()
bcmd=a.decode()
print(bcmd)

b=0
c=0
stopf=60000000         #STOP Frequency:60MHz
stepf=100              #start Freqency:100Hz
#resp='ok'
print(bcmd)
while b<stopf:
    c=c+1
    if c>1 and c%9==1:         #Decade per 10 Frequency point 
        b=b+stepf
        stepf=b
    else:
        b=b+stepf
    #print(c)   
    cmd=':w23='+str(b*100)+'.\r\n'
    print(cmd)                        #:w23=10000.  means Frequency=100Hz
    bcmd=cmd.encode()                 #encode fron text to binary
    ser.write(bcmd)
    sleep(0.05)                       #IF use the lower frequency take more sleep time
    bcmd=''
    a=''
    a=ser.readline()
    
    bcmd=a.decode()                    #decode from binary to text

    print(bcmd)
ser.close()

 

これ以上Sleepを短くすると動作がおかしくなるようだった。

また、当然だが、低い周波数を出力する場合は、周期を考えて、制御しないと波形の途中で変化してしまう。

とりあえず動いているみたいだ。