Using the Raspberry Pi Camera Module
Connect and capture from the official Camera Module — a capability the Uno and most microcontrollers simply don't have.
You'll need: a Raspberry Pi Camera Module (any version) and a ribbon cable connecting it to the Pi's dedicated camera port (a separate connector from the GPIO header, usually near the HDMI port).
With the Pi powered off, gently lift the camera port's plastic clip, insert the ribbon cable with the metal contacts facing the correct direction (check your specific board's silkscreen or documentation — orientation varies slightly by model), and press the clip back down to secure it. Power on, then confirm the camera is detected:
libcamera-hello --list-cameras
libcamera-jpeg -o test.jpglibcamera-hello --list-cameras confirms the OS sees the camera and reports its model — an empty or error result usually means the ribbon cable isn't seated correctly or is inserted backwards. libcamera-jpeg -o test.jpg captures a single still photo directly from the terminal, no code required yet, saved to your current directory.
From Python, the picamera2 library (pre-installed on current Raspberry Pi OS images) wraps this same functionality for use inside your own scripts — capturing stills or video, and combining a camera feed with GPIO logic from earlier lessons (like the motion-activated project in Lesson rpi-20) in one program.