Stufin
Home Quick Cart Profile

Raspberry Pi Camera Module 3 NoIR

Buy Now

Name

Raspberry Pi Camera Module 3 NoIR

Type

Camera Module

Description

The Raspberry Pi Camera Module 3 NoIR is a high-quality camera module specifically designed for use with Raspberry Pi single-board computers. This module is an upgraded version of the previous camera modules, offering improved performance, higher resolution, and enhanced features. The "NoIR" suffix indicates that this module does not have an infrared filter, making it ideal for applications that require night vision, surveillance, or sensing in low-light environments.

Functionality

The Raspberry Pi Camera Module 3 NoIR is a small, compact camera module that can capture high-quality still images and video. It connects to the Raspberry Pi's Camera Serial Interface (CSI) port, allowing users to capture and process images using the Raspberry Pi's GPU. The camera module is designed to work seamlessly with the Raspberry Pi's operating system, enabling users to easily integrate camera functionality into their projects.

Key Features

  • High-Quality Sensor: The camera module features a 12-megapixel Sony IMX477 image sensor, which provides high-quality images with excellent low-light performance.
  • Global Shutter: The camera module has a global shutter, which allows it to capture images with minimal distortion and artifacts, making it suitable for fast-moving objects and machine vision applications.
  • IR-Cut Filter: Not having an IR-cut filter means the camera is sensitive to infrared light, making it suitable for applications that require night vision or sensing in low-light environments.
  • Wide Angle Lens: The camera module has a wide-angle lens with a diagonal angle of view of 77, allowing it to capture more of the scene.
  • Adjustable Focus: The camera module has an adjustable focus mechanism, allowing users to adjust the focus distance to suit their specific application.
  • High-Speed Interface: The camera module uses the CSI-2 interface, which allows for high-speed data transfer and reduces the latency associated with image capture.
  • Compact Design: The camera module is small and compact, making it easy to integrate into a variety of projects, including robotics, drones, and surveillance systems.
  • Power Efficiency: The camera module is power-efficient, requiring only 250 mA of power, making it suitable for battery-powered applications.
  • Open-Source Software: The camera module is supported by the Raspberry Pi Foundation's open-source software, providing a comprehensive set of libraries and tools for developers.

Image sensor

Sony IMX477

Resolution

12 megapixels (4032 x 3024)

Sensitivity

1.12 m x 1.12 m

Field of view

77 diagonal

Focal length

3.04 mm

IR cut filter

No

Shutter type

Global

Focus type

Adjustable

Interface

CSI-2

Power consumption

250 mA

Dimensions

25 mm x 24 mm x 9 mm

Applications

The Raspberry Pi Camera Module 3 NoIR is suitable for a wide range of applications, including

Robotics and computer vision

Surveillance and security systems

Drones and aerial photography

Machine learning and AI projects

Home automation and IoT projects

Medical and scientific imaging applications

Pin Configuration

  • Raspberry Pi Camera Module 3 NoIR Pinout Guide
  • The Raspberry Pi Camera Module 3 NoIR is a high-quality camera module designed for use with Raspberry Pi boards. It features a 12-megapixel Sony IMX708 image sensor and is capable of capturing high-definition video and photos. Here is a detailed explanation of the pins on the Camera Module 3 NoIR:
  • Pinout Structure:
  • The Camera Module 3 NoIR has a 15-pin FFC (Flexible Flat Cable) connector, with the following pinout structure:
  • 1. VCC (Pin 1): Power supply pin, typically connected to 3.3V or 5V depending on the Raspberry Pi board's power requirements.
  • 2. SDA (Pin 2): I2C (Inter-Integrated Circuit) data pin, used for camera control and configuration.
  • 3. SCL (Pin 3): I2C clock pin, used to synchronize data transfer between the camera and Raspberry Pi.
  • 4. PWRDN (Pin 4): Powerdown pin, used to turn the camera on and off.
  • 5. XCLK (Pin 5): Clock signal pin, used to synchronize camera operations with the Raspberry Pi.
  • 6. VSYNC (Pin 6): Vertical sync pin, used to synchronize video frame capture with the Raspberry Pi.
  • 7. HSYNC (Pin 7): Horizontal sync pin, used to synchronize video line capture with the Raspberry Pi.
  • 8. D0 (Pin 8): Data pin 0, used for parallel video data transmission.
  • 9. D1 (Pin 9): Data pin 1, used for parallel video data transmission.
  • 10. D2 (Pin 10): Data pin 2, used for parallel video data transmission.
  • 11. D3 (Pin 11): Data pin 3, used for parallel video data transmission.
  • 12. D4 (Pin 12): Data pin 4, used for parallel video data transmission.
  • 13. D5 (Pin 13): Data pin 5, used for parallel video data transmission.
  • 14. D6 (Pin 14): Data pin 6, used for parallel video data transmission.
  • 15. GND (Pin 15): Ground pin, connected to the Raspberry Pi's ground pin.
  • Connection Guidelines:
  • When connecting the Camera Module 3 NoIR to a Raspberry Pi board, follow these guidelines:
  • Use a 15-pin FFC cable to connect the camera module to the Raspberry Pi's camera interface.
  • Make sure to align the cable with the pinout structure on both the camera module and Raspberry Pi board.
  • Ensure secure connections by gently pressing the FFC cable into the connector on both the camera module and Raspberry Pi board.
  • Use a camera module mounting mechanism, such as a adhesive pad or a screw, to secure the camera module to the Raspberry Pi board or a surface.
  • Important Notes:
  • Always handle the camera module and FFC cable with care to avoid damage or bending.
  • Make sure to connect the camera module to a powered-down Raspberry Pi board to avoid damage from backpowering.
  • Refer to the official Raspberry Pi documentation and camera module datasheet for specific connection and usage guidelines.
  • By following this pinout guide and connection guidelines, you can successfully integrate the Raspberry Pi Camera Module 3 NoIR with your Raspberry Pi project.

