Posts with «camera» label

JPEG Decoding, Arduino Style

When you think of image processing, you probably don’t think of the Arduino. [Jan Gromes] did, though. Using a camera and an Arduino Mega, [Jan] was able to decode input from an Arduino-connected camera into raw image data. We aren’t sure about [Jan’s] use case, but we can think of lots of reasons you might want to know what is hiding inside a compressed JPEG from the camera.

The Mega is key, because–as you might expect–you need plenty of memory to deal with photos. There is also an SD card for auxiliary storage. The camera code is straightforward and saves the image to the SD card. The interesting part is the decoding.

The use case mentioned in the post is sending image data across a potentially lossy communication channel. Because JPEG is compressed in a lossy way, losing some part of a JPEG will likely render it useless. But sending raw image data means that lost or wrong data will just cause visual artifacts (think snow on an old TV screen) and your brain is pretty good at interpreting lossy images like that.

Just to test that theory, we took one of [Joe Kim’s] illustrations, saved it as a JPEG and corrupted just a few bytes in a single spot in it. You can see the before (left) and after (right) picture below. You can make it out, but the effect of just a few bytes in one spot is far-reaching, as you can see.

The code uses a library that returns 16-bit RGB images. The library was meant for displaying images on a screen, but then again it doesn’t really know what you are doing with the results. It isn’t hard to imagine using the data to detect a specific color, find edges in the image, detect motion, and other simple tasks.

Sending the uncompressed image data might be good for error resilience, but it isn’t good for impatient people. At 115,200 baud, [Jan] says it takes about a minute to move a raw picture from the Arduino to a PC.

We’ve seen the Arduino handle a single pixel at a time. Even in color. The Arduino might not be your first choice for an image processing platform, but clearly, you can do some things with it.

Filed under: Arduino Hacks
Hack a Day 12 Jul 16:00

Reverse-Engineering the Peugeot 207’s CAN bus

Here’s a classic “one thing led to another” car hack. [Alexandre Blin] wanted a reversing camera for his old Peugeot 207 and went down a rabbit hole which led him to do some extreme CAN bus reverse-engineering with Arduino and iOS. Buying an expensive bezel, a cheap HDMI display, an Arduino, a CAN bus shield, an iPod touch with a ghetto serial interface cable that didn’t work out, a HM-10 BLE module, an iPad 4S, the camera itself, and about a year and a half of working on it intermittently, he finally emerged poorer by about 275€, but victorious in a job well done. A company retrofit would not only have cost him a lot more, but would have deprived him of everything that he learned along the way.

Adding the camera was the easiest part of the exercise when he found an after-market version specifically meant for his 207 model. The original non-graphical display had to make room for a new HDMI display and a fresh bezel, which cost him much more than the display. Besides displaying the camera image when reversing, the new display also needed to show all of the other entertainment system information. This couldn’t be obtained from the OBD-II port but the CAN bus looked promising, although he couldn’t find any details for his model initially. But with over 2.5 million of the 207’s on the road, it wasn’t long before [Alexandre] hit jackpot in a French University student project who used a 207 to study the CAN bus. The 207’s CAN bus system was sub-divided in to three separate buses and the “comfort” bus provided all the data he needed. To decode the CAN frames, he used an Arduino, a CAN bus shield and a python script to visualize the data, checking to see which frames changed when he performed certain functions — such as changing volume or putting the gear in reverse, for example.

The Arduino could not drive the HDMI display directly, so he needed additional hardware to complete his hack. While a Raspberry Pi would have been ideal, [Alexandre] is an iOS developer so he naturally gravitated towards the Apple ecosystem. He connected an old iPod to the Arduino via a serial connection from the Dock port on the iPod. But using the Apple HDMI adapter to connect to the display broke the serial connection, so he had to put his thinking cap back on. This time, he used a HM-10 BLE module connected to the Arduino, and replaced the older iPod Touch (which didn’t support BLE) with a more modern iPhone 4S. Once he had all the bits and pieces working, it wasn’t too long before he could wrap up this long drawn upgrade, but the final result looks as good as a factory original. Check out the video after the break.

It’s great to read about these kinds of hacks where the hacker digs in his feet and doesn’t give up until it’s done and dusted. And thanks to his detailed post, and all the code shared on his GitHub repository, it should be easy to replicate this the second time around, for those looking to upgrade their old 207. And if you’re looking for inspiration, check out this great Homemade Subaru Head Unit Upgrade.

Filed under: car hacks

Talking Arduino Tells GoPro What To Do

It’s 2017 and even GoPro cameras now come with voice activation. Budding videographers, rest assured, nothing will look more professional than repeatedly yelling at your camera on a big shoot. Hackaday alumnus [Jeremy Cook] heard about this and instead of seeing an annoying gimmick, saw possibilities. Could they automate their GoPro using Arduino-spoken voice commands?

It’s an original way to do automation, for sure. In many ways, it makes sense – rather than mucking around with trying to make your own version of the GoPro mobile app (software written by surfers; horribly buggy) or official WiFi remote, stick with what you know. [Jeremy] decided to pair an Arduino Nano with the ISD1820 voice playback module. This was then combined with a servo-based panning fixture – [Jeremy] wants the GoPro to pan, take a photo, and repeat. The Arduino sets the servo position, then commands the ISD1820 to playback the voice command to take a picture, before rotating again.

