.. 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_pi5: 3.1.1 Fotografiemodul ========================== Einführung ----------------- In diesem Kit, ausgestattet mit einem Kameramodul, versuchen wir, mit dem Raspberry Pi ein Foto zu machen. Benötigte Komponenten ------------------------------ Für dieses Projekt benötigen wir folgende Komponenten. .. image:: ../python_pi5/img/3.3.1_photograph_list.png :width: 800 Es ist definitiv praktisch, ein komplettes Set zu kaufen, hier ist der Link: .. list-table:: :widths: 20 20 20 :header-rows: 1 * - Name - ARTIKEL IN DIESEM SET - 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 * - KOMPONENTENVORSTELLUNG - KAUF-LINK * - :ref:`cpn_camera_module` - |link_camera_buy| Experimentelle Verfahren ------------------------------ **Schritt 1:** Gehe zum Raspberry Pi Desktop. Für ein besseres Erlebnis benötigen Sie möglicherweise einen Bildschirm, siehe: `Verbinden Sie Ihren Raspberry Pi `_. Oder greifen Sie remote auf den Raspberry Pi Desktop zu, für eine detaillierte Anleitung siehe :ref:`remote_desktop`. **Schritt 2:** Öffnen Sie ein Terminal und wechseln Sie in den Ordner des Codes. .. code-block:: cd ~/raphael-kit/python-pi5 **Schritt 3:** Führen Sie aus. .. code-block:: sudo python3 3.1.1_PhotographModule_zero.py Nachdem der Code ausgeführt wurde, wird die Kamera ein Foto machen. 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-pi5/“ mit einer Python-IDE öffnen, den Ausführen-Knopf klicken, um es auszuführen, und den Code mit dem Stopp-Knopf stoppen. Wenn Sie das Foto auf Ihren PC herunterladen möchten, siehe :ref:`filezilla`. .. warning:: Wenn die Fehlermeldung ``RuntimeError: Cannot determine SOC peripheral base address`` angezeigt wird, lesen Sie bitte :ref:`faq_soc` **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 Modul ``os`` für Betriebssysteminteraktionen. .. code-block:: python #!/usr/bin/env python3 from picamera2 import Picamera2, Preview import os #. Ruft den Login-Namen des aktuellen Benutzers und den Pfad zu dessen Home-Verzeichnis ab. .. code-block:: python # 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}') #. Erstellt eine Instanz der Klasse ``Picamera2`` und ruft die Standard-Vorschaukonfiguration ab. .. code-block:: python # Create a Picamera2 instance camera = Picamera2() # Retrieve the default preview configuration preview_config = camera.preview_configuration #. Legt die Größe und das Format der Kameravorschau fest. Die Größe wird auf 800x600 Pixel festgelegt, und das Format auf ``XRGB8888``. .. code-block:: python try: # Set preview size and format preview_config.size = (800, 600) preview_config.format = 'XRGB8888' ... #. Startet die Kameravorschau im QTGL-Modus, einer Methode zur Anzeige der Vorschau, und startet dann die Kamera selbst. .. code-block:: python try: ... # Start the camera preview in QTGL mode camera.start_preview(Preview.QTGL) # Start the camera camera.start() ... #. Macht ein Bild mit der Kamera und speichert es in ``~/``. .. code-block:: python try: ... # Capture and save a photo to the user's home directory camera.capture_file(f'{user_home}/my_photo.jpg') .. note:: You can use ``camera.capture()`` function and ``for`` loop together to achieve continuous shooting. And use the ``delay`` function to adjust the time interval for taking pictures. .. 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 die Kameravorschau gestoppt wird. Die Anweisung ``pass`` wird verwendet, um die Ausnahme zu behandeln, ohne sonst etwas zu tun. .. code-block:: python except KeyboardInterrupt: # Stop the camera preview if a KeyboardInterrupt (e.g., Ctrl+C) occurs camera.stop_preview() pass