Kameras können einfach an einen industriellen Raspberry Pi angeschlossen werden.

Wenn viele Menschen von der Einführung bildbasierter Identifizierungsgeräte für den industriellen Einsatz hören, stellen sie sich wahrscheinlich eine große Maschine und ein großes Budget vor.
Wenn es sich bei der Hardware um einen industriellen Raspi wie den PL-R4 handelt, können Sie das Programm auch kostengünstig mit einer allgemeinen Kamera und verschiedenen Sensoren erstellen.
Das scheint für kleine Anwendungen nicht unvernünftig zu sein.

Das getestete Produkt PL-R4 ComputeModule4 (‚RPI CM4‘) ist fast identisch mit dem Raspberry Pi 4 (‚Pi 4‘) für den Hobbygebrauch. Wir konnten es mit der üblichen, über USB angeschlossenen Webcam und einem Kameramodul testen, das auch aus offiziellen Quellen erhältlich ist.

Wir haben eine Kamera angeschlossen, um den Unterschied zu sehen, einschließlich der Einstellungen, die für den industriellen Raspi einzigartig sind.

Kameras, die angeschlossen werden können

Kameras, die angeschlossen werden können

Wie ein normaler Raspi kann auch ein industrieller Raspi mit einer Vielzahl von Kameras ausgestattet werden und sowohl Standbilder als auch bewegte Bilder aufnehmen.

Kameras, die an den CSI-Port auf der Karte angeschlossen werden, werden als Kameramodule verkauft.
Sie können auch eine gewöhnliche Webcam mit USB-Anschluss verwenden.
Ich kann aus mehreren Produkten wählen, je nachdem, welche Qualität ich benötige.

  • CSI
  • USB

Kameramodule sind offiziell von der Raspberry Pi Foundation erhältlich.

Die HQ-Kamera kann auch mit Tele- und Weitwinkelobjektiven verwendet werden und bietet eine sehr hohe Bildqualität für eine Kamera, die an den Raspberry Pi angeschlossen werden kann.
(12,9 Megapixel) Sie könnte vor allem bei industriellen Anwendungen von Nutzen sein.

HQ-Kamera
Kamera-Module

Die in dieser Studie getesteten Kameras waren, von links nach rechts, eine hochwertige HQ-Kamera (offiziell, Stativ separat erhältlich), ein Kameramodul V3 (offiziell, Gehäuse separat erhältlich) und eine Logitech C270n-Webcam.

この他にも多種多様なカメラが接続できます。(赤外線カメラ、熱感知用途、屋外用途など)
使用環境に適したカメラが選べると思います。

Einfach anzuschließende Webcam


Eine praktische USB-angeschlossene Webcam ist etwas, das viele Leute seit dem Corona-Desaster nutzen können. Genau wie Windows und Mac kann eine USB-angeschlossene Kamera ohne Modifikation auf dem Raspberry Pi verwendet werden. Dies ist in diesem Bereich ähnlich wie bei einem Standard-PC.

Das gilt auch für den industriellen Raspi.
Der PL-R4 kann auch in Desktop- (GUI) und Befehlsumgebungen (CUI) betrieben werden, indem er einfach an USB angeschlossen wird.

Alles, was Sie tun müssen, ist die Software auszuwählen, um die Kamera mit dem Raspberry Pi OS zu verwenden.

Guvcview.

Die empfohlene GUI-Umgebung ist Guvcview.

Es ist in zwei Fenster unterteilt, eines zur Steuerung und eines zur Anzeige.
Sowohl Standbilder als auch bewegte Bilder funktionieren mühelos mit der Taste.

Gnvcview.

Die Webcam wurde einfach durch die Installation von Guvcview erkannt.
Nichts ist vorbereitet.

sudo apt install guvcview

Wie beim Pi 4 im Allgemeinen, war Guvcview auf dem RPI CM4 Raspi einfach, wenn Sie eine über USB angeschlossene Kamera verwenden wollten.

