ja1yaz’s diary

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

RaspberryPi Zeroを使ってみた。

現在、ロードセルを使用した秤を作成中で、そのADコンバータHX711の出力を見ている。最初、RaspberryPi Picoを試してみたが、これには、ストレージがなく、新たにSDカードモジュールを購入する必要がある。

まあハードウェアとの相性は抜群なので、PCと接続してPCコンソールで結果を表示させることができそうなのでこれでもよいのだが。

RaspberryPi3は、パフォーマンスはありそうだが、ある程度電源が必要だ、キッチンで使用するにはちょっとそぐわない。

そこで、前に購入していたRaspberrypi Zeroの存在を思い出した。

これなら、1500円程度なので、GPIOをいたずらして壊してもあまり痛くない。

早速実験してみることにした。

 

RaspberryPi3と同じRaspberrypiOSをインストールしてみるとちゃんとできる。

この辺りは、RaspberryPi3と同じだ。

RapberryPiZeroは、HDMI端子がMini端子のため変換が必要で接続がちょっと面倒だ。

RaspberryPiZeroの接続風景

また、USBもMicroUSBのためこちらも変換が必要となるため、RaspberryPi3と同様にVNC接続して使用するのがよさそうだ。

しかし接続設定してみると、右上のVNCとキーボードのアイコンが点滅している。

一応外部PCからの制御はできそうだが、極めてGUIの動作が遅い。

これは、おそらくちょっとリソースが足りない感じなのではないだろうか。

 

念のため、下記サンプルプログラムLchika.pyを走らせてみることにした。

Lchka.py

import RPi.GPIO as GPIO
from time import sleep

GPIO.setmode(GPIO.BCM)
GPIO.setup(3,GPIO.OUT)
GPIO.setup(2,GPIO.IN)

n=1000                                    #loop iteration limit
k=0                                    #loop iteration 
a=0
w=0
while k<n:
    a=GPIO.input(2)
    while a==GPIO.input(2):
        pass
    #if k==0:    
    #    utime.sleep_us(100)
    #utime.sleep_us(80)
    a=0
    test_list=[]
    a=0
    while a<25:
        GPIO.output(3,GPIO.HIGH)
    #sleep(0.5)
        GPIO.output(3,GPIO.LOW)
        a=a+1
   

Pythonの知識がないので適当に作ってある。

GUI環境で、VNCをONにして走らせてみた。

LXTerminalにて、Python Lchika.py を実行

下記の写真は、CH1:RaspberrypiZeoからのGPIO出力CLK、CH2:HX711のData出力信号だ。本来は、双方とも500us幅も広がらないはずだが、CH2は、50ms以上ぶれている。これは、OSで余計なタスクが発生して、プログラムで書いたGPIOの出力タイミングがずれるせいだと思われる。

RaspberryPiZeroをGUI設置の上VNCをON

では、ちょっと面倒だが、VNCをOFFにするとどうなのだろうか。

下記がその結果だが、心もち少なくなってはいるが大差ないようだ。

RaspberryPiZeroでは、GUIを使ってはいけないということが分かった。

 

RaspberrypiZeoをGUI設定 VNCはOFFにした

それでは、CLI環境ではどうなのだろうか。

これには、ちょっと壁があった。

GUICLIに行き来の問題だ、GUIでは、設定で、デスクトップー>CLIにチェックすればよいのだが、その反対はどうすりゃいいの?

ターミナルにて、startx を実行すればよいことが分かった。

すると、たちどころにGUI環境に戻った。

この時、GUI環境での設定は、依然としてCLIとなったままなので、Rebootすると、またCLI環境で立ち上がることになる。

しかし、復活の呪文が分かったので怖いものなしだ。

ターミナルにて、Python Lchika.py を実行。

特にPathとかは必要なく、そのままたたけばいいらしい。

 

RaspberryPiZeroをCLI環境で立ち上げ

結果は、ある程度収束した波形が得られた。

CLI環境でSSHにして、こちらもリモート環境としたいが、上記の波形以上によくなることはないように思える。

この状態では、HX711のスペック(CLK High Time<50us)からすると完全にOUTだ。

RaspberrypiZeoでは、GPIO制御のレートは、usオーダーは難しく、msオーダーならかろうじて使用できるという代物らしい。

 

そういえば、Pi3の実力はどうなんだろう?

早速GUICLIについて実験してみた

 

Raspberrypi3 GUI環境にて VNCをONに設定

GUIでもそこそこ使用できるレベルの様だ。

RaspbwerryPi3 をCLI環境で使用

 

こちらも、あまり変化はないようだ。

HX711のスペックからは、ぎりぎり使用できるレベルの様だ。

これらの結果から、使用すべきプラっとフォームは、ストレージがなくても、Raspberrypi Picoのラットフォームであることが分かった。

Pi3でもできなくはないのかもしれないが、ちょっとusレベルの制御にはリスクがありそうだ。