Posts with «ir» label

Universal Remote a Grove Infrared project


 
 

Description

This project will convert an ordinary Keyes infra-red (IR) remote
into a programmable universal remote.

 
A single button press on the Keyes remote will be converted into precise Sony IR signal combinations using an Arduino UNO and an assortment of Seeedstudio Grove modules.
You can assign signal combinations from more than one remote if desired.
An example combination could be to:
  • Turn on the TV and then switch channels.
  • Turn on the TV, sound system, and air-conditioner.
  • Turn up the volume x 3.
With only one button press of the Keyes remote, the entire cascade of Sony signals ensues. This project can be customised for other IR methodologies, however, you may have to modify the Arduino code to accommodate them.

 
 

Parts Required

  1. Arduino Uno (or compatible board)
  2. Grove Base Shield (v2)
  3. Grove Infrared Receiver
  4. Grove Infrared Emitter
  5. Grove Button
  6. Grove 16x2 LCD (White on Blue)
  7. Grove Universal 4 pin buckled cable: one supplied with each module.
  8. KEYES IR Remote Control
  9. SONY IR remote control
  10. USB cable - to power and program the Arduino
  11. Battery pack / Power bank

 
 

More information about the Grove modules can be found here:

**Please Note: The Grove Base shield has 14 pins on the Analog side, and 18 pins on the digital side. Check the number of pins on your Arduino UNO (or compatible board) to ensure the shield will sit nicely on top. NOT compatible with Arduino boards that have the Arduino Duemilanove pin header layout.

 
 

Arduino IDE

While there are many Arduino IDE alternatives out there, I would recommend that you use the official Arduino IDE for this project. I used the official Arduino IDE app (v1.8.5) for Windows 10.
Make sure to get the most up-to-date version for your operating system here.


 
 

Libraries required

The following libraries will be used in the Arduino code:

  1. Wire Library
  2. IRLib2 Library
  3. rgb_lcd Library

Wire Library

The Wire library is used for I2C communication for the Grove LCD screen and is built into the Arduino IDE - no additional download required for this library.
 

IRLib2 Library

The IRLib2 Library is actually a "set" of IR libraries, which can be downloaded from GitHub - here. In this project, I will be transmitting and receiving NEC and Sony IR remote signals.
The required libraries (within the set) will be:
  • IRLibRecv.h
  • IRLibDecodeBase.h
  • IRLibSendBase.h
  • IRLib_P01_NEC.h
  • IRLib_P02_Sony.h
  • IRLibCombo.h
Please see the IRLib2 GitHub Page for installation instructions.
 

rgb_lcd Library

The rgb_lcd.h library simplifies the operation of the LCD screen.
Download the rgb_lcd.h library from GitHub. Install the rgb_lcd.h library ZIP file into the Arduino IDE:
  1. Load the Arduino IDE
  2. Navigate to Sketch >Include library > Add .ZIP library...
  3. Select the downloaded zip file from GitHub, and press the "Open" button
  4. Check that it installed correctly by navigating to File > Examples > Grove-LCD RGB Backlight

 
 
 
 

Arduino Code

It is always best to upload the Arduino code to the board before you make any of the connections. This way you prevent the Arduino from sending current to a component accidentally. The code is available on my GitHub repository. Or you can have a look below. This code was written for an Arduino UNO, and may need to be modified if you are using a different board.

 
 
 
 

Connection instructions

If you are using the Grove Base Shield (v2). The connections are extremely simple. Use the following table as a guide. Please note that the code above assumes the following connections.
 

 

As per the table above, you would use a Grove universal 4-pin buckled cable and connect one side to D2 on the Grove base shield, and the other side would connect to the Grove Infrared Emitter.
D3 on the base shield would connect to the Grove Infrared Receiver, and so on.
You can connect the 16x2 LCD module to ANY of the four I2C connectors on the Grove base shield.

If you do not have a Grove Base shield, you have the option to use female-to-male jumper wires (together with a breadboard). But it is easier just to get the base shield and use the universal connectors.

 
 
 
 
 
 

Project Explained

When you apply power to the Arduino, the first thing that appears on the LCD screen is:
 


 
After pressing the Grove button (connected to D5), it displays the following message:
 

 
This is the cue to press and send a signal from the Keyes remote to the Infrared receiver (which is connected to D2). The Arduino will decode the Keyes remote signal, store the value in an array, and display the signal briefly on the LCD. The LCD should now show a message:
 

 
This message is a cue to press and send the FIRST signal from the Sony remote to the Infrared receiver. The Arduino will decode and store the Sony remote signal in a different array, and display it briefly on the LCD. You have the option to send a maximum of THREE Sony signal combinations to the Infrared receiver at this step in the process. The minimum number of Sony signals you can send is zero. The way to tell the Arduino that you do not want to send any further Sony signals to the receiver in this step, is by pressing the Grove Button (connected to D5).
 
