.. note:: Hallo und willkommen in der SunFounder Raspberry Pi & Arduino & ESP32 Enthusiasten-Gemeinschaft auf Facebook! Tauchen Sie tiefer ein in die Welt von Raspberry Pi, Arduino und ESP32 mit anderen Enthusiasten. **Warum beitreten?** - **Expertenunterstützung**: Lösen Sie Nachverkaufsprobleme und technische Herausforderungen mit Hilfe unserer Gemeinschaft und unseres Teams. - **Lernen & Teilen**: Tauschen Sie Tipps und Anleitungen aus, um Ihre Fähigkeiten zu verbessern. - **Exklusive Vorschauen**: Erhalten Sie frühzeitigen Zugang zu neuen Produktankündigungen und exklusiven Einblicken. - **Spezialrabatte**: Genießen Sie exklusive Rabatte auf unsere neuesten Produkte. - **Festliche Aktionen und Gewinnspiele**: Nehmen Sie an Gewinnspielen und Feiertagsaktionen teil. 👉 Sind Sie bereit, mit uns zu erkunden und zu erschaffen? Klicken Sie auf [|link_sf_facebook|] und treten Sie heute bei! .. _3.1.1_py: 3.1.1 Fotografie-Modul ========================== Einführung ----------------- In diesem Kit ist ein Kameramodul enthalten. Lassen Sie uns versuchen, mit dem Raspberry Pi ein Foto aufzunehmen. Benötigte Komponenten ------------------------------ Für dieses Projekt benötigen wir folgende Komponenten. .. image:: ../img/photo1.png :width: 800 Es ist definitiv praktisch, ein ganzes Kit zu kaufen, hier ist der Link: .. list-table:: :widths: 20 20 20 :header-rows: 1 * - Name - ARTIKEL IN DIESEM KIT - LINK * - Raphael Kit - 337 - |link_Raphael_kit| Sie können diese auch einzeln über die untenstehenden Links kaufen. .. list-table:: :widths: 30 20 :header-rows: 1 * - KOMPONENTENBESCHREIBUNG - KAUF-LINK * - :ref:`cpn_camera_module` - |link_camera_buy| Experimentelle Verfahren ---------------------------- **Schritt 1:** Gehen Sie zum Raspberry Pi Desktop. Für ein besseres Erlebnis benötigen Sie vielleicht einen Bildschirm, siehe: `Verbinden Sie Ihren Raspberry Pi `_. Oder greifen Sie remote auf den Raspberry Pi Desktop zu, für ein detailliertes Tutorial siehe :ref:`remote_desktop`. **Schritt 2:** Öffnen Sie ein Terminal und wechseln Sie in den Ordner mit dem Code. .. code-block:: cd ~/raphael-kit/python/ **Schritt 3:** Führen Sie den Code aus. .. code-block:: sudo python3 3.1.1_FotografieModul.py Nachdem der Code ausgeführt wurde, wird die Kamera ein Foto aufnehmen. Jetzt können Sie das Foto mit dem Namen ``my_photo.jpg`` im ``~`` Verzeichnis sehen. .. note:: Sie können auch ``3.1.1_PhotographModule.py`` im Pfad ``~/raphael-kit/python/`` mit einer Python-IDE öffnen, auf die Schaltfläche Ausführen klicken, um den Code auszuführen, und den Code mit der Schaltfläche Stopp beenden. Wenn Sie das Foto auf Ihren PC herunterladen möchten, beachten Sie bitte :ref:`filezilla`. **Code** .. code-block:: python #!/usr/bin/env python3 from picamera2 import Picamera2, Preview import os # Get the current user's login name user = os.getlogin() # Get the path to the user's home directory user_home = os.path.expanduser(f'~{user}') # Create a Picamera2 instance camera = Picamera2() # Retrieve the default preview configuration preview_config = camera.preview_configuration try: # Set preview size and format preview_config.size = (800, 600) preview_config.format = 'XRGB8888' # Start the camera preview in QTGL mode camera.start_preview(Preview.QTGL) # Start the camera camera.start() # Capture and save a photo to the user's home directory camera.capture_file(f'{user_home}/my_photo.jpg') except KeyboardInterrupt: # Stop the camera preview if a KeyboardInterrupt (e.g., Ctrl+C) occurs camera.stop_preview() pass **Code-Erklärung** #. Importiert die Klassen ``Picamera2`` und ``Preview`` aus der picamera2-Bibliothek sowie das ``os``-Modul für Interaktionen mit dem Betriebssystem. .. code-block:: python #!/usr/bin/env python3 from picamera2 import Picamera2, Preview import os #. Ruft den aktuellen Benutzernamen sowie den Pfad zum Home-Verzeichnis des Benutzers ab. .. code-block:: python # Aktuellen Benutzernamen abrufen user = os.getlogin() # Pfad zum Home-Verzeichnis des Benutzers abrufen user_home = os.path.expanduser(f'~{user}') #. Erstellt eine Instanz der ``Picamera2``-Klasse und ruft die Standard-Vorschaukonfiguration ab. .. code-block:: python # Eine Picamera2-Instanz erstellen camera = Picamera2() # Die Standard-Vorschaukonfiguration abrufen preview_config = camera.preview_configuration #. Legt die Größe und das Format der Kamera-Vorschau fest. Die Größe wird auf 800×600 Pixel gesetzt, das Format auf ``XRGB8888``. .. code-block:: python try: # Vorschaugröße und -format festlegen preview_config.size = (800, 600) preview_config.format = 'XRGB8888' ... #. Startet die Kamera-Vorschau im QTGL-Modus (eine Methode zur Anzeige der Vorschau) und danach die Kamera selbst. .. code-block:: python try: ... # Die Kamera-Vorschau im QTGL-Modus starten camera.start_preview(Preview.QTGL) # Die Kamera starten camera.start() ... #. Nimmt ein Bild mit der Kamera auf und speichert es im Home-Verzeichnis des Benutzers ``~/``. .. code-block:: python try: ... # Ein Foto aufnehmen und im Home-Verzeichnis speichern camera.capture_file(f'{user_home}/my_photo.jpg') .. note:: Sie können die Funktion ``camera.capture()`` zusammen mit einer ``for``-Schleife verwenden, um Serienaufnahmen zu machen. Verwenden Sie außerdem die ``delay``-Funktion, um das Zeitintervall zwischen den Aufnahmen anzupassen. .. code-block:: python for i in 5: camera.capture(f'{user_home}/my_photo%s.jpg' % i) #. Dieser Codeblock behandelt ein KeyboardInterrupt (z. B. Strg+C), indem er die Kamera-Vorschau stoppt. Die ``pass``-Anweisung fängt die Ausnahme ab, ohne weitere Aktionen auszuführen. .. code-block:: python except KeyboardInterrupt: # Die Kamera-Vorschau stoppen, wenn ein KeyboardInterrupt auftritt camera.stop_preview() pass