CTS upgrades

CTS upgrades

I am trying to add more features to the existing CTS boards. Some of the requirements I had so far were related to streaming and ability to save the images to a card. The new CTS board with OV2640 attached.  While working on some simple compression solutions I was also looking to add uSD support … Continue reading

SumoBot – new platform

SumoBot – new platform

For last month I was actively working on few prototypes. One of them is the SumoBot. Is actually a all-on-board bot using the 22T tracks from Pololu and their metal-motor-gears. Slightly smaller than 90 x 90 mm, is equipped with Accelerometer and Gyro (MPU-6050), motor controller (MCPWM), quadrature encoders, EEPROM to save the settings, WiFi for real-time … Continue reading

MCPWM with LPC175x/176x

MCPWM with LPC175x/176x

For my new “mini Sumo” size robotic platform I am using MCPWM to control the DC brush micro-motors instead of PWM as I am keeping the PWM outputs in case I will want to control some sensors or servos. I could not find a functional example on how to control DC brush motors using a … Continue reading

Breaking the record

Ok, is official: streaming at 14 FPS over a serial link. True, is only B&W and 160 x 120 but is still a record, a personal one. I am trying to get 10 FPS on a 460,800 bps line or even better: 230,400 bps! Then I can stream images over a wifi/bluetooth link. Update: Already come … Continue reading

Side by side tests

Side by side tests

A side by side test: 320 x 240 pixels, B&W, 8 bits/pixel (76802 Bytes) 320 x 240 pixels, B&W, 4 bits/pixel (38402 Bytes) 320 x 240 pixels, B&W, 8 bits/pixel with RLE compression (25981 Bytes) 320 x 240 pixels, B&W, 8 bits/pixel with RLE compression – aggressive (17924 Bytes) Last one was done using some aggressive settings on … Continue reading

A simple RLE implementation (cont)

A simple RLE implementation (cont)

  I managed to get the RLE implementation working quite well. The original code is adding an index information for EVERY pixel, which on a noisy image can double the size of the image instead of compressing it. This is pretty much a functional version: … for (i = 1; i< lineLen; i++){ if (seq == … Continue reading

A simple RLE implementation

I was explaining in the previous post about the RLE algorithm (Run-Length Encoding) I am using as an alternative to jpeg compression. The good part about this is that will work with OV7670/OV7725 and will not require a lot of CPU cycles. The code looks something like this: // Capture and stream a frame in B&W … Continue reading

“Home made” compression

“Home made” compression

I am not sure what am I doing wrong, but for now I can not get the OV2640 camera to create a proper jpeg file. Sometime works, sometime not… Plus, the OV2640 is very expensive, changing from raw to jpeg is slow as I need to load a different set of registries, etc. So I … Continue reading

CTS Client

I had not much time lately, however, using the CTS Client code I managed to put together a “simple” client application, java based, to play the data stream coming from a CTS module. The images are streamed from one of my CTS modules with a OV2640 camera on board.

ATMEGA328 + OV7670 FIFO module (software)

As I do not have an Arduino board I am not able to put together a code running on Arduino, however, below code should run either using AVR Studio or modified to be used as an Arduino library. The code should be tailored for the schematic published previously. For performance purposes the code should only send … Continue reading