Arduino Panorama Photography with ArduCAM

Featured

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.

ArduCAM-mini-multicam-adapter1

 

 

 

 

 

 

 

 

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.
LS-30180_Spec

 

 

 

 

 

 

 

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.

ArduCAM-mini-multicam-adapter2

 

 

 

 

 

 

 

 

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.

Export the captured photo into your computer, select the photo sets you would like to stitch with KRPano, Pano2VR, Kolor Panotour & Panotour Pro, Flash Panorama Player & Flashificator, PTGui, Saladoplayer & similar apps and post them to panoramas hosted on sites like360Cities.net, ViewAt.org, TourWrist.com, GigaPan.com, etc.

ArduCAM_Panorama_demo_preview

ArduCAM now Supports ESP8266 Arduino Board with WIFI Websocket Camera Demo

Featured

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.

Websocket Background

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.

Demo Prerequisite

To complete this demo you need two items:

Hardware connection

The connection between the ESP8266 board and ArduCAM mini is shown as the following picture and table.

 

 

 

 

 

 

 

 

Arduino Sketches and library

Before running the demo sketch, you need to copy three libraries ArduCAM, UTFT4ArduCAM_SPI and ESP8266-Websocket to the Arduino libraries folder.

Open the demo sketch ArduCAM_Mini_OV2640_websocket_server.ino, change the following line according to your own wifi AP router, then upload.

const char* ssid = "your_ssid";
const char* password = "your_passpwd";

ESP8266_sketch ESP8266_upload

 

 

 

 

 

 

 

 

 

 

 

 

 

 

The assigned IP address can be determined via serial monitor message.

DHCP_IPaddress

 

 

 

 

 

 

 

 

 

 

 

 

 

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.

ESP8266_webpageClick 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.

ESP8266_websocket_request

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.

ESP8266_websocket_demo

ArduCAM Now Support Rasbperry Beaglebone Black STM32 and More

Featured

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.

New Low Cost OV5647 Mini Camera Module for Raspberry Pi Now Available

Featured

  • Introduction

In order to meet the increasing need of Raspberry Pi compatible camera modules. The ArduCAM team now released ultra low cost add-on mini camera module for Raspberry Pi series boards which is fully compatible with official one. Continue reading “New Low Cost OV5647 Mini Camera Module for Raspberry Pi Now Available” »

New Spy Camera for Raspberry Pi

Featured

  • Introduction

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” »

Rev.C OV5647 Camera for Raspberry Pi Improves the Optical Performance

Featured

  • Introduction

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” »

RaspCAM A Raspberry Pi Based Camera

Featured

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.

Feature

  • Well mate with Raspberry Pi B+ board
  • 2.8/ 3.2 inch TFT LCD with touch screen
  • 5MP CMOS camera module
  • M12x0.5 or CS mount lens and lens holder
  • Support kinds of lens options
  • Opensource Raspberry Camera software

Continue reading “RaspCAM A Raspberry Pi Based Camera” »

OV5647 NoIR Camera for Raspberry Pi Now Released

 

The Pi NoIR is a Raspberry Pi camera module with no Infrared filter for night time and low light photography using an Infrared light. Useful for wildlife research, science projects, night time security or making artistic photo’s.

The Raspberry Pi camera module has been used for many things such as a security camera, for time lapse photography and even sent high up into the atmosphere on a weather balloon.
With the wide range of project Raspberry Pi’s are being used for, some users were finding that the camera was no good when it was being used in low light with an Infrared light source. Unfortunately for them the Raspberry Pi camera module has a Infrared filter built in which makes it unusable for their project. In response we come up with a camera module just for these type of projects called the Pi NoIR camera. It is the same as the standard camera module but without an IR filter.

Without the Infrared filter the camera can be used for night time photography, night time security or for any project where the scene will be lit by an IR light. Without a filter the camera sensor can see short wavelength IR light around 800nm which is the IR wavelengths not generated with heat but just beyond the visible red light in the spectrum.

The camera has the same specifications as the standard camera module but has a black circuit board so it can be told apart from the standard green camera board.

Raspberry Pi is a trademark of the Raspberry Pi Foundation

 

 

 

OV5647 Camera Module for Raspberry Pi Released

In order to meet the increasing need of Raspberry Pi compatible camera modules. The ArduCAM team now released a add-on camera module for Raspberry Pi which is fully compatible with official one. It attaches to Raspberry Pi by way of one of the two small sockets on the board upper surface. This interface uses the dedicated CSI interface, which was designed especially for interfacing to cameras. The CSI bus is capable of extremely high data rates, and it exclusively carries pixel data. The camera is supported in the latest version of Raspbian, Raspberry Pi’s preferred operating system

The board itself is tiny, at around 36mm x 36mm. The highlight of our module is that the Lens is replaceable compared to official one, making it perfect for mobile or other applications where size and image quality are important. It connects to Raspberry Pi by way of a short ribbon cable. The camera is connected to the BCM2835 processor on the Pi via the CSI bus, a higher bandwidth link which carries pixel data from the camera back to the processor. This bus travels along the ribbon cable that attaches the camera board to the Pi.

The sensor itself has a native resolution of 5 megapixel, and has a fixed focus lens onboard. In terms of still images, the camera is capable of 2592 x 1944 pixel static images, and also supports 1080p30, 720p60 and 640x480p60/90 video.

Feature:

  • High-Definition video camera for Raspberry Pi Model A or B
  • Omnivision 5647 sensor in a fixed-focus module with replaceable Lens
  • Lens holder: M12x0.5 or CS Mount
  • 5MPixel sensor
  • Integral IR filter
  • Still picture resolution: 2592 x 1944
  • Max video resolution: 1080p
  • Max frame rate: 30fps
  • Size: 36 x 36 mm
  • Connection by flat ribbon cable to 15-pin MIPI Camera Serial Interface (CSI) connector S5 on Raspberry Pi computer board

Raspberry Pi is a trademark of the Raspberry Pi Foundation