2026年9月1日火曜日

raspi3にさらにUSBカメラと人感センサーつないでみる

 raspi3のUSBカメラの準備としては
sudo apt-get install fswebcam
sudo modprobe uvcvideo
ls /dev/video* で0番のカメラが認識できていればOk
一回でうまくいかないときは、
sudo modprobe -r uvcvideo 
sudo modprobe uvcvideoでリセットしてUSBカメラつなぎなおし、
再度ls /dev/video* で /dev/video0が出ればOk

前回のCdsセンサー、赤外線学習機能に加え、raspi2のボトルからraspi3のカメラ、人感センサも使えるようにコードを追加した。現在のカメラの静止画像と人感センサが反応したときの静止画像を遠隔で確認できるようにしてみた。raspiとセンサやカメラ組み合わせるだけでいろいろなことができて便利。


2026年8月28日金曜日

明るさをCdsで検知(raspi3)

 Cds(1MΩ)が安価だったので、1uFのコンデンサへの充電時間で、明るさをraspi3でチェックする機能を追加してみた。写真の上部のケース外が赤外線送信モジュール、電源接続付近のモジュールが受信モジュール、GPIOピンに直接基板をさしているのがCds+コンデンサの回路。



2026年8月24日月曜日

rasp2経由でraspi3へssh

 raspi2経由でraspi3へsshするには、
ssh-keygen -t rsa -b 4096 として、3回リターン
ssh-copy-id pi@raspi3のIPアドレス  ここでyesのあと、ログインのためのパスワード
ssh pi@raspi3のIPアドレス パスワードなしでSSH使えるようになります。

これを使って、raspi2からraspi3の操作(赤外線等)をすることに。

import subprocess
from bottle import route, run, template
@route('/***/***')
def index():
    return '''
        <h1>照明リモコン</h1>
        <form action="/press_button" method="post">
            <button type="submit" style="font-size:2em; padding:20px 40px;">
                ON / OFF ボタンを押す
            </button>
        </form>
    '''

@route('/press_button', method='POST')
def press_button():
    cmd = ["ssh", "pi@アドレス", "python3 /home/pi/shomei.py"]    
    result = subprocess.run(cmd, capture_output=True, text=True)    
    raspi3_reply = result.stdout    
    raspi3_error = result.stderr    
    
    if result.returncode == 0:
        return f"<h1>送信成功!</h1><p>Raspi3からの返事: {raspi3_reply}</p>"
    else:
        return f"<h1>エラー発生</h1><p>理由: {raspi3_error}</p>"

# Raspi 3側の /home/pi/shomei.py の中身
import subprocess
try:
    cmd = ["sudo", "ir-ctl", "-s", "/home/pi/shomei.txt", "-d", "/dev/lirc0"]
    subprocess.run(cmd, check=True)    
    print("赤外線信号を送信しました。")
except subprocess.CalledProcessError as e:
    print(f"ir-ctlの実行に失敗しました。エラーコード: {e.returncode}")

2026年8月23日日曜日

raspi3で赤外線の実験

 赤外線モジュールをつないで、受信
 受信モジュールのピン  Raspi3の接続先  ピン番号(物理)
 VCC (または + )       3.3V Power 1番ピン
 GND (または -)        GND     6番ピン
 OUT (または S / Data)    GPIO 17  11番ピン
送信は図のような回路をつないでみた

以下のコードで受信可能
ir-ctl -r -d /dev/lirc1 > single.txt 
送信は
ir-ctl -s single.txt -d /dev/lirc0  

2026年8月2日日曜日

FX-502Pでライプニッツ級数で円周率ためす

 Σn=0~100  4*(-1)^n/(2n+1)  をFX502Pのプログラム機能で試してみた。

分子がM2 分母がM3  カウンタがM0 総和をM1とすると