USB-angeschlossene Webcams zur Verwendung mit dem Raspberry Pi funktionieren eher mit weniger modernen Produkten.
Die C270n, die wir getestet haben, ist ein Modell aus dem Jahr 2019; es wäre nützlich, eine zu haben.

Anschließen des Kameramoduls

Wenn es sich um ein offizielles Raspberry Pi-Kameramodul handelt, wird es durch einfaches Einstecken des CSI-Kabels erkannt, genau wie eine Webcam mit USB-Anschluss.
Dies funktioniert auch mit dem Befehl libcamera, ohne besondere Konfiguration.

Kameramodule von Drittanbietern werden jedoch nicht automatisch erkannt, so dass die Konfigurationsdatei ein wenig umgeschrieben werden muss.

Der in diesem Versuch verwendete PL-R4 der PiLink Corporation muss nicht nur umgeschrieben werden, sondern auch hardwareseitig konfiguriert werden, um den CSI-Port zu verwenden.

  • Änderungen an der Hardware vornehmen
  • Bearbeiten Sie config.txt.
  • Bereiten Sie die Datei dt-blob.bin vor, die beim Start geladen werden soll.
CSI-Kabel anschließen

Achten Sie auf die Richtung des Flachkabels, das an den CSI-Anschluss angeschlossen wird. Auf dem Foto ist die Rückseite der blaue Streifen und die Vorderseite ist die Anschlussseite.

Bei dem getesteten Produkt handelt es sich um einen USB-Typ (IP20), der einen Schlitz in der Platte hat, damit das Kamerakabel herausgezogen werden kann.

Schlitz für CSI-Kalbe

Behandeln Sie das Flachbandkabel und das Terminalteil am Ende mit Vorsicht, um eine Unterbrechung zu vermeiden.

Änderungen der Hardwarekonfiguration

Je multifunktionaler der Industrie-Raspi ist, desto mehr Einstellungen müssen als Hardware umgeschaltet werden.

Es gibt mehrere Schalter auf der Platine und diese Dip-Schalter müssen auf die richtigen Einstellungen gesetzt werden.

Dieser Bereich unterscheidet sich von der Hobbynutzung.
Beachten Sie, dass die Einstellungen für den normalen Pi 4 und den Pi 5 unterschiedlich sind.

Dies wird in dem verwendeten PL-R4 erklärt.

DIP-Schalter

/boot/config.txtZusätzlich zu den Hardwareänderungen nehmen Sie die notwendigen Änderungen an .

Bei einem Pi 4 für den Hausgebrauch wird beispielsweise ein offizielles Kameramodul erkannt, indem es einfach angeschlossen wird, ohne dass Änderungen vorgenommen werden müssen.
config.txtdisplay_auto_detect=1Die Aktivierung im ist für offizielle Kameramodule gültig.

Kameramodule von Drittanbietern und industrielle Raspis wie dieses müssen die automatische Erkennung auskommentieren und den Kameratyp angeben.

/boot/config.txtBeispielhafte Beschreibung von:

# Automatically load overlays for detected DSI displays
#display_auto_detect=1
[all]
dtoverlay=imx708

Beachten Sie, dass der anzugebende Name vom jeweiligen Kameramodul abhängt.

Name nach Bildsensor:








| Offizielles Kameramodul | Modell | Name | | :——–: | :-: | :—-: | | | V1 | OV5647 | | | V2 | IMX219 | | | HQ | IMX477 | | | GS | IMX296 | | | V3 | IMX708 | Diesmal haben wir die offiziellen V3 und auch die offiziellen HQ Kameras verwendet also sind IMX708 und IMX477 jeweils angegeben.

他にもサードパーティー製カメラモジュールもあり、IMX290、IMX327、IMX378、IMX519、OV9281と分けられています。
CSI接続カメラの製品詳細などで、イメージセンサー名として記載されています。指定する名称は説明書や購入先で確認してください。

Darüber hinaus wird PL-R4 Änderungen an mehr als nur dem Namen des Modells erfordern, wobei die endgültigen Änderungen folgende Bereiche betreffen

sudo nano /boot/config.txt
# 自動認識をコメントアウト
# Automatically load overlays for detected cameras
#camera_auto_detect=1

