このブログを検索

2024/10/31

Raspberry Pi camera module v3 で motion

camera module v3を入手した。

普段motionを動かしているpi3とpi5の2台があるのだが、まずpi3にv3 cameraをつけてみた。

認識はして、コマンドで静止画も撮影できるのだがmotionで動かない。

いろいろ調べたのだがうまくいかず、いったんあきらめる。


pi5で試す。

OSはこれ。


root@goro:/home/admin# lsb_release -a

No LSB modules are available.

Distributor ID: Debian

Description:    Debian GNU/Linux 12 (bookworm)

Release:        12

Codename:       bookworm


root@goro:/home/admin# uname -a

Linux goro 6.6.51+rpt-rpi-2712 #1 SMP PREEMPT Debian 1:6.6.51-1+rpt3 (2024-10-08) aarch64 GNU/Linux


カメラを接続するインターフェースが小さくなっている。さいわいv3カメラにそれ用のケーブルが付属していた。

pi5の公式(?)ケースを使っていてカメラをはめるところがない。さらにケーブルを出すところもない。

が、ethernetポートの上の隙間からちょうどいい感じに出せた。まるでそこから出すように設計されているかのようだ。

丸裸なのもいやなので厚紙で簡易的なケースを作って、セロテープでケースにとめた。



vcgencmd get_cameraコマンドは使えない。(legacy cameraがdisableだから?)


v3カメラをpi5の新しいOS(bullseye以降?正確なことはわからない)で使う場合、
libcameraというライブラリを使うのだが、たぶん最初から入っている。

32bit OSとか古いバージョンだと、aptで追加インストールする必要がある。

私の場合、最近いろんなPiをいじったのでどうしたかよく覚えていないが、Pi5に関してはその時(確か今年の夏ごろ)の最新のOSを入れて、最近(2024年10月ごろ)apt update+upgradeで新しくしただけだったと思う。

結論を言うとv3カメラをmotionで使うには

libcamerify motion

というコマンドを使う。

まずやってみたらエラーになった。

root@goro:/home/admin# libcamerify motion
ERROR: ld.so: object '/usr/lib/aarch64-linux-gnu/libcamera/v4l2-compat.so' from LD_PRELOAD cannot be preloaded (cannot open shared object file): ignored.
[0:motion] [NTC] [ALL] conf_load: Processing thread 0 - config file /etc/motion/motion.conf
[0:motion] [NTC] [ALL] motion_startup: Logging to file (/var/log/motion/motion.log)



root@goro:/home/admin# apt install libcamera-v4l2

をやったら今度は違うエラーが出たがとりあえずmotionは動いた。

root@goro:/home/admin# libcamerify motion
[0:motion] [NTC] [ALL] conf_load: Processing thread 0 - config file /etc/motion/motion.conf
[0:motion] [NTC] [ALL] motion_startup: Logging to file (/var/log/motion/motion.log)
[0:07:09.296345338] [2655] ERROR IPAModule ipa_module.cpp:171 Symbol ipaModuleInfo not found
[0:07:09.296383856] [2655] ERROR IPAModule ipa_module.cpp:291 v4l2-compat.so: IPA module has no valid info
[0:07:09.296399078] [2655]  INFO Camera camera_manager.cpp:325 libcamera v0.3.2+27-7330f29b
[0:07:09.305047271] [2656]  INFO RPI pisp.cpp:695 libpisp version v1.0.7 28196ed6edcf 29-08-2024 (16:33:32)
[0:07:09.529782577] [2656]  INFO RPI pisp.cpp:1154 Registered camera /base/axi/pcie@120000/rp1/i2c@88000/imx708@1a to CFE device /dev/media2 and ISP device /dev/media0 using PiSP variant BCM2712_C0
[0:07:09.530605706] [2655]  INFO Camera camera.cpp:1197 configuring streams: (0) 1024x768-YUV420
[0:07:09.530722002] [2656]  INFO RPI pisp.cpp:1450 Sensor: /base/axi/pcie@120000/rp1/i2c@88000/imx708@1a - Selected sensor format: 1536x864-SBGGR10_1X10 - Selected CFE format: 1536x864-PC1B
[0:07:09.531933297] [2655]  INFO Camera camera.cpp:1197 configuring streams: (0) 1024x768-YUV420
[0:07:09.532014593] [2656]  INFO RPI pisp.cpp:1450 Sensor: /base/axi/pcie@120000/rp1/i2c@88000/imx708@1a - Selected sensor format: 1536x864-SBGGR10_1X10 - Selected CFE format: 1536x864-PC1B