MODE 2> P2 >Min 0 >  0 Min 1 > 4 Min 2 >1 Min 3 > LBL 0 >MR 2 ÷ MR 3 =  M+ 1 >2 M+ 3> MR 2 +/- Min 2 > INV DSZ >GOTO 0 > MR 1

MODE 1>1000 > P2で実行すると 3.140592187

FX-502Pが発売当時、大型計算機のFORTRANだと、自分の知識では倍精度とかもできなかったので、ディフォルトでは桁数が小さく、すぐ精度がおちてしまって、級数計算(ミー理論と実測値の比較で使いました)は無理だった。級数計算は、大型計算機より、むしろ、プログラム電卓が重宝しました。

2026年7月27日月曜日

FX-502P 簡単なコーディング 、メモリについて

 ・(A+B)×C なら

MODE 2 >P0 >  (  >HLT> + >HLT> ) >× > HLT > =  と数式通り入力、ちょうどHLTがinput()やscanf()にあたる働き

MODE 1  >P0>1>EXE> 2 >EXE >3 >EXE  これで(1+2)×3=9と計算

・メモリの使い方

 20 > Min > . >1 でM1に保存   MR>.>1 で20がM1から読み出される。 MinやMRの後に.と数字指定   M-  M+ x⇔M などのボタンも同様の使い方   MFメモリはEXPボタンで指定

M+は 表示中の数を指定メモリにプラス

FX-502P

 学生の頃、実験レポートでよく使ったのがプログラム電卓FX-502P。棚の整理していたら、たまたま出てきた。久しぶりにいろいろ使ってみたが、完全に使い方は忘れている。英語版の説明書はかろうじてネット上で入手できたのでそれを見ながら少し使ってみた。念のため、分解してキーの接触部分に接点復活剤をかけてみた。ただ、基板の接点は金色だったので、ひょっとしたら金メッキ?。だとすると、接点復活剤は意味なかったかもしれませんが。念のため、LR44ボタン電池を交換しておいたほうがいいかもしれません。

 https://sourceforge.net/projects/uiq3/files/Documents/

最近は、関数電卓は需要があるようですが、プログラムは慣れた言語のほうがいいでしょうから、さすがにプログラム電卓はマイナーな存在のようです。

・プログラムのALL クリアは、MODE 3>INV MAC

・POプログラムのクリアは MODE 3>P0>AC

・P0への書き込み(2倍する計算なら)は MODE 2>P0>×>2>=

・P0の実行は MODE 1>3>P0で3×2=6という計算

今でも、電卓で三角関数や対数計算ぐらいは使うこともたまにあるので、ヤフオクで処分しようか?かどうかで、迷っています。当時、2万円以上はしましたし、今でも十分動作はしているようなので。さらに持っていれば、骨とう品としての価値があがる?

・赤、緑のLEDの抵抗計算をP0にいれてみた
MODE 2>P3>-2.1>=>÷>0.02>=    電圧を入力しP3で直列に入れる抵抗値がでる。実際は数十倍にして、少し消費電流をおさえたほうがいいようです。
・容量とインダクタンスから共振周波数を求めるものをP1にいれてみた
MODE 2>P1>HLT>Min 1>HLT>Min 2>MR 1>×>MR 2>=>√>×>2>×>π>=>1/x>
    10uF、100pFを入力すると  P0>  10 EXP +/- 6 >EXE > 100 EXP +/- 12> EXE
・2sc1815をスイッチングでつかうときの抵抗計算
MODE 2>P4>HLT>Min 1>HLT>Min 2>HLT>Min 3>MR 1 - 0.7 = >÷> ( > MR 3 > ÷ > 50 > ) > = > HLT > MR 1 > - > MR 2 > - 0.1 = > ÷ > MR 3 > = > HLT
  12V電源、3VのLED、流したい電流0.02Aの場合  MODE 1>P4> 12 >EXE> 3> EXE > 0.02 >EXE で28250Ω (ベース抵抗)>EXE で445Ω(コレクタ抵抗)