Code Examples

Raspberry Pi Camera Module 3 NoIR Documentation
Overview
The Raspberry Pi Camera Module 3 NoIR is a high-quality camera module designed specifically for the Raspberry Pi series of single-board computers. This camera module features a 12-megapixel Sony IMX708 sensor, capable of capturing high-resolution images and videos in low-light conditions. The "NoIR" suffix indicates that this module does not have an infrared filter, making it suitable for applications that require night vision or other IR-sensitive scenarios.
Technical Specifications
Sensor: Sony IMX708, 12-megapixel, 1/2.55" sensor size
 Lens: 6mm, f/1.8
 Resolution: Up to 4656 x 2592 pixels (12 megapixels)
 Video: Up to 1080p at 30fps, 720p at 60fps
 Interface: 15-pin MIPI CSI-2
 Power consumption: Approximately 250mA at 5V
 Operating temperature: -20C to 50C
Python Library: picamera
To use the Raspberry Pi Camera Module 3 NoIR with Python, you'll need to install the `picamera` library. You can install it using pip:
`sudo pip install picamera`
Code Examples
### Example 1: Capturing a Still Image
This example demonstrates how to capture a still image using the Raspberry Pi Camera Module 3 NoIR:
```python
import picamera
# Create a camera object
camera = picamera.PiCamera()
# Set the camera resolution and format
camera.resolution = (2592, 1944)
camera.format = 'jpg'
# Capture an image and save it to a file
camera.capture('image.jpg')
# Close the camera object
camera.close()
```
In this example, we create a `picamera.PiCamera()` object, set the camera resolution and format, and then capture an image using the `capture()` method. The image is saved to a file named `image.jpg`.
### Example 2: Streaming Video over HTTP
This example demonstrates how to stream video from the Raspberry Pi Camera Module 3 NoIR over HTTP using the `picamera` library and the `Flask` web framework:
```python
import picamera
from flask import Flask, Response
app = Flask(__name__)
# Create a camera object
camera = picamera.PiCamera()
# Set the camera resolution and format
camera.resolution = (640, 480)
camera.format = 'h264'
@app.route('/')
def index():
    return '''
        <html>
            <body>
                <h1>Raspberry Pi Camera Stream</h1>
                <img src="/stream.mjpg" width="640" height="480" />
            </body>
        </html>
    '''
@app.route('/stream.mjpg')
def stream():
    return Response(gen(camera), mimetype='multipart/x-mixed-replace; boundary=frame')
def gen(camera):
    while True:
        yield b'--frame
'
        yield b'Content-Type: image/jpeg

'
        yield camera.get_frame()
        yield b'
'
if __name__ == '__main__':
    app.run(host='0.0.0.0', port=8000)
```
In this example, we create a Flask web application that serves a simple HTML page with an `<img>` tag that requests the video stream from the camera. The `gen()` function generates a MIME multipart stream that sends JPEG frames from the camera to the client. The `stream()` function returns this stream as a response to the `/stream.mjpg` request.
### Example 3: Motion Detection using OpenCV
This example demonstrates how to use the Raspberry Pi Camera Module 3 NoIR to detect motion using OpenCV:
```python
import cv2
import picamera
# Create a camera object
camera = picamera.PiCamera()
# Set the camera resolution and format
camera.resolution = (640, 480)
camera.format = 'bgr'
# Create an OpenCV window
cv2.namedWindow('Motion Detection', cv2.WINDOW_NORMAL)
while True:
    # Capture a frame from the camera
    frame = camera.capture numpy.array(camera.capture()))
    
    # Convert the frame to grayscale
    gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
    
    # Apply Gaussian blur to reduce noise
    blur = cv2.GaussianBlur(gray, (21, 21), 0)
    
    # Calculate the absolute difference between the current frame and the previous frame
    frame_delta = cv2.absdiff(blur, cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY))
    
    # Threshold the frame delta to detect motion
    thresh = cv2.threshold(frame_delta, 25, 255, cv2.THRESH_BINARY)[1]
    
    # Draw contours around detected motion
    contours, _ = cv2.findContours(thresh, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
    for contour in contours:
        cv2.drawContours(frame, [contour], -1, (0, 255, 0), 2)
    
    # Display the output
    cv2.imshow('Motion Detection', frame)
    
    # Exit on key press
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break
# Release resources
cv2.destroyAllWindows()
camera.close()
```
In this example, we create a `picamera.PiCamera()` object and set the camera resolution and format. We then capture frames from the camera and process them using OpenCV to detect motion. The motion detection algorithm involves converting the frame to grayscale, applying Gaussian blur, calculating the absolute difference between the current frame and the previous frame, and thresholding the result to detect motion. We then draw contours around detected motion and display the output using OpenCV.