The Arduino is programmed to receive a total of 5 Keyes signals, and each signal can be paired with a maximum of 3 Sony signal combinations. Once you have recorded all of the signal combinations, you will get a message:
 

 
The Arduino will now enter the final "Universal remote mode". In this mode, it will listen out for ANY of the 5 Keyes IR remote signals recorded previously, and will send the associated Sony signal combination in return. For example, if you press the number 1 on the Keyes remote, you could potentially have it so that the Arduino will transmit a Sony signal combination to turn on the TV and jump to a specific channnel.
 
The LCD will display each of the signals being transmitted. You will know you are in "Universal remote" mode because the LCD will display:
 

 
While you may be tempted to throw your Sony remote away at this stage (because you no longer have a use for it)... I would hold on to it just in case. The signals are not stored permanently. They disappear when the Arduino is powered off. But it doesn't have to be that way. You can easily modify the code to store it in eeprom memory or something.
 
That is not the only thing you can change.Technically, you could record the signal for any remote, however, you may need to include additional libraries or code to accommodate the alternate remote symbology. You can also modify the text messages on the LCD screen to make more sense to you. The LCD can only display 16 characters per row. So keep that it mind, when you come up with creative captions.
 
I would also like to mention the reason I chose not to use Seeedstudio's IR library, was because it took up too much memory. Their library probably accommodates for a wide range of symbologies. I chose the IRLib2 Library because I could select only the symbologies that I used (Sony and NEC). Thereby reducing the total amount of memory necessary to run the project. In fact, I have been finding that many of Seeedstudio's libraries to be very memory hungry. I originally wanted to create a gesture controlled remote. But the library combinations eliminated that possibility due to the cumulative memory requirements.
 
 
 
 

Conclusion

The IRLib2 library is the key to the success of this project. Without that library, this project would have been ten times harder. I was quite amazed by the effectiveness of this record / playback technique. It felt very weird to be operating my SONY TV with a cheap and nasty Keyes remote. It was quite surreal. While I chose to control my TV in this way, I could have just as easily recorded signals from one of my other remotes that use infrared signals. As more and more devices become controllable by remotes, the more I will consider turning this project into a permanent fixture in my house. A gesture controlled remote would have been nice, however, it looks like I will have to find some other use for that module now.

If you found this tutorial helpful, please consider supporting me by buying me a virtual coffee/beer.

$3.00 AUD only
 

Social Media

You can find me on various social networks:

Follow me on Twitter: ScottC @ArduinoBasics.
I can also be found on Instagram, Pinterest, and YouTube.
And if all else fails, I have a server on Discord.



             

The Smartest Smart Watch is the One You Make Yourself

If you’re building a smart watch these days (yawn!), you’ve got to have some special sauce to impress the jaded Hackaday community. [Dominic]’s NeoPixel SmartWatch delivers, with his own take on what’s important to have on your wrist, and just as importantly, what isn’t.

There’s no fancy screen. Instead, the watch gets by with a ring of NeoPixels for all its notification needs. But notification is what it does right. It tells [Dominic] when he’s got an incoming call of course, but also has different flashing color modes for SMS, Snapchat, and e-mail. Oh yeah, and it tells time and even has a flashlight mode. Great functionality for a minimalistic display.

But that’s not all! It’s also got a light sensor that works from the UV all the way down to IR. At the moment, it’s being used to automatically adjust the LED brightness and to display current UV levels. (We imagine turning this into a sunburn alarm mode.) Also planned is a TV-B-Gone style IR transmitter.

The hardware is the tough part of this build, and [Dominic] ended up using a custom PCB to help in cramming so many off-the-shelf modules into a tiny space. Making it look good is icing on the cake.

Thanks [Marcello] for the tip!


Filed under: clock hacks
Hack a Day 13 Mar 09:01
arduino  clock  clock hacks  ir  neopixel  uv  watch  ws2812  

Colorful, Touch-Sensitive Light Table is Ready for Gaming

It’s an ambitious build for sure — you don’t start with $500 worth of wood if you don’t intend for the finished product to dazzle. And this 240-pixel touch-sensitive light box coffee table does indeed dazzle.

Sometimes when we see such builds as these, fit and finish take a back seat to function. [dasdingo89] bucks that trend with a nicely detailed build, starting with the choice of zebrawood for the table frame. The bold grain and the frosted glass top make for a handsome table, but what lurks beneath the glass is pretty special too. The 240 WS2812 modules live on custom PCBs, each thoughtfully provided with connectors for easy service. There’s also an IR transmitter-receiver pair on each board to detect when something is placed over the pixel. The pixel boards are connected to custom-built shift register boards for the touch sensors, and an Arduino with Bluetooth runs the whole thing. Right now the table just flashes and responds to hand gestures, but you can easily see this forming the basis of a beautiful Tetris or Pong table.

This build reminds us a little of this pressure-sensitive light floor we featured recently, which also has some gaming possibilities. Maybe [dasdingo89] and  [creed_bratton_] should compare notes and see who can come up with the best games for their platform.

[via r/DIY and a tip from emptycanister]


Filed under: Arduino Hacks, led hacks

AV Remote Control Teams Arduino with – Visual Basic?

A large installed base of powered speakers from a defunct manufacturer and a dwindling supply of working remote controls. Sounds like nightmare fuel for an AV professional – unless you take matters into your own hands and replace the IR remotes with an Arduino and custom software.

From the sound of it, [Steve]’s crew was working on AV gear for a corporate conference room – powered speakers and an LCD projector. It was the speakers that were giving them trouble, or rather the easily broken or lost remotes. Before the last one gave up the ghost, [Steve] captured the IR codes for each button using an Arduino and the IRRemote library. With codes in hand, it was pretty straightforward to get the Nano to send them with an IR LED. But what makes this project unique is that the custom GUI that controls the Arduino was written in the language that everyone loves to hate, Visual Basic. It’s a dirty little secret that lots of corporate shops still depend on VB, and it’s good to see a little love for the much-maligned language for a change. Plus it got the job done.

Want to dive deeper into IR? Maybe this primer on cloning IR remotes with an Arduino will help. And for another project where VB shines, check out this voice controlled RGB LED lamp.


Filed under: Arduino Hacks
Hack a Day 15 May 18:00

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!

Arduino And IR Remote Turn Off Raspberry Pi

With all of the cool features on the Raspberry Pi, it is somewhat notable that it lacks a power button. In a simple setup, the only way to cut power to the tiny computer is to physically remove the power cord. [Dalton63841] found that this was below his wife’s tolerance level for electronics, and built a simple remote control for his Raspberry Pi.

[Dalton63841] started this project by trying to use the UART TX pin, but this turned out to be a dead-end. He decided instead to use an Arduino to monitor the 3.3V power rail on the Pi. When the Pi is shut down in software, the Arduino can sense that the Pi isn’t on any more and disconnect the power. The remote control is used to turn the Pi on. The Arduino reads the IR code from a remote and simply powers up the Pi. This is a very simple and elegant solution that requires absolutely no software to be installed on the Raspberry Pi.

We know that this isn’t the most technically complex project we’ve ever featured, but it is a good beginner project for anyone just getting started with a Pi, Arduino, or using IR. Plus, this could be the perfect thing to pair up with a battery-backup Raspberry Pi shutdown device that allows it to power itself down in a controlled way when a power outage is sensed.


Filed under: Arduino Hacks

Control Anything with an Apple Remote

If you’re like us, you probably have more than one Apple Remote kicking around in a parts drawer, and if you’re even more like us, you’re probably really annoyed at Apple’s tendency to use proprietary hardware and software at every turn (lightning connector, anyone?). But there’s hope for the Apple Remote now: [Sourcery] has completed a project that allows an Apple Remote to control anything you wish.

The idea is fairly straightforward: A device interprets the IR signals from an Apple Remote, and then outputs another IR signal that can do something useful on a non-Apple product. [Sourcery] uses an Arduino to do the IR translation, along with a set of IR emitters and detectors, and now the Apple Remote can control anything, from stereos to TVs to anything you can imagine. It also doesn’t remove the Apple Remote’s capability to control Apple products, in case you need yours to do that as well.

[Sourcery] notes that sometimes working with RAW IR signals can be a little difficult, but the information on their project and in their 25-minute video discusses how to deal with that, so make sure to check that out after the break. Don’t have an Apple Remote? You can do a similar thing with a PS3 controller.


Filed under: wireless hacks

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.


Filed under: Arduino Hacks

Make a 3D printed LEGO-compatible Arduino Micro casing

Here we are after winter break with a new tutorial on 3d printing with Arduino Materia 101. The 5-step tutorial allows you to design a Lego-compatible case for the Arduino Micro to be used together with the power function IR-receiver mentioned in this other Tutorial.

During the lesson you’ll learn also how to make the Lego-compatible pieces accurately and easily with FreeCAD without taking all the measurements!

Follow the steps and print yours >>

Check the previous tutorials on 3d printing with Material 101

Interested in getting in touch and showing your experiments? Join Kristoffer on the Arduino forum dedicated to Materia 101 and give us your feedback.

Recently Arduino user Botberg implemented an auto-levelling bed sensor  to be  sure that the placement of the first extrusion layer is placed well and increasing the printer successes!

Smart Remote Control Doubles as Super Simple IR Sniffer

Want to sniff a remote control or other IR device's control codes? The Smart Remote Control will make quick work of that, combining an Arduino Yún with a simple solderless breadboard circuit.

Read more on MAKE