Barcode Scanner

Introduction

In our final project, we used CMOS camera to identify interval binary 0 and 1 sequence represented by black and white bars. Then, we used WIFI module to transmit the sequence to personal computer and displayed it on a web page.

In our projects, we chose OV7670 CMOS camera and ESP8266 WIFI module for image capture and WIFI transmission. Since PIC32MX250F128B only has 32K bytes inside memory and a low CPU frequency compared to the large data scale of image, we did data compression and data processing in order to match the PIC32 with OV7670. What is more, we did some adjustment to I2C transmission in order to configure the camera which originally used a SCCB (Serial Camera Control Bus) to set up.

For WIFI part, we used UART to connect the microcontroller and WIFI module. Since Cornell campus WIFI is not proper to use for a WIFI module, we set a raspberry pi as a hotspot.

High Level Design

Rationale and Source of Our Project Idea

What does “microcontroller” mean? It means “control”. The reason we used microcontroller was to control different peripheral devices. OV7670 CMOS camera is a popular CMOS camera and has been widely used. However, there is little information about using OV7670 on PIC. So we thought it would be very cool to build the connection between OV7670 and PIC. What is more, in lab4, we have built the wired connection between the personal computer and PIC by USB wire so we wanted to build the wireless connection by WIFI in our final project.

In addition, nowadays, the barcode is widely used. As is known to all, the barcode consists only black and white bars which can be easily represented by binary 0 and 1. The simple representation of barcode is proper to the PIC32 which only has 32K Bytes memory.