前回までで地形スキャナープログラムの骨格は完成。
これから細かな仕様の再考や調整を行っていく。
起動後自動実行設定の解除について
現在NanoPiNEOは、起動と同時に地形スキャンプログラムが実行される設定になっている。
調整やデバッグ時に解除が必要なので、その方法をここに書いておく。
解除;
$ sudo systemctl disable autognssctrl.service
再設定:
$ sudo systemctl enable autognssctrl.service
現在の状態表示:
$ sudo systemctl status autognssctrl.service
.動作不具合時、まずはこちらのコマンドで状態確認
動作不具合時、まずはこちらのコマンドで状態確認
.
LEDの点滅と状態について
時刻更新機能の追加などによりLEDの点滅状態が想定と違ってしまった。
改めてLED点滅状態について再定義
1. 点灯 - 電源投入後、Pythonプログラム実行前
2. 点滅(1秒点灯3秒消灯) - Pythonプログラム実行開始から時刻取得・更新完了まで
3. 点滅(0.25秒点灯0.25秒消灯) - 時刻更新後、GNSS受信のためのボタン押待機
4. 点滅(0.2秒点灯0.8秒消灯) - ボタン押後、GNSSデータ受信・記録中
5. 消灯 - ボタン押後、GNSSデータ受信停止中
6. 4,5繰り返し
コード修正
ser.close()
pwm.ChangeFrequency(1)
cmd="str2str -in serial://ttyACM0:115200#ubx -out /home/share/`date +%Y%m%d%H%M%S`.ubx"
state=0
try:
while True:
if GPIO.input(PIN_NUM_SWITCH)==0:
time.sleep(1) #0.1s wait
if state==0:
subrun=subprocess.Popen("exec " + cmd, shell=True)
pwm.ChangeDutyCycle(20)
state=1
elif state==1:
subrun.kill()
pwm.ChangeDutyCycle(0)
state=0
修正後:
ser.close()
pwm.ChangeFrequency(2)
pwm.ChangeDutyCycle(50)
cmd="str2str -in serial://ttyACM0:115200#ubx -out /home/share/`date +%Y%m%d%H%M%S`.ubx"
state=0
try:
while True:
if GPIO.input(PIN_NUM_SWITCH)==0:
time.sleep(1) #0.1s wait
if state==0:
subrun=subprocess.Popen("exec " + cmd, shell=True)
pwm.ChangeFrequency(1)
pwm.ChangeDutyCycle(20)
state=1
elif state==1:
subrun.kill()
pwm.ChangeDutyCycle(0)
state=0
