Introduction: Arduino Wireless Laser Turret

Picture of Arduino Wireless Laser Turret

Very easy to build arduino wireless laser turret, also very cheap components you can buy on ebay for example.

Step 1:

To make this project I used 2.4GHz RF transceiver modules that is built in the nRF24L01+ IC.

nRF24L01+ are extremely cheap and cost a few dollars for one piece.

List of components you need to buil this awesome project:


Arduino UNO (only as programmer)
Arduino Pro MINI ---------------2pcs
Breadboard 830 Tie-points
Breadboard 170 Tie-points
Laser module
Servo 9g -------2pcs
nRF24L01+ module ------ 2pcs
Joystick module
Cellphone Li-ion battery 3.7V -----2pcs
male-to-male cables, male-to-female cables,female-to-female cables
cable tie
fix wire

Step 2:

Picture of

How to upload sketches on Arduino Pro MINI.

  1. Remove Atmega328 from Arduino UNO
  2. Using male-to-female cables connect Pro MINI to UNO RX-RX; TX-TX; RST-RST; GND-GND; VCC-+5V
  3. Change in Tools-Board-Arduino Pro or Pro MINI
  4. Upload sketch

Step 3: Receiver Sketch

#include <Servo.h>
#include <SPI.h>
#include "RF24.h"Servo servo1;
Servo servo2;
RF24 radio(9,10);
const uint64_t pipe = 0xE8E8F0F0E1LL; 
int msg[1]; 
int data; 
int pos;
voidsetup()
{
servo1.attach(3); 
servo2.attach(7);
radio.begin();
radio.openReadingPipe(1,pipe); 
radio.startListening();
}
voidloop()
{
if (radio.available())radio.read(msg, 1);
if (msg[0] <128 && msg[0] >-1)data = msg[0], pos = map(data, 0, 127, 7, 177),servo1.write(pos);
if (msg[0] >127 && msg[0] <255)data = msg[0], pos = map(data, 128, 254, 9, 177),servo2.write(pos);
}


Step 4: Transmitter Sketch

#include <SPI.h>
#include "RF24.h" 
RF24 radio(9,10);
const uint64_t pipe = 0xE8E8F0F0E1LL; 
int msg[1]; 
int potpin_1 = A0; 
int val_1; 
int potpin_2 = A1; 
int val_2; 
voidsetup(void){
radio.begin();
radio.openWritingPipe(pipe); 
}
voidloop() {
val_1 = analogRead(potpin_1),val_1 = map(val_1, 0, 1023, 0, 127),msg[0] = val_1,radio.write(msg, 1);
val_2 = analogRead(potpin_2),val_2 = map(val_2, 0, 1023, 128, 255),msg[0] = val_2,radio.write(msg, 1);
}

Step 5:

Picture of

Fix laser module and servo components by wire like it shown on pictures.

Step 6: Transmitter Scheme.

Picture of Transmitter Scheme.

Transmitter scheme.

Step 7: Recivier Scheme

Picture of Recivier Scheme

Receiver scheme

Step 8: Final Result

Picture of Final Result

http://youtu.be/Nt5nIwc3mYA


https://github.com/maniacbug/RF24      -------- RF24 library

Comments

amulder1 (author)2014-02-26

This could get a cat insane!!!

Manolov4 (author)amulder12017-08-07

Imagine an autonomous version of this, working for your cats while you are at work. And then you walk in and see your cat walking on the ceiling... :-P

GianL (author)2017-01-26

Hi, great job! I wish to ask you if it is possible to let the servos to keep the position reached until the joystick is moved again as when it is released, the sevos back in the initial position.

Thank you for any help you can give me

Lucasd116 (author)2017-01-21

how to control 4 servos with 4 potenciometer with this module?

i'm making a radio plane and i only can control two servos, i need 3 servos and a ESC. someone can help me with a code?

remaa (author)2016-08-30

hi sir, i have to control the robot car project. Where the rear wheels in the form of a dc motor is controlled with flex sensors and front wheels in the form of a servo motor controlled by the accelerometer sensor. Robot controller with a car connected with nrf24l01. if one of the sensors to control I can. but if it combines both to control I can not. Both sensors transmit data simultaneously . dc motors and servo motors confused receive data so that its movement is chaotic. How should I fix this? can you help me.? Can I send my program to you and you see.? Please. My email: rema_adhe@yahoo.com

giantpair (author)2016-02-06

I'm using UNOs instead of Pro Minis. Does that mean I use Vin instead of Vcc? I'm not getting so much as a twitch out of the servos. Help! All my recent project attempts are f'ing failures.

JaviL2 (author)2016-01-14

why would you want to?

giantpair (author)JaviL22016-01-15

Because I don't have one for the time being

SIM-Tech (author)2015-12-08

why are you using only one element of the array ? in msg[1] arent this implying that theres 2 elements 0 & 1 ? ,....why ?

here your only using msg[0] and not msg[1];

if (msg[0] <128 && msg[0] >-1)

data = msg[0];

pos = map(data, 0, 127, 7, 177)

servo1.write(pos);

if (msg[0] >127 && msg[0] <255)

data = msg[0];

pos = map(data, 128, 254, 9, 177);

servo2.write(pos);

giantpair (author)2015-09-24

I'm going to go ahead and order stuff to make this. How could I make it autonomous? How would it go sitting on or hanging off a quadcopter?

GianL (author)2015-09-18

Hi, i love this project!! I wonder how to let the turret reach the initial position (x=90 Y=90) when the joystick button is pushed.

Thank you for your help

ihart (author)2014-03-14

What an awesome project!

Re: voltages, He is not using the regulator (RAW input) but connecting directly to the Vcc pins.

it looks like both the arduino pro mini 3.3V and 5V Atmega 168 microcontroller chips can handle up to 5.5V Vcc. so he is fine here.

http://www.atmel.com/devices/atmega168.aspx

SIM-Tech (author)ihart2015-09-06

simple setup for a triac and this can very easly be put to use one the wall OR just cut the end of any USB wall charger 500mA @ 5v

hasansuleman1 (author)2014-05-12

Hi, i need to control 4 servos for my project. is it possible to send more than an integer of information at once? or do i need to divide 255 by 4 to for each servo?

SIM-Tech (author)hasansuleman12015-09-06

yes

gamalingunasekara (author)2014-12-12

nice project...
i think you can send char array with two 8bit integers,

that way it is so easy to understand and less codding...

trust this is already small coding i been working on this code since Jan and while my setup has one componenet diff from this one it is still the same, i actually like this guy style of code

akinich (author)2014-04-03

Hi again

Can i get some help with the radio modules?

Eagle199393 (author)akinich2014-04-03

Yes.

akinich (author)Eagle1993932014-04-03

Can you please explain how to codes work?

akinich (author)2014-02-25

brilliant just a few questions how does the pro mini run on 3.7 volts? also how do you charge the battery?

Eagle199393 (author)akinich2014-02-25

It is 5V 16M clone version of arduino pro mini. So it works good.

akinich (author)Eagle1993932014-02-26

How does the 5V arduino pro mini work on 3.7 volts?

Eagle199393 (author)akinich2014-02-25

I use 3.7V rechageable li-ion battery from old cell phones. I just connect charger to their contacts.

danamoose (author)2014-02-25

very cool!

About This Instructable

24,336views

165favorites

License:

Add instructable to: