A Single Pixel Digital Camera with Arduino

[Jordan] managed to cobble together his own version of a low resolution digital camera using just a few components. The image generated is pretty low resolution and is only in grey scale, but it’s pretty impressive what can be done with some basic hardware.

The heart of the camera is the image sensor. Most consumer digital cameras have tons of tiny receptors all jammed into the sensor. This allows for a larger resolution image, capturing more detail in a smaller space. Unfortunately this also usually means a higher price tag. [Jordan’s] sensor includes just a single pixel. The sensor is really just an infrared photodiode inside of a tube. The diode is connected to an analog input pin on an Arduino. The sensor can be pointed at an object, and the Arduino can sense the brightness of that one point.

In order to compile an actual image, [Jordan] needs to obtain readings of multiple points. Most cameras do this using the large array of pixels. Since [Jordan’s] camera only has a single pixel, he has to move it around and take each reading one at a time. To accomplish this, the Arduino is hooked up to two servo motors. This allows the sensor to be aimed horizontally and vertically. The Arduino slowly scans the sensor in a grid, taking readings along the way. A Processing application then takes each reading and compiles the final image.

Since this camera compiles an image so slowly, it sometimes has a problem with varying brightness. [Jordan] noticed this issue when clouds would pass over while he was taking an image. To fix this problem, he added an ambient light sensor. The Arduino can detect the amount of overall ambient light and then adjust each reading to compensate. He says it’s not perfect but the results are still an improvement. Maybe next time he can try it in color.

Cracking Weather Station Checksum

[BaronVonSchnowzer] is spinning up some home automation and settled on an inexpensive ambient temperature sensor which is sold to augment the data a home weather station collects. He found that the RF protocol had been reverse engineered and will use this information to harvest data from a sensor in each room. In true hacker fashion, he rolled his own advances out to the Internet so that others may benefit. Specifically, he reverse engineered the checksum used by the Ambient F007TH.

He got onto this track after trying out the Arduino sketch written to receive the sensor’s RF communications. One peculiar part of the code turned out to be a filter for corrupt messages as the protocol’s checksum hadn’t yet been worked out. Figuring out how the checksum byte owrks wasn’t an easy process. The adventure led him to dump 13k samples into a spreadsheet to see if sorting similar sets of 5-byte message and 1-byte checksum would shed some light on the situation. The rest of the story is some impressive pattern matching that led to the final algorithm. Now [BaronVonSchnowzer] and anyone else using these modules can filter out corrupt data in the most efficient way possible.

Kill Time Making Flappy Bird, Not Playing It

With all the Flappy Bird clones floating around in the ether after the game’s unexpected success, there are some that are better than others. And by better, we mean, hacked together from misc hardware. If you’ve got an Arduino on hand, then you’re half way to making your own:

The “Minimalist” Version

[aron.bordin] created his own Flappy Bird game with a short list of parts some of us likely have lying around on our bench. An Arduino loaded with the appropriate code is wired to a 16×16 LED matrix, which apparently displays the minimal amount of visual information you’d need to play the game. The only other parts required are a single pushbutton and resistor tethered on a breadboard to control your flapping. With the wire hookup laid out by convenient diagrams and the libraries required for the code all found on the same page, this is easily something one could bang out in an afternoon. If afterwards you still find yourself with more time to kill than you can stand to play Flappy Birds, there is always the option of fashioning a humorously-sized cell phone case to squeeze it all into… which we’d like to see.

The “Fancy” Version

If you want more resolution than solid colored LEDs, or you just have a fondness for the terrifying bird abstraction the game is known for, you can switch out the 16×16 matrix for a Nokia LCD screen. [Huy’s] rendition of this build over on Hackaday.io will deliver a “more detailed” graphic for the game, and is still roughly just as easy to assemble. Similarly, an Ardunio is loaded with the smarts required to generate the game, along with a single pushbutton tacked on for control. The code and the daunting (/sarcasm) two steps needed to wire the Arduino to the screen can be found on his project’s page.

If you must kill boredom playing Flappy Bird, there is no excuse not to do so on something you made yourself.

Continue reading “Kill Time Making Flappy Bird, Not Playing It”

Using HID Tricks to Drop Malicious Files

[Nikhil] has been experimenting with human interface devices (HID) in relation to security. We’ve seen in the past how HID can be exploited using inexpensive equipment. [Nikhil] has built his own simple device to drop malicious files onto target computers using HID technology.

The system runs on a Teensy 3.0. The Teensy is like a very small version of Arduino that has built-in functionality for emulating human interface devices, such as keyboards. This means that you can trick a computer into believing the Teensy is a keyboard. The computer will treat it as such, and the Teensy can enter keystrokes into the computer as though it were a human typing them. You can see how this might be a security problem.

[Nikhil’s] device uses a very simple trick to install files on a target machine. It simply opens up Powershell and runs a one-liner command. Generally, this commend will create a file based on input received from a web site controlled by the attacker. The script might download a trojan virus, or it might create a shortcut on the user’s desktop which will run a malicious script. The device can also create hot keys that will run a specific script every time the user presses that key.

Protecting from this type off attack can be difficult. Your primary option would be to strictly control USB devices, but this can be difficult to manage, especially in large organizations. Web filtering would also help in this specific case, since the attack relies on downloading files from the web. Your best bet might be to train users to not plug in any old USB device they find lying around. Regardless of the methodology, it’s important to know that this stuff is out there in the wild.

A Remote for CHDK Cameras Made Possible with Arduino

[AlxDroidDev] built himself a nice remote control box for CHDK-enabled cameras. If you haven’t heard of CHDK, it’s a pretty cool software modification for some Canon cameras. CHDK adds many new features to inexpensive cameras. In this case, [AlxDroidDev] is using a feature that allows the camera shutter to be activated via USB. CHDK can be run from the SD card, so no permanent modifications need to be made to the camera.

[AlxDroidDev’s] device runs off of an ATMega328p with Arduino. It operates from a 9V battery. The circuit contains an infrared receiver and also a Bluetooth module. This allows [AlxDroidDev] to control his camera using either method. The device interfaces to the camera using a standard USB connector and cable. It contains three LEDs, red, green, and blue. Each one indicates the status of a different function.

The Arduino uses Ken Shirrif’s IR Remote library to handle the infrared remote control functions. SoftwareSerial is used to connect to the Bluetooth module. The Arduino code has built-in functionality for both Canon and Nikon infrared remote controls. To control the camera via Bluetooth, [AlxDroidDev] built a custom Android application. The app can not only control the camera’s shutter, but it can also control the level of zoom.

Trinket uses RF to track you through the house

If you carry a cell phone with GPS, you always know where you are on the planet. But what about inside buildings or even your own home? Knowing if you’re in the kitchen or the living room would be a great feature for home automation systems. Lights could come on as you enter the room and your music could follow you on the home audio system. This is exactly the what [Eric] is working on with his Radiolocation using a Pocket Size Transceiver project. [Eric] started this project as an entry in the Trinket Everyday Carry Contest. He didn’t make the top 3, but was one of the fierce competitors who made the competition very hard to judge!

The heart of the project is determining Time Of Flight (TOF) for a radio signal. Since radio waves move at the speed of light, this is no small feat for an Arduino based design! [Eric] isn’t re-inventing the wheel though – he’s basing his design on several research papers, which he’s linked to his project description. Time of flight calculations get easier to handle when calculating round trip times rather than one way. To handle this, one or more base stations send out pings, which are received and returned by small transponders worn by a user. By averaging over many round trip transmissions, a distance estimation can be calculated.

[Eric] used a Pro Trinket as his mobile transponder, while an Arduino Micro with it’s 16 bit counter acted as the base station. For RF, he used the popular  Nordic nRF24L01+ 2.4 GHz transceiver modules. Even with this simple hardware, he’s achieved great results. So far he can display distance between base and transponder on a graph. Not bad for a DIY transponder so small if fits in a 2xAAA battery case! [Eric’s] next task is working through multipath issues, and testing out multiple base stations.

Click past the break to see [Eric’s] project in action!

Continue reading “Trinket uses RF to track you through the house”

Arduino + Servo + Scotch tape == An Interesting Conversation

If one could temporarily remove their sense of humor and cast a serious look into a Rube Goldberg machine, they would not say to themselves “well that looks simple.” Indeed, it would almost always be the case that one would find themselves asking “why all the complexity for such a simple task?”

Too often in hacking are we guilty of making things more complicated than they really need to be. Maybe it’s because we can see many different paths to a single destination. Maybe it’s because we want to explore a specific path, even though we know it might be a little harder to tread. Maybe it’s just because we can.

rubegoldberg

But imagine approaching a hack as simply a means to an end. Imagine if you did not have all of that knowledge in your head. All of those tools at your disposal. How would this change your approach? When [yavin427] decided to automate the leveling up process in his favorite video game, odds are he had never taken a game controller apart. Had never touched an oscilloscope. Indeed, he might have no knowledge of what a transistor or microcontroller even is. While many of our readers would have taken the more difficult path and tapped directly into the TTL of the controller to achieve maximum efficiency; it is most likely that [yavin427] would not have known how to do this, and thus would not have seen the many other paths to his end goal that would have been obvious to us. Yet he achieved his end goal. And he did it far easier and with less complication than many of us would have done.

Thoughts?

Continue reading “Arduino + Servo + Scotch tape == An Interesting Conversation”