#ディスプレイの自動認識をコメントアウト
# Automatically load overlays for detected DSI displays
#display_auto_detect=1

# ドライバの有効化
# Enable DRM VC4 V3D driver
dtoverlay=vc4-kms-v3d
max_framebuffers=2

#WD/CSIに関する記述をコメントアウト
#dtparam=i2c0_baudrate=400000
#dtoverlay=i2c0,pins_0_1
#WD/CSI select
#dtparam=i2c1_baudrate=400000
#dtoverlay=i2c1,pins_44_45

# Camera Module
dtoverlay=imx708

Jede der Beschreibungen ist bereits vorhanden. Sie können die Kommentare fast einfach aktivieren/deaktivieren.

Wenn der Watchdog vom Modell eingestellt ist, kommentieren Sie den entsprechenden Abschnitt aus.

sudo nano /etc/rc.local
# ウォッチドッグコメントアウト
#WD
#python /home/pi/wdrst.py

config.txtIn dem vom Pi 5 verwalteten Bookworm ist die Position von zunächst anders./boot/firmware/config.txt
/boot/config.txt(bookworm: ) Dieser Artikel wurde in der Bullseye-Umgebung des Pi 4-Systems geschrieben.

Modifizierung von dt-blob.bin

Für PL-R4 mit RPI CM4 und E/A-Karte sind weitere Änderungen erforderlich.

dt-blob.binSie müssen das Programm , das von GPUs verwendet wird, ändern, auch wenn Sie damit vielleicht nicht vertraut sind.

Das liegt daran, dass die an die GPIOs angeschlossenen Geräte neu nummeriert werden müssen, damit sie auch anderen Funktionen zugewiesen werden können.

