DFRobot
OpenMV Cam H7 Plus
The OpenMV Cam is a small, low power, microcontroller board which allows you to easily implement applications using machine vision in the real-world. You pro...
Get notified when back in stock
The OpenMV Cam is a small, low power, microcontroller board which allows you to easily implement applications using machine vision in the real-world. You program the OpenMV Cam in high level Python scripts(courtesy of the MicroPython Operating System) instead of C/C++. This makes it easier to deal with the complex outputs of machine vision algorithms and working with high level data structures. But, you still have total control over your OpenMV Cam and its I/O pins in Python. You can easily trigger taking pictures and video on external events or execute machine vision algorithms to figure out how to control your I/O pins.
Interface Library:
The OpenMV Cam comes built-in with an RPC (Remote Python/Procedure Call) library which makes it easy to connect the OpenMV Cam to your computer, a SBC (single board computer) like the RaspberryPi or Beaglebone, or a microcontroller like the Arduino or ESP8266/32. The RPC Interface Library works over:
- Async Serial (UART) - at up 7.5 Mb/s.
- I2C Bus - at up to 1 Mb/s.
- SPI Bus - at up to 80 Mb/s.
- CAN Bus - at up to 1 Mb/s.
- USB Virtual COM Port (VCP) - at up to 12 Mb/s.
- WiFi using the WiFi Shield - at up to 12 Mb/s.
OpenMV provides the following libraries for interfacing your OpenMV Cam to other systems below:
- Generic Python Interface Library for USB and WiFi Comms
- Provides Python code for connecting your OpenMV Cam to a Windows, Mac, or Linux computer (or Raspberry Pi/Beaglebone, etc.) with python programmatically over USB VCP or Ethernet/ WiFi (i.e. with sockets).
- Arduino Interface Library for I2C, SPI, CAN, and UART Comms
FEATURES
- The STM32H743II ARM Cortex M7 processor running at 480 MHz with 32MBs SDRAM + 1MB of SRAM and 32 MB of external flash + 2 MB of internal flash. All I/O pins output 3.3V and are 5V tolerant. The processor has the following I/O interfaces:
- A full speed USB (12Mbs) interface to your computer.
- A μSD Card socket capable of 100Mbs reads/writes
- A SPI bus that can run up to 80Mbs allowing you to easily stream image data off the system to either the LCD Shield, the WiFi Shield, or another microcontroller.
- A 12-bit ADC and a 12-bit DAC
- Two I/O pins for servo control.
- Interrupts and PWM on all I/O pins (there are 10 I/O pins on the board).
- And, an RGB LED and two high power 850nm IR LEDs.
APPLICATIONS
- TensorFlow Lite for Microcontrollers Support
TensorFlow Lite support lets you run custom image classification and segmentation models on board your OpenMV Cam. With TensorFlow Lite support you can easily classify complex regions of interest in view and control I/O pins based on what you see.
- Frame Differencing
You can use Frame Differencing on your OpenMV Cam to detect motion in a scene by looking at what's changed. Frame Differencing allows you to use your OpenMV Cam for security applications.
- Color Tracking
You can use your OpenMV Cam to detect up to 16 colors at a time in an image (realistically you'd never want to find more than 4) and each color can have any number of distinct blobs. Your OpenMV Cam will then tell you the position, size, centroid, and orientation of each blob. Using color tracking your OpenMV Cam can be programmed to do things like tracking the sun, line following, target tracking, and much, much, more.
- Marker Tracking
You can use your OpenMV Cam to detect groups of colors instead of independent colors. This allows you to create color makers (2 or more color tags) which can be put on objects allowing your OpenMV Cam to understand what the tagged objects are.
- Face Detection
You can detect Faces with your OpenMV Cam (or any generic object). Your OpenMV Cam can process Haar Cascades to do generic object detection and comes with a built-in Frontal Face Cascade and Eye Haar Cascade to detect faces and eyes.
- Eye Tracking
You can use Eye Tracking with your OpenMV Cam to detect someone's gaze. You can then, for example, use that to control a robot. Eye Tracking detects where the pupil is looking versus detecting if there's an eye in the image.
- Person Detection
You can detect if there's a person in the field of view using our built-in person detector TensorFlow Lite model.
- Optical Flow
You can use Optical Flow to detect translation of what your OpenMV Cam is looking at. For example, you can use Optical Flow on a quad-copter to determine how stable it is in the air.
- QR Code Detection/Decoding
You can use the OpenMV Cam to read QR Codes in it's field of view. With QR Code Detection/Decoding you can make smart robots which can read labels in the environment.
- Data Matrix Detection/Decoding
The OpenMV Cam H7 can also detect and decode data matrix 2D barcodes too.
- Linear Barcode Decoding
The OpenMV Cam H7 can also decode 1D linear bar codes. In particular, it can decode EAN2, EAN5, EAN8, UPCE, ISBN10, UPCA, EAN13, ISBN13, I25, DATABAR, DARABAR_EXP, CODABAR, CODE39, CODE93, and CODE128 barcodes.
- AprilTag Tracking
Even better than QR Codes above, the OpenMV Cam H7 can also track AprilTags at 160x120 at up to about 12 FPS. AprilTags are rotation, scale, shear, and lighting invariant state-of-the-art fidicual markers.
- Line Detection
Infinite line detection can be done speedily on your OpenMV Cam at near max FPS. And, you can also find non-infinite length line segments too.
- Circle Detection
You can use the OpenMV Cam H7 to easily detect circles in the image.
- Rectangle Detection
The OpenMV Cam H7 can also detect rectangles using our AprilTag library's quad detector code.
- Template Matching
You can use template matching with your OpenMV Cam to detect when a translated pre-saved image is in view. For example, template matching can be used to find fiducials on a PCB or read known digits on a display.
- Image Capture
You can use the OpenMV Cam to capture up to 640x480 Grayscale/RGB565 BMP/JPG/PPM/PGM images. You directly control how images are captured in your Python script. Best of all, you can preform machine vision functions and/or draw on frames before saving them.
- Video Recording
You can use the OpenMV Cam to record up to 640x480 Grayscale/RGB565 MJPEG video or GIF images (or RAW video). You directly control how each frame of video is recorded in your Python script and have total control on how video recording starts and finishes. And, like capturing images, you can preform machine vision functions and/or draw on video frames before saving them.
SPECIFICATION
- ARM® 32-bit Cortex®-M7 CPU
- w/ Double Precision FPU
- 480 MHz (1027 DMIPS)
- Core Mark Score: 2400 (compare w/ Raspberry Pi 2: 2340)
- 64KB Stack
- 256KB .DATA/.BSS/Heap
- 32MB Frame Buffer/Stack
- 512KB SDRAM Cache
- 256KB DMA Buffers
- 128KB Bootloader
- 16MB Embedded Flash Drive
- 1792KB Firmware
- Output/Input:3.3v/5v
- Power Consumption
Idle - No μSD Card 140mA @ 3.3V
Idle - μSD Card 140mA @ 3.3V
Active - No μSD Card 230mA @ 3.3V
Active - μSD Card 240mA @ 3.3V
- Temperature Range
Storage -40°C to 125°C
Operating -20°C to 70°C
Jargon buster
Plain-language definitions for the technical terms used above.
- ADC
- An analogue-to-digital converter reads a changing voltage and turns it into a number the microcontroller can use. It matters when connecting analogue sensors such as light, sound, or variable-resistor sensors.
- Bootloader
- Small starter software on a microcontroller that lets new code be uploaded before the main program runs. Knowing how to enter bootloader mode matters when you need to program the board or recover it after a faulty sketch.
- CAN bus
- CAN bus is a reliable two-wire communication network originally designed for vehicles and now common in machinery and robotics. It matters when you need multiple controllers or devices to share status and control messages in a noisy electrical environment.
- COM port
- A COM port is how a computer (chiefly under Windows) presents a serial port to software, whether a physical RS-232 port or a virtual port created when a USB-to-serial device is plugged in. Software can then communicate with the connected device over serial using a terminal or configuration program.
- DAC
- A digital-to-analogue converter turns numbers from the microcontroller into a real analogue voltage. It matters if you want to generate simple waveforms, audio-style signals, or variable control voltages rather than just on/off outputs.
- fps
- fps means frames per second, or how many video images are captured or displayed each second. A higher fps generally gives smoother motion, which helps when the camera or the scene being viewed is moving.
- FPU
- A floating-point unit is hardware inside a processor that speeds up calculations with decimal numbers. This helps when projects use maths-heavy tasks such as motion sensing, filtering sensor readings, or audio processing.
- frame buffer
- A frame buffer is memory that stores a complete image before it is shown on a display. Displays without their own frame buffer need the controller to continuously send pixel data, which affects the choice of microcontroller and software library.
- I2C
- I2C is a two-wire communication bus used by many sensors and small modules. It matters because several I2C devices can share the same two wires, but each device needs a compatible address and your controller must support I2C.
- LCD
- LCD stands for liquid crystal display, a screen technology that uses a backlight and liquid crystals to show images or text. It matters because LCD modules usually need a display driver and enough controller pins or a bus interface to send image data.
- LED
- A light-emitting diode (LED) is a small electronic component that emits light when current flows through it in the correct direction. Because it only conducts one way, its polarity matters, and a through-hole LED must be soldered the correct way around to light up.
- microcontroller
- A microcontroller is a small computer on a single chip that runs a stored program and controls connected inputs and outputs such as buttons, sensors, displays and communication interfaces. In a device built around one, it is the part that executes the code and coordinates the device's behaviour.
- MicroPython
- A version of the Python programming language made to run on microcontrollers. It matters because it lets beginners write readable code to control LEDs, sensors, motors and displays without needing to start with lower-level languages.
- PCB
- A printed circuit board (PCB) is a board, usually rigid, with etched copper tracks that connect electronic components together without loose wiring. Components are mounted on the board and signals route between them through the copper layout.
- ppm
- ppm means parts per million, a common way to express very small gas concentrations in air. For CO₂ sensors, the ppm range tells you what levels the sensor can measure, such as normal indoor air through to poorly ventilated spaces.
- PWM
- Pulse Width Modulation is a way for a digital pin to simulate variable output power by switching on and off very quickly. It matters for controlling things like LED brightness, motor speed, or servo-style signals from a microcontroller pin.
- RGB
- Short for red, green and blue, the three primary colours of light that are mixed in varying amounts to make a wide range of colours. In electronics RGB can refer to an LED or pixel that blends these three colours, or to a colour signal or interface that carries separate red, green and blue channels.
- servo
- A servo is a motor with built-in position control, usually told to move to a specific angle by a control signal. It matters when you need repeatable movement, such as steering, arms, flaps, or linkages, rather than continuous spinning.
- Shield
- An add-on board that plugs into a main controller board to give it extra features such as sensing, motor control or communication. Knowing a product supports shields helps you judge whether it can connect neatly into an existing maker-board setup.
- SPI
- A fast serial communication bus often used for displays, memory cards, and sensors. It matters because SPI devices need specific pins for clock and data, plus a separate chip-select line for each device.
- SRAM
- Fast temporary memory used by a processor while a program is running. More SRAM helps with projects that handle larger data buffers, networking, displays, or more complex code.
- UART
- UART is a simple asynchronous serial interface that sends data over separate transmit and receive wires, usually labelled TX and RX, with both ends set to the same baud rate. It is a common way for microcontrollers and other serial devices to exchange data.
Find this product in
Brands
Supplier page — dfrobot.com
Supplier Description · 618.9 KB · Click any page to view full size
Related Tutorials
Free guides on learn.littlebird.com.au