The OpenMV Cam by OpenMV LLC is a small, low power, microcontroller board that makes it easy to add machine vision in your real-world applications. You program the OpenMV Cam in high level Python scripts (courtesy of the MicroPython Operating System) instead of C/C++. All the hard work of developing algorithms and handling complex data structures is done for you 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.
The original Kickstarter version is based on an STM Cortex M4 while the new version is based on a Cortex M7 with almost twice the speed, RAM, and flash.
|OpenMV Cam M4||OpenMV Cam M7|
|STM32F427VG ARM Cortex M4 processor||STM32F765VI ARM Cortex M7 processor|
|180 MHz||216 MHz|
|256KB of RAM||512KB of RAM|
|1 MB of flash||2 MB of flash|
|OV7725 image sensor||OV7725 image sensor|
|320x480 8-bit Grayscale images||640x480 8-bit Grayscale images|
|320x240 16-bit RGB565 images at 30 FPS.||320x240 16-bit RGB565 images at 30 FPS.|
The OpenMV Cam can be used for the following things currently (more in the future):
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. Video demo here.
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.
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.
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.
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. You can see our video on this feature here.
You can preform edge detection via either the Canny Edge Detector algorithm or simple high-pass filtering followed by thresholding. After you have a binary image you can then use the Hough Detector to find all the lines in the image. With edge/line detection you can use your OpenMV Cam to easily detect the orientation of objects.
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.
You can use the OpenMV Cam to capture up to 320x240 RGB565 (or 640x480 Grayscale) 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.
You can use the OpenMV Cam to record up to 320x240 RGB565 (or 640x480 Grayscale) MJPEG video or GIF images. 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.
The OpenMV Cam M7 can also detect and decode data matrix 2D barcodes too. You can see our video on this feature here.
The OpenMV Cam M7 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. You can see our video on this feature here.
Even better than QR Codes above, the OpenMV Cam M7 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. We have a video on this feature here.
You can mix and match available features in your own custom application along with I/O pin control to talk to the real world.
|Specification||OpenMV Cam M4||OpenMV Cam M7|
|Architecture||ARM® 32-bit Cortex®-M4 CPU||ARM® 32-bit Cortex®-M7 CPU|
|FPU||Single Precision||Double Precision|
|Clock/DMIPS||180 MHz (225 DMIPS)||216 MHz (462 DMIPS)|
|Core Mark Score||608||1082|
|Specification||OpenMV Cam M4||OpenMV Cam M7|
|RAM Layout||64KB .DATA/.BSS/Heap/Stack||128KB .DATA/.BSS/Heap/Stack|
|192KB Frame Buffer/Stack||384KB Frame Buffer/Stack|
|256KB Total||512KB Total|
|Flash Layout||16KB Bootloader||32KB Bootloader|
|48KB Embedded Flash Drive||96K Embedded Flash Drive|
|960KB Firmware||1920KB Firmware|
|1MB Total||2MB Total|
|Format||OpenMV Cam M4||OpenMV Cam M7|
Note: lower resolutions can be used for increased performance
All pins are 5V tolerant with 3.3V output. All pins can sink or source up to 25mA. P6 is not 5V tolerant in ADC or DAC mode. Up to 120mA may be sinked or sourced in total between all pins. VIN may be between 3.6V and 5V. Do not draw more than 250mA from your OpenMV Cam's 3.3V rail.
|Use Case||OpenMV Cam M4||OpenMV Cam M7|
|Idle - No μSD Card||100mA||110mA|
|Idle - μSD Card||100mA||110mA|
|Active - No μSD Card||140mA||190mA|
|Active - μSD Card||150mA||200mA|
Note: All values are mA measured at 3.3V
|Shipping Rate||First item||Additional items|
United States Postal Service: First Class
We recognize our top users by making them a Tindarian. Tindarians have access to secret & unreleased features.
We look for the most active & best members of the Tindie community, and invite them to join. There isn't a selection process or form to fill out. The only way to become a Tindarian is by being a nice & active member of the Tindie community!
Useful and clever breadboard prototyping products that help you create faster. Competition-proven robot rover products.
Hi, my name is Mike Shimniok, author of the Bot Thoughts robotics blog (www.bot-thoughts.com). I've been building electronic circuits since 1985 and robotics since 2007. I hold a BS in Computer Engineering, from University of Arizona and an MS in Systems Engineering, from The George Washington University.