v2と画質が全然違う。v2は800万画素でv3は1200万らしい。

motionの画像のサイズを2048x1536にしてもきれいに見える。framerateを上げるとグニャグニャと波打つようになる。5だとほとんど気にならないがかすかにグニャグニャしている。

Piのメモリは8GBである。






バーアンテナ

数年前に少しラジオ作りをした。今でも残っているのはゲルマニウムラジオが一つと、2石トランジスタラジオが一つ。

どちらもどういう原理で動くかもわからないまま、説明されている通りに組み立ててなんとか鳴るようになったものだ。

ひさしぶりに引っ張り出してみたが、ちゃんと聞こえる。トランジスタラジオの方はNHKとAFNとTBSしか受信できないが普通にラジオとして聞ける。

ゲルマニウムラジオの方はクリスタルイヤホンだとかろうじて何か聞こえる状態で、aitendoのアンプキットをつないでようやく何をしゃべっているのかが聞き取れる程度。

ゲルマニウムラジオの方をなんとかしようと思っていろいろ見ていくうちに、バーアンテナが悪いんじゃないかと思えてきた。

使っていたのはPA-63Rという小さなもの。バーの長さは3センチ。最初につけたバーはBA-200だったのだが何かしらの不具合があってこれに交換したことを覚えている。

アンテナバーには細い細い線が複数本出ていて、そのうちの2本を使用する。

そのこと自体正しいか怪しい。どこかの線はアースしなければいけないとかありそうだが、よくわからない。とりあえず鳴るのでよしとしている。

アンテナ線とアース線をつながないと鳴らない。アンテナ線は5mくらいでマンションの室内の壁にはわしてある。アース線は3mくらいで、床に垂らしている。以前はもっと長いアース線を洗濯機のアースにつないでいた覚えがあるがめんどくさいので垂らしただけにしている。

バーアンテナ(それだけではないが)の仕組みがよくわからない。細い細い糸のような線にジャンパーワイヤーを半田でくっつけて、ピンソケットにさしてつないでいるのだが、細い線(正しくはなんと呼ぶのか)とジャンパーワイヤーがちゃんと「つながっているのか」が心もとない。そして、それを確認するすべがわからない。

youtubeなどで基盤を修理しているのをみると導通しているかどうか確認しているのを見るが、それをやってみようと思った。

テスターを抵抗測定モードにして赤い棒と黒い棒をくっつけると針が動く。

コイルのくわしい仕組みはよくわからないが、今使っている2本の線にテスターの棒を触れさせれば針が動くのではないか?と思ってやってみたら動く。とりあえずラジオが鳴る状態のPA-63Rだと動くが、交換したBA-200だと動かない。

ラジオを作ったときに、アンテナバーに出ている使わない線を切ってはいけない、それは細くてよく見えないが2本の線が縒り合されているから、と説明されていたことを思い出し、そこを切ってしまっているのではと思って、半田をつけてみた。

すると、テスタの針が動くようになったので、ジャンパワイヤをはんだ付けして、今度はジャンパワイヤの両端で試すとこちらも動く。これでなるはず... 鳴った。

が、やはり音が小さい。アンプを通しても小さい。こんなに小さくなかったはず。何かがおかしい。

(追記: 洗濯機のアースにつないでいたアース線が残っていたのでつないでみたら音が大きくなった。クリスタルイヤホンでも何を言っているのかわかる。ただし選局できるのはNHKとAFNのみで、AFNが選局できる位置が一番端なのでなんかがズレてる)

BA-200の仕様書を載せておく。



「切ってはいけない線」は、たぶん②である。
L1, L2, L3とは何か?
1次、2次のことかと思うが3次なんかあるのか?
L1とL2は接続されているがL3は離れている。(L1,L2)が1次、L3が2次か?

マルツのサイトにあった概要に、「タップ付きの1次巻き線と独立した2次巻き線を持ちます」とあるから、独立しているL3が2次だろう。




そして②の線はL1とL2を接続しているようで、だからより合わせてつながるようになっている。