Weitere Informationen finden Sie in der offiziellen Dokumentation.
(Offizielles Dokument: https://www.raspberrypi.com/documentation/computers/compute-module.html#device-tree)

Im Folgenden finden Sie die Korrekturmaßnahmen für PL-R4 Benutzer.

minimal-cm-dt-blob.dtsaus der offiziellen Dokumentation vor.
Dies wird durch Bearbeiten definiert.

Bearbeiten ab Zeile 271:

          pin_define@ID_SDA {
             type = "internal";
             number = <44>;
          };
          pin_define@ID_SCL {
             type = "internal";
             number = <45>;
          };
          pin_define@CAMERA_0_I2C_PORT {
             type = "internal";
             number = <1>;
          }; 

Dann kompilieren Sie. Der Compiler ist bereits von Anfang an installiert. (Ich bekam eine Warnung, aber es war alles in Ordnung.)

sudo dtc -I dts -O dtb -o minimal-cm-dt-blob.dtb minimal-cm-dt-blob.dts

dt-blob.binKopieren Sie die Datei schließlich in das Verzeichnis /boot und legen Sie sie mit dem Dateinamen ab. Sie wird nach dem Neustart des Systems wirksam.

sudo cp minimal-cm-dt-blob.dtb /boot/dt-blob.bin

Dieser Bereich ist eine etwas schwierigere Aufgabe. Man kann sagen, dass die Rolle zum Besseren verändert werden kann.

Wie bereits erwähnt, wurden drei wesentliche Änderungen vorgenommen.

  • Switching als Hardware
  • Modifizierung von dt-blob.bin
  • Änderung der config.txt.

Probieren Sie nach der Einrichtung die folgenden Befehle aus, um sie nach dem Neustart zu überprüfen.

Verwendung per Befehl (CSI-verbundenes Kameramodul).

An den CSI-Port angeschlossene Kameramodule können den Befehl libcamera und das von Python verwaltete Modul Picamera2 verwenden. *Diese beiden sind in Bullseye oder höher vorinstalliert.

Es handelt sich um die OS-Version bullseye; bei Pi 5 bookworm ist es der Befehl rpicam. Es ist ein bisschen kompliziert.
Seien Sie vorsichtig, wenn Sie mit Kameramodulen auf früheren Raspi-Modellen und Betriebssystemen arbeiten.

raspi-configDer Legacy-Kameramodus, der über den Legacy-Kameramodus eingestellt werden kann, kann deaktiviert bleiben.

Um es etwas zakkatisch zu erklären: Diese Option ist erforderlich, um den Befehl raspistill auf dem Pi 3 zu verarbeiten.
Die folgenden Beziehungen sind möglich.

  • Pi3 Serie (buster) raspistill Befehl
  • Pi4 Serie (Bullseye) libcamera Befehl
  • Pi5 Serie (Bücherwurm) rpicam Befehl.

Der Raspberry Pi und das Kameramodul haben eine etwas komplizierte Geschichte.

Raspberry Pi OS Bookworm hat die Kameraaufnahmeanwendung von libcamera-* in rpicam-* umbenannt. Der Name libcamera-* wird in Raspberry Pi OS-Versionen vor Bookworm weiterhin verwendet.

Auch die offiziellen Informationen werden im Wesentlichen in einer Pi 5 und Bücherwurm Umgebung erklärt, wobei etwas frühere Informationen unter Bullseye gelten.
Es gibt viele Informationen im Internet, aber Informationen rund um das Jahr 2022 werden nützlich sein.

Befehle zur Überprüfung der Verbindung

Sobald das Kameramodul angeschlossen ist, überprüfen Sie, ob die Kamera erkannt wird.

Verwenden Sie den Befehl libcamera, um die Liste der Kameras anzuzeigen.
config.txtWenn hier ein Fehler auftritt, prüfen Sie, ob das CSI-Verbindungskabel nicht richtig eingesteckt ist oder ob ein Fehler in dem Abschnitt vorliegt, den Sie z.B. hinzugefügt haben.

libcamera-hello --list-cameras

Wenn es erkannt wird, sollte es wie folgt aussehen.

Available cameras
-----------------
0 : imx708 [4608x2592] (/base/soc/i2c0mux/i2c@1/imx708@1a)
    Modes: 'SRGGB10_CSI2P' : 1536x864 [120.13 fps - (768, 432)/3072x1728 crop]
                             2304x1296 [56.03 fps - (0, 0)/4608x2592 crop]
                             4608x2592 [14.35 fps - (0, 0)/4608x2592 crop]

imx*Sie können auch unter , dem Namen der Kamera, nach Fehlern suchen.imx219(z.B. )

dmesg | grep imx*

Wenn es jetzt nicht funktioniert, überprüfen Sie das Flachbandkabel, das an den CSI-Anschluss angeschlossen ist. Möglicherweise ist es nicht richtig eingesteckt.

libcamera Befehl

Der Befehl libcamera hat viele Optionen und Parameter.

Wenn Sie einfach nur ein Foto machen möchten, gehen Sie wie folgt vor.

libcamera-jpeg -o test1.jpg -t 2000 --width 640 --height 480

Wenn Sie es wie in der Live-Ansicht anzeigen möchten, gehen Sie wie folgt vor.

libcamera-hello -t 0

Die Befehle sind in Standbild und Video unterteilt. --helpSiehe für die jeweiligen Optionen.

libcamera-jpeg
libcamera-raw
libcamera-still
libcamera-vid 

Es kann auch über VNC angezeigt werden.

Kameramodule in Python behandelt

Das Kameramodul kann Picamera2 in Python sein, das bereits von Anfang an installiert ist, wenn das Betriebssystem Bullseye oder höher ist.

Programmbeispiel:

from picamera2 import Picamera2, Preview
import time
picam2 = Picamera2()
camera_config = picam2.create_preview_configuration()
picam2.configure(camera_config)
picam2.start_preview(Preview.QTGL)
picam2.start()
time.sleep(2)
picam2.capture_file("test.jpg")

Offizielle Website: https://www.raspberrypi.com/documentation/computers/camera_software.html#rpicam-apps

Verwendung auf Befehl (USB-angeschlossene Webcam).

Die über USB angeschlossene Webcam verwendet eine Anwendung namens fswebcam, die eine befehlsbasierte Steuerung ermöglicht.

sudo apt install fswebcam

インストールしてから、ユーザーをvideoグループに加えます。今ログインしているユーザー名に置き換えて読んでください。
これでsudo権限のエラーは出なくなります。

sudo usermod -a -G video ユーザ名

Das grundlegende Format ist dieses.

fswebcam test.jpg

Die Standardauflösung beträgt nur 352×288.

Geben Sie optional die Auflösung an und führen Sie es erneut aus.

fswebcam -r 1280x720 test2.jpg

Standardmäßig wird am unteren Rand des aufgenommenen Bildes ein Balken eingeblendet und Datum und Uhrzeit werden in der rechten unteren Ecke zusammengesetzt.
Wenn die Anzeige verstümmelt ist, können Sie das Problem durch die Installation japanischer Schriftarten (noto-fonts) beheben.

sudo apt install fonts-noto-cjk

--no-bannerWenn Sie die balkenartige Ausgabe am unteren Rand des Bildes stoppen möchten, verwenden Sie die Option, um sie verschwinden zu lassen.
fswebcam --helpSiehe für Optionen.

Datum Dateiname.

fswebcam bietet keine Funktionen zur Benennung von Dateien wie Datum oder fortlaufende Nummerierung. Die offizielle Version führt stattdessen ein Shell-Skript ein, das Sie verwenden können.

Shell-Skripte sind einfach und erfordern nur drei Codezeilen.
Erstellen Sie eine neue sh-Datei an einem geeigneten Ort wie folgt, fügen Sie drei Zeilen hinzu und verwenden Sie sie mit Ausführungsberechtigung am Ende.

nano webcam.sh

Das Beispielskript hat das Datum im Dateinamen und führt den Befehl mit fswebcam als Auflösung 1280×720 aus.

#!/bin/bash

DATE=$(date +"%Y-%m-%d_%H-%M-%S")
fswebcam -r 1280x720 --no-banner $DATE.jpg

Die Ausführungsrechte werden durch chmod vergeben.

chmod +x webcam.sh

Wenn Sie in dasselbe Verzeichnis umgezogen sind, können Sie mit dem folgenden Shell-Befehl ein Standbild aufnehmen.

./webcam.sh

Das Lesen der Terminalausgabe nach dem Lauf bestätigt, dass der Dateiname jetzt das Datum und die Uhrzeit ist.

--- Opening /dev/video0...
Trying source module v4l2...
/dev/video0 opened.
No input was specified, using the first.
--- Capturing frame...
Captured frame in 0.00 seconds.
--- Processing captured image...
Disabling banner.
Writing JPEG image to '2024-09-23_13-27-18.jpg'.

Eine Standard-Webcam mit USB-Anschluss lässt sich durch einfaches Einstecken verwenden, sofern eine Anwendung vorbereitet ist.

Verwenden Sie ffmpeg für USB-angeschlossene Webcams.

Der nächste Schritt ist das Video.
Mit Guvcview benötigen Sie, wie bereits erwähnt, nur eine einzige Schaltfläche auf dem GUI-Bildschirm, aber um den Befehl auszuführen, ist eine separate Anwendung erforderlich.

Ein mit CSI verbundenes Kameramodul verfügt ebenfalls über einen vorinstallierten Befehl zur Videoaufzeichnung, aber eine über USB angeschlossene Webcam kann durch den Befehl ffmpeg ersetzt werden.

Bevor Sie den Befehl ausführen, sollten Sie einige Dinge überprüfen.
Der Befehl erfordert die Angabe von Parametern in den Optionen, daher ist es wichtig, dass Sie den unterstützten Bereich der von Ihnen verwendeten Kamera kennen.

Dies dient dazu, falsche Parameter zu vermeiden, da verschiedene Kameras unterschiedliche Leistungen haben.

Bei der von uns verwendeten Kamera C270 haben wir festgestellt, dass die Bildrate 30 nur unter 640x im YUYV-Format (YUYV 4:2:2) unterstützt wird. Das ist ein bisschen wenig.

Das MJPG (Motion-JPEG, komprimiert) Format unterstützt ebenfalls 1270x.

v4l2-ctl -d /dev/video0 --list-formats-ext






‚YUYV‘ (YUYV 4:2:2) Größe: Diskret 640×360 Intervall: Diskret 0.033s (30.000 fps) ‚MJPG‘ (Motion-JPEG, komprimiert) Größe: Diskret 1280×720 Intervall Intervall: Diskrete 0.033s (30.000 fps)


Diese Einstellung kann mit dem Befehl v4l2-ctl geändert werden. Sie können sie ändern, indem Sie einen Wert für die Option c angeben.-c <ctrl>=<val> (z.B. )

Weitere Informationen finden Sie in der Liste der verfügbaren Steuerelemente.

v4l2-ctl -d /dev/video0 --list-ctrls-menu

Videoaufnahme mit dem Befehl ffmpeg

ffmpegを使うには、様々なオプションを付けて実行することになります。
ffmpegはラズパイだけに限った話ではありません。詳しくは別途、ffmpegを調べてください。

Die folgenden Befehle sind Optionen, die von der C270 aufgezeichnet werden können.

Die Kamera ist auch mit einem Mikrofon ausgestattet, so dass sie zusammen mit der Kamera Ton aufnehmen kann. Die Aufnahme ist sehr empfindlich und sauber.
out.mkvDer Name der Ausgabedatei wird am Ende der Optionen angegeben.

ffmpeg -f alsa -i pulse -f v4l2 -input_format mjpeg -video_size 1280x720 -framerate 30 -i /dev/video0 -c:v copy -c:a libopus -b:a 192k "out.mkv"

Detaillierte Erklärungen entfallen, aber da es von der Kamera abhängt, passen Sie die Parameter an, je nachdem, inwieweit die Videogröße und die Bildrate unterstützt werden.
Die Optionen werden auch unterschiedlich angegeben, je nachdem, ob ein Mikrofon verwendet wird oder nicht.

Ctrl + C um die Aufnahme zu beenden.

Eine über USB angeschlossene Webcam kann auf einem industriellen Raspi genauso verwendet werden wie für den Hobbygebrauch.
Das ist leicht zu bewerkstelligen.

CSI-Kameramodule und USB-angeschlossene Kameras für industrielle Anwendungen

Der Industrial Raspi kann auch eine Kamera über USB anschließen oder ein Kameramodul mit einem CSI-Anschluss verwenden.
Auch in den Industrieanlagen, in denen sie zusammen mit verschiedenen Sensoren eingesetzt werden, steigt der Bedarf an Kameras.

Die folgenden Beispiele gelten als gängige Fälle.

  • Ich möchte Menschen aufspüren und identifizieren.
  • Ich möchte, dass sie Wärmeänderungen erkennen.
  • Ich möchte in der Lage sein, die Form meiner Produktion zu erkennen.
  • Ich möchte den QR-Code lesen.
  • Ich möchte einfaches Bildmaterial einer Überwachungskamera erwerben.

Der industrielle Raspi PL-R4 erforderte im Gegensatz zum Pi 4 für den Heimgebrauch einen Wechsel der E/A-Platine und Konfigurationsänderungen.
Ansonsten kann er genauso verwendet werden wie der Pi 4.

Der industrielle Raspi ist ein kostengünstiges Gerät, das als Hardware eingesetzt werden kann.
Anders als bei der Verwendung zu Hause bleibt die geringe Leistung gleich, selbst wenn sie mit robusten Gehäusen und Anschlüssen ausgestattet sind.

Das System kann multifunktional sein, mit Kameras und Sensoren und Systemverknüpfungen, so dass die Einführung dieses Systems unabhängig von seiner Größe Vorteile bietet.


Artikel beigetragen von Raspida

Raspberry Pi-Informationsseite, die auch von Nicht-Ingenieuren genutzt werden kann. raspida.com Raspida betreibt raspida.com, eine Raspberry Pi-Informationsseite, die auch für Nicht-Ingenieure interessant ist. Trägt zur PiLink-Website über den Raspberry Pi für den industriellen Einsatz bei.