[Jeremy] reports that it’s just a prototype at this stage, and works only inconsistently. This could perhaps be an issue of intelligibility of the recorded speech, or perhaps a volume issue. It’s hard to argue that a voice control system will ever be as robust as remote controlling a camera over WiFi, but it just goes to show – there’s never just one way to get the job done. We’ve seen people go deeper into GoPro hacking though – check out this comprehensive guide on how to pwn your GoPro.

Filed under: Arduino Hacks, digital cameras hacks

Arduino Video isn’t Quite 4K

Video resolution is always on the rise. The days of 640×480 video have given way to 720, 1080, and even 4K resolutions. There’s no end in sight. However, you need a lot of horsepower to process that many pixels. What if you have a small robot powered by a microcontroller (perhaps an Arduino) and you want it to have vision? You can’t realistically process HD video, or even low-grade video with a small processor. CORTEX systems has an open source solution: a 7 pixel camera with an I2C interface.

The files for SNAIL Vision include a bill of materials and the PCB layout. There’s software for the Vishay sensors used and provisions for mounting a lens holder to the PCB using glue. The design is fairly simple. In addition to the array of sensors, there’s an I2C multiplexer which also acts as a level shifter and a handful of resistors and connectors.

Is seven pixels enough to be useful? We don’t know, but we’d love to see some examples of using the SNAIL Vision board, or other low-resolution optical sensors with low-end microcontrollers. This seems like a cheaper mechanism than Pixy. If seven pixels are too much, you could always try one.

Thanks [Paul] for the tip.

Filed under: Arduino Hacks, video hacks

Create polarized pictures with your iPhone and Arduino

Taking great pictures means making them more vibrant enhancing saturation and contrast. Ynformatic has published some tips to help you do that by creating a DIY device to control a polarizer using an Arduino Pro Mini, an iPhone, and a screen from an auto-darkening welder’s mask.

A phototransistor located facing the iPhone’s flashlight LED is connected to both an external interrupt pin and an analog pin. Short pulses on the LED cause interrupts in the Arduino code which are used to synchronize the polarizer. Long pulses on the LED cause the Arduino to enter calibration mode. The time interval between syncrhonization pulses is continuously measured and divided into three equal parts. On receiving a synchronization pulse the voltage is set to 0V for one part, to the 45 degree voltage for one part and finally to 5V for one part. Voltage for the polarizer is supplied from an Arduino PWM output pin. To get a reasonably stable output the PWM frequency was increased to 32 kHz and smoothed with a second order RC filter. The liquid crystal display will be damaged by a constant DC voltage so a CMOS switch is used to alternate the polarity. A 2 kHz square wave generated from a free running Arduino timer is used to drive the switching.

An iPhone app written in Swift is responsible for the user interface and image processing.

Explore the schematic in the picture below, while the full source code for the Arduino and iPhone can be downloaded from here.


Would you like to invite my robot to visit your location on it's tour around the globe?

Primary image

What does it do?

Remote controlled through web interface

The idea in short:
I will send a robot around planet earth. The robot will be sent to you free of charge. Let it run in your area for 24h and show all earthlings your projects or a piece of your country. Send the rover to the next destination after your mission is over (postal charges will be refunded).
The robot can be controlled through a web interface while transmitting a live video stream. All young scientist and of course all discoverers that are young at heart get free access to the robots, there is even no registration needed.

Cost to build

$200, 00

Embedded video

Finished project


Time to build

20 hours



URL to more information


3300 grams

read more

You Can’t Touch This! Arduino Yún Alarm System

The purpose is clear. You don’t want your kids to steal your food from the cupboard, or from the fridge, or someone to open your locker. Or maybe you want to take pictures of your pet stealing food. Or maybe you are Dwight Schrute and you want to finally unmask […]

Read more on MAKE

The post You Can’t Touch This! Arduino Yún Alarm System appeared first on Make: DIY Projects, How-Tos, Electronics, Crafts and Ideas for Makers.

Slap my zombie hand for internet fame!

Halloween time is a great moment to explore nice interactive projects and get inspired for installations for other selfie occasions. To spice up the office Donnie Plumly, a creative technologist, decided to make and share with us a molded zombie arm that takes pictures and post them to Twitter.

He used a silicone arm (molded on his own hand ), a custom steel mount to clip to an office partition, and a vibration sensor hooked up to an Arduino Uno. Once the arm is slapped a photo will be taken using an IR Led and passed to the Eye-Fi card in the camera.

The photo is then saved into a Dropbox folder and, using If This Then That (IFTTT), posted to Twitter on the account @ZombieSelfie.

Donnie created also a very useful tutorial  on Instructable to make it yourself!

New Project: Build an Automatic Photo Rig for Perfect Panoramas

Make an automatic camera rig for shooting high-resolution panoramas with a point-and-shoot camera.

Read more on MAKE

The post Build an Automatic Photo Rig for Perfect Panoramas appeared first on Make: DIY Projects, How-Tos, Electronics, Crafts and Ideas for Makers.

New Project: Built a Motion Control Rig for Time-Lapse Photography

In this project, you'll learn how to use an Arduino microcontroller and a stepper motor to precisely control the panning of a camera during a time lapse.

Read more on MAKE

The post Built a Motion Control Rig for Time-Lapse Photography appeared first on Make: DIY Projects, How-Tos, Electronics, Crafts and Ideas for Makers.