今使っている線は①(自然)と③(黒色)である。残りの②(自然)、④(赤色)、⑤(緑色)は未使用でどこにも接続していない。ショートしないように先端にセロテープを貼っている。

あと、これらの細い線は色がついているが、それをはがしてジャンパワイヤにつながないといけない。はんだ付けの熱でとれていた場合もあったが、事前に爪でひっかいてはがしたら通るようになったことがある。








2024/10/26

raspberry pi ディスプレイ動作確認メモ

 Adafruit Blue&White 16x2 LCD+Keypad Kit for Raspberry Pi : ID 1115 : Adafruit Industries, Unique & fun DIY electronics and kits





Piは4。

raspi-configでi2cを有効にしておく。

接続はGPIOの左端(USBポートの反対側)に合わせて挿す。


root@pi4:/home/admin# i2cdetect -y 1

     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f

00:                         -- -- -- -- -- -- -- -- 

10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 

20: 20 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 

30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 

40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 

50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 

60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 

70: -- -- -- -- -- -- -- --                         


sudo pip3 install adafruit-circuitpython-charlcd

を実行

サンプルのpythonコードを実行



AE-AQM0802+PCA9515

以前にも確認したがあらためて。

I2C接続AQMシリーズのキャラクタ表示LCDをラズパイで使う (1) AQM0802 | 電子工作の環境向上


秋月 AQM0802 で 実用Raspberry Pi CPU用 LCD モニタ - ボクにもわかる電子工作のブログ

print xxx

print(xxx)

にした


7セグLEDをArduino UNOで使う

7セグLEDを使ってみたいとずっと思っていて、何個か買ってもあるのだがめんどくさくて使わずにいた。

OSL10564-74HC595-R と書いてあるモジュールがあった。

いつどこで買ったか覚えていないのだが、どうやら秋月電子で売っているこれのようだ。

7セグメントLEDシリアルドライバーキット(DIP化キット LED別売): キット一般 秋月電子通商-電子部品・ネット通販


とりあえずArduino Unoで動かしてみた。

秋月電子にサンプルスケッチがあるのだが、なぜかIDEで開けない。

仕方がないのでテキストエディタで開いてスケッチにコピーして動かした。


PDFなど見てもどう配線すべきかがよくわからない。SPI接続とGPIO接続がある、とかいう情報も出てくるがなんのこっちゃ。

スケッチのソースを見るとこうなっていたので、

//SCK D13
//LATCH D10
//SDI D11



このようにつないだ。電源は5Vが必要らしい。


スケッチを貼っておく。

--------------

//ARDUINO UNO
//AE-7SEG-BOARD * 2
//SCK D13
//LATCH D10
//SDI D11
#include<SPI.h>
int sck = 13;
int latch = 10;
int sdi = 11;
int scroll_speed = 200;
const byte digits[] = {
  0b11111100, // 0
  0b01100000, // 1
  0b11011010, // 2
  0b11110010, // 3
  0b01100110, // 4
  0b10110110, // 5
  0b10111110, // 6
  0b11100000, // 7
  0b11111110, // 8
  0b11110110, // 9
};

void setup() {
  pinMode(latch, OUTPUT);
  pinMode(sck, OUTPUT);
  pinMode(sdi, OUTPUT);
  SPI.begin();
  SPI.setBitOrder(LSBFIRST);
  SPI.setDataMode(0);
}

void loop() {
  for (int j = 0; j < 10; j ++) {//10の桁
    for (int i = 0; i < 10; i ++) {//1の桁
      //SPI
      digitalWrite(latch, 0);
      SPI.transfer (digits[j]+1);//10の桁 +1でドット表示
      SPI.transfer (digits[i]);//1の桁
      digitalWrite(latch, 1);
      //
      delay(scroll_speed);
    }
  }
}

--------------------------





「びんぼうでいいの」でも動いた。




Raspberry Piでサーボモータを回す

使用したモーターは Tower Pro SG92R

数年前に購入して、動かした覚えがある。


参考

 Raspberry Piでサーボモーターを回す #Python - Qiita

【ラズベリーパイ入門】サーボモーターを制御する方法 | sozorablog


Piは、3。

ケーブルは3本あって、GND、電源(5V)、制御

参考にしたサイトと同じように GPIO 4 (7番ピン)を使う。


とりあえずモーターは動くが、どれだけ回すかの加減の仕方がよくわからない....