As ArduCAM is general purpose camera, it can be used on any micro controller platform not limited to Arduino, and now ArduCAM team port the code library to Raspberry Pi family.
Thanks to the uniform 40 pin GPIO header design makes it possible to adopt ArduCAM and its mutli camera adapter board for Pi B+, Pi 2, Pi 3 and even Pi ZERO. Due to the benefit of onboard frame buffer and DMA transfer directly from sensor to frame buffer, make the ArduCAM outstanding of taking photos simultaneously.
ArduCAM now released a ESP8266 based Arduino board for ArduCAM mini camera modules while keeping the same form of factors and pinout as the standard Arduino UNO R3 board. The high light this ESP8266 board is that it well mates with ArduCAM mini 2MP and 5MP camera modules, supports Lithium battery power supply and recharging and with build in SD card slot. It can be an ideal solution for home security and IoT camera applications.
Build in ESP8266-12E Module
11 digital input/output pins, IO ports are 3.3V tolerant
1 analog input(3.2V max input)
ArduCAM Mini 2MP/5MP camera interface
Lithium battery recharging 3.7V/500mA max
Build in SD/TF card socket
7-12V power jack input
Build in micro USB-Serial interface
Compatible with Arduino IDE
Note that the SD/TF card CS pin is shared with UART TX signal, so the UART and the SD/TF can’t be used at the same time.
Getting Started ESP8266 with Arduino IDE
ArduCAM released a add-on package which allows installation of third-party platform packages using Boards Manager. Add the following URL to the Arduino IDE Preferences window. Then Open Boards Manager from Tools -> Board menu and install ArduCAM_ESP8266_UNO add-on package.
This book shows you how to build your own wireless home security system using an Android cell phone or tablet, an Arduino microcontroller, an infrared motion detector, a Bluetooth adapter, and an optional ArduCAM Mini digital camera. All these items are low cost off the shelf parts that are widely available for purchase. This book shows you how to build your own home intruder alarm system that allows you to detect the motion of an intruder and then call out to an emergency phone number using an Android cell phone or just alert you to the intruder with an Android tablet. In addition, an ArduCAM Mini digital camera can be added so that pictures of the intruder can be taken when the motion detector is tripped. You can also use the book’s ArduCAM Mini camera based security system for continuous surveillance of your property. The image data is stored locally on the Android device and does NOT require payment of storage fees as with some home security company plans. This book will also go into the technical details of the hardware set up as well as the author created Android and Arduino software. With these technical details you will be able to customize and expand these systems to suit your specific needs.
Who is this book for?
1. This book is designed for everyone from people with no technical experience to experienced Do It Yourselfers such as those experienced in home improvements as well as programmers and engineers who want to customize and expand on the basic home security systems presented.
Key Feature Summary:
* Shows you how to build your own wireless home security and surveillance system and stop paying monthly fees to home security companies.
* Shows you how to build your own wireless home security and surveillance system and stop worrying about being spied on by commercial security companies.
* Expands upon the trend of “Do It Yourself” or “DIY” wireless home security systems such as the best selling self installable SimpliSafe wireless home security system
* Follow the detailed “Hands on Examples” and install the pre-made software created by the author on your Android and Arduino devices and get a working video surveillance system, or an intruder alarm system up and running within 15 minutes.
* Shows you how to build your own wireless home security system that can detect intruders and make an emergency cell phone call to notify you of the intrusion.
* Explains the author created source code for the Android and Arduino so you can customize the home security systems yourself.
Table of Contents:
Chapter 1: Introducing the Arduino
Chapter 2: Arduino Programming Language Basics
Chapter 3: The Android Controller and Bluetooth Communication with Arduino
Chapter 4: Simple Wireless Intruder Alarm System with Motion Detector
Chapter 5: Hands on Example: Creating a Simple Intruder Alarm System
Chapter 6: ArduCAM Mini Wireless Intruder Alarm/Video Surveillance System
Chapter 7: Hands on Example: Building an ArduCAM Intruder Alarm / Surveillance System
Chapter 8: Deploying your Wireless Intruder Alarm and Surveillance System
ArduCAM team now announces to release a new CC3200 UNO board which is full featured development board almost like a combination of CC3200 Launchpad plus CC3200CAMBOOST pack from TI while keeping exactly the same size as Arduino UNO and pin out.
It is based on TI simplelink series CC3200 chip, which gives you an ARM Cortex M4 processor with a built-in WiFi stack and radio. It supports things like web servers and SSL out of the box. It can be mated with existing thousand kinds of Arduino shields without effort. It makes writing firmware for these devices easier, since a lot of the work is already done. The collection of libraries aids in getting prototypes running quickly. You can even debug Energia sketches using TI’s fully featured IDE.
In addition to standard Arduino pin out and Arduino development environment, it also has additional ArduCAM standard camera interface, user can use TI Code Composer Studio (CCS) to develop and debug camera based application.
ArduCAM CC3200 UNO has build in SWD and JTAG debug circuit, you do not need additional debugger tools to do the debugging. It supports TI CCS and Uniflash seamlessly. If you’re looking to connect things to the internet, with the goal of building some sort of “Internet of Things,” this new ArduCAM CC3200 UNO board is your right option.
TI CC3200 ARM Cortex M4 Processor with WIFI support
Arduino UNO Size and Pin Out
Support ArduCAM Standard Camera Interface and MT9D111 Camera Module
Onboard JTAG/SWD Debugger
Support Energia and Code Composer Studio Development Environment
Applications Microcontroller Subsystem:
ARM Cortex-M4 Core at 80 MHz
256KB RAM, 1MB serial flash memory with file system for user
Hardware Crypto Engine for Advanced Fast Security, Including AES, DES, 3DES, SHA2 MD5, CRC and Checksum
Up to 27 individually programmable, multiplexed GPIO pins, including a fast parallel camera interface, I2S, SD/MMC, UART, SPI, I2C, and four-channel ADC.
Wi-Fi Network Processor Subsystem:
Dedicated ARM MCU, completely offloads Wi-Fi and Internet Protocols from the Application Microcontroller
11 b/g/n Radio
WPA2 Personal and Enterprise Security
Station, Access Point, and Wi-Fi Direct Modes
Powerful Crypto Engine for Fast, Secure Wi-Fi and Internet Connections with 256-Bit AES Encryption for TLS and SSL connections
SmartConfig Technology, AP Mode and WPS2 for easy and flexible Wi-Fi provisioning
The power-management subsystem includes integrated DC-DC converters supporting a wide range of supply voltages. This subsystem enables low-power consumption modes, such as the hibernate with RTC mode requiring less than 7 μA of current
Panoramic photograph is a technique of photography, using specialized equipment or software, that captures images with elongated fields of view. It is sometimes known as wide format photography. In order to create panorama photos, you have to take several photos from different view point and stitching them afterwards. There are basically two ways to get these photos, one is to use one camera and shooting from different position, the other is to use multiple cameras and shooting at the same time. The later has better stitching result than the former and requires less photography experience, but more complex hardware equipment.
With the hardware nature of ArduCAM shields especially the ArduCAM-mini and Multi-Adapter board for Raspberry, you can connect multiple cameras to a single Arduino or Raspberry Pi board, even shoot the cameras at the same time. In this demonstration we will use 4 ArduCAM mini 5MP with its adapter board and an Arduino UNO R3 board to create your own panoramas or virtual tours.
In order to get the maxim field of view, we need to mount fisheye lens into the ArduCAM. The lens parameters like optical format, focal length, FOV is very important for stitching software, you can get these information from your lens suppliers. Here is the lens LS-30180 fisheye specification used in this demo, maybe we can use much better fisheye lens to get better photos.
By connecting 4 ArduCAM mini 5MP with the adapter board and the Arduino board, also inserting a microSD/TF into the bottom side of the adapter board card.
Now you can download ready to use Arduino example sketch for multi-camera setups. The example ArduCAM_Mini_5MP_4Cams_TimeElapse2SD_LowPower.ino will start to initialize 4 cameras and the SD card first, and then take 4 photos at every 5 seconds automatically.
It is good news to hear that the Arduino IDE support was announced on the ESP8266 community forum, the source code can be found from . It is more than another Arduino board, but can be thought as a Arduino combined with a WIFI shield. With faster CPU speed and much smaller form of factor, most important the less than $10USD price is more attractive, you are worth to try although there are also some limitations. Setup is fairly simple with downloads for Linux, OS X, and Windows. More detail setup can be found from adafruit guide.
Now ArduCAM ports our camera libraries for ESP8266, you can use the ESP8266 module with ArduCAM modules to take high quality high resolution photos and save to SD card, or even to publish the photos to webpage. In this tutorial we will use ESP8266 arduino board to take photos and publish to webpage.
In order to transfer a photo to webpage, I have to briefly introduce the technology of websocket first. WebSocket is a protocol providing full-duplex communication channels over a single TCP connection. It is designed to be implemented in web browsers and web servers, so it can be used by any client and any platform like PCs, laptops, pads and smart phones. The standard HTTP protocol which is C/S based architecture, a client send a request to a server, the server send the information requested back to the client and close connection immediately. Unlike the standard HTTP protocol, the websocket protocol only use HTTP protocol for handshake stage, and keep the connection open afterward. It allows bi-directional conversation between a browser and the server. Detail websocket description can be found from wiki.
In this demo, we create a websocket server on the ESP8266 arduino borad. It connects to a user defined WIFI router by DHCP, then you can connect to this server via your web browser.
The assigned IP address can be determined via serial monitor message.
Provide you now have the IP address 192.168.1.105 for websocket server, and open the camera_demo.html located in your Arduino\arduino-1.6.5-r5\libraries\ArduCAM\examples\ESP8266\ArduCAM_Mini_OV2640_websocket_server\html folder from your web browser. Change the websocket IP address get from the serial monitor marked in red box in the picture.
Click the “Connect” button, you will see the websocket connection request from the serial monitor. After few seconds, the webpage will notify the successful connection established.
After that you can click the send button to send a websocket message to ESP8266. It will trigger the capture command on the ESP8266 arduino side, and it will send back the captured image and display on the webpage.
ArduCAM series camera shield is a universal camera control board for Arduino. It hides the complex nature of the camera and provides the easy to use camera control interface as well as the ready to use software source code library and demo code. The ArduCAM supports variety camera modules from 0.3MP to 5MP with different format like RAW, RGB, YUV, JPEG and can be well mated with standard Arduino boards.
ArduCAM Rev.C+ is the latest revision of ArduCAM shields, it offers the improved performance and enhanced functions than the previous revisions. It can capture maxim 5MP JPEG images, which makes it to be the ideal solution for IoT applications.
The ArduCAM is designed for Arduino but not limited to Arduino, it can be used in any platforms like Arduino, Raspberry Pi, Maple, Chipkit, Beaglebone black, as long as they have the SPI and I2C interface. User can port the current Arduino library to other platforms with less effort.
Support 0.3MP~5MP camera modules, see Table 1
3.2 inch TFT LCD with touch screen
Build in SD/TF card socket
Support JPEG compression mode, single and multiple shoot mode, one time capture multiple read operation, burst read operation, low power mode and etc.
ArduCAM WIFI camera board is open source WIFI camera develop board which is based on Texas Instruments CC3200 SimpleLink WIFI IoT solution and Aptina MT9D111 camera module. It offers the high quality live video streaming functions as well as keep the small size and low power consumption.
TI makes connectivity even easier with the next-generation SimpleLink Wi-Fi solutions. The product family features Internet-on-a-chip™, Wi-Fi CERTIFIED™ solutions solving industry challenges for broad embedded applications. With SimpleLink CC3200 solutions you can:
Program applications on the industry’s first Internet-on-a-chip solution with user dedicated MCU
Power Wi-Fi battery-operated designs for more than a year on two AA batteries
Start quickly, no Wi-Fi experience needed
Both CC3200 solutions are supported by a software development kit (SDK) including software drivers, sample applications, API guide, user documentation and a world-class support E2E™ community. On the integrated Cortex-M4, all sample applications in the SDK are supported with Code Composer Studio™ Integrated Development Environment and no RTOS. A few of the applications support IAR, GCC, Free RTOS, TI-RTOS. And ArduCAM team provides a complete solution on WIFI video transmission.
Raspberry Pi multi camera adapter module is designed for connecting more than one camera to a single CSI camera port on Raspberry Pi board. One adapter board can connect 4 cameras and user can stack up maxim 4 adapter boards that means up to 16 cameras on a single Raspberry Pi board. Continue reading “Multi Camera Adapter Module for Raspberry Pi” »
ArduCAM Mini is optimized version of ArduCAM shield Rev.C, and is a high definition SPI camera, which reduce the complexity of the camera control interface. It integrates 2MP or 5MP CMOS image sensor OV2640/OV5642, and provides miniature size, as well as the easy to use hardware interface and open source code library. The ArduCAM mini can be used in any platforms like Arduino, Raspberry Pi, Maple, Chipkit, Beaglebone black, as long as they have SPI and I2C interface and can be well mated with standard Arduino boards. ArduCAM mini not only offers the capability to add a camera interface which doesn’t have in some low cost microcontrollers, but also provides the capability to add multiple cameras to a single microcontroller.
2MP or 5MP image sensor OV2640 / OV5642
M12 mount or CS mount lens holder with changeable lens options
IR sensitive with proper lens combination
I2C interface for the sensor configuration
SPI interface for camera commands and data stream
All IO ports are 5V/3.3V tolerant
Support JPEG compression mode, single and multiple shoot mode, one time capture multiple read operation, burst read operation, low power mode and etc.
3~10fps video output at low resolution
Well mated with standard Arduino boards
Provide open source code library for Arduino, STM32, Chipkit, Raspberry Pi, BeagleBone Black
Small form of factor
Active array size
Frame buffer Size
34 x 24 mm
34 x 24 mm
Normal :5V/70mALow power mode: 5V/20mA
Normal :5V/390mALow power mode: 5V/20mA
Table 1 ArduCAM Mini Pin Definition
SPI slave chip select input
SPI master output slave input
SPI master input slave output
SPI serial clock
5V Power supply
Two-Wire Serial Interface Data I/O
Two-Wire Serial Interface Clock
Figure 2 shows the block diagram of ArduCAM mini shield which is composed by lens, image sensor and an ArduChip. The lens is changeable and can be mounted by S-mount (M12x0.5) or CS-mount lens holder. The ArduChip uses ArduCAM proprietary third generation camera controller technology which handles the complex camera, memory and user interface hardware timing and provides a user friendly SPI interface.
Single Capture Mode
Single capture mode is the default capture mode of the camera. After issuing a capture command via SPI port, the ArduCAM will wait for a new frame and buffer the one entire image data to the frame buffer, and then assert the completion flag bit in the register. User only needs to poll the flag bit from the register to check out if the capture is done.
Multiple Capture Mode
Multiple capture mode is advanced capture mode. By setting the number of frames in the capture register, the ArduCAM will capture consequent frames after issuing capture command. Note that number of frames should be set properly and make sure do not exceed the maximum memory space.
The JPEG compression function is implemented in the image sensor. With proper register settings to the sensor, user can get different resolution with JPEG image stream output. It is recommended to use JPEG output to get higher resolution than RGB mode, due to the limitation of frame buffer.
Normal Read and Burst Read Operation
Normal read operation reads each image data by sending a read command in one SPI read operation cycle. While burst read operation only need to send a read command then read multiple image data in one SPI read operation cycle. It is recommended to use burst read operation to get better throughput performance.
Rewind Read Operation
Sometimes user wants to read the same frame of image data multiple times for processing, the rewind read operation is designed for this purpose. By resetting the read pointer to the beginning of the image data, user can read the same image data from the start point again.
Low Power Mode
Some battery power device need save power when in the idle status, the ArduCAM offers the low power mode to reduce power consumption, by shutdown the sensor and memory circuits.
Image Sensor Control
Image sensor control function is implemented in the image sensor. By setting proper set of register settings, user can control the exposure, white balance, brightness, contrast, color saturation and etc.
ArduCAM team now are working on different famous open hardware platform, and successfully port the ArduCAM library to Raspberry Pi, Beaglebone Black and STM32 boards. Also we moved our library to github for better maintenance.
In order to meet the increasing need of Raspberry Pi compatible camera modules. The ArduCAM team now released another add-on spy camera module for Raspberry Pi series boards which is fully compatible with official one.
The board itself is tiny, at around 300mm x 16mm. The neck width of the camera module is 6mm, this highlight making it perfect for endoscope, spy surveillance or other applications where size and image quality are important. Continue reading “New Spy Camera for Raspberry Pi” »
In order to meet the increasing need of Raspberry Pi compatible camera modules. The ArduCAM team now released a revision C add-on camera module for Raspberry Pi which is fully compatible with official one. It optimizes the optical performance than the previous Pi cameras, and give user a much clear and sharp image. Also it provides the FREX and STROBE signals which can be used for multi-camera synchronize capture with proper camera driver firmware. Continue reading “Rev.C OV5647 Camera for Raspberry Pi Improves the Optical Performance” »
This post introduces how to use ArduCAM host application to take high resolution time elapse image with ArduCAM shield. We need the following items to complete this demonstration:
Arduino UNO board
ArduCAM-F or ArduCAM-LF shield
OV5642 camera module with fisheye lens
Arduino example sketch ArduCAM_SPI_OV5642_FIFO_UART.ino
ArduCAM host application
ArduCAM host application is an Windows application which runs in your Windows computer. It is written in Microsoft C# .NET, precompiled execute program can be download from here, source project files can be download from here. Please note that it requires Microsoft .NET Framework 3.5 version to run.
The example sketch ArduCAM_SPI_OV5642_FIFO_UART.ino receives commands from ArduCAM host application then send back image data when capture is done. The ArduCAM host side save the received image binary data into a JPEG file.
With basic knowledge about example and ArduCAM host application, now let’s connect ArduCAM shield to UNO board, attach the OV5642 camera module, then downloading the example sketch ArduCAM_SPI_OV5642_FIFO_UART.ino .
Recently ArduCAM team designed a simple-point-and-shoot digital camera for Raspberry Pi B+ board, it integrates both LCD touch screen and 5MP Raspberry Pi camera board into a single shield. It is well mated with Raspberry Pi B+ board, combined the WIFI dongle user can optionally transfer the captured photos to anywhere else. The RaspCAM features changeable lens options, user can replace the lens with fisheye or telescope lens according to their applications.
With the great success of ArduCAM shield Rev.B, we received hundreds of comments and feedbacks from ArduCAM users. The ArduCAM team now released a more powerful ArduCAM shield Rev.C with past few months’ hard work. The new features list as follows: Continue reading “ArduCAM Shield Rev.C Now Released” »