Go Down

Topic: Mini Turret Project Continues (Read 1 time) previous topic - next topic

Mr_Manny

Ok, cool! The new forum is up and I can post my updates here!

So, I finally got some missing parts, and now it looks more like a completed turret. So, to save some time, here is the link to the project page:

http://myblogduino.blogspot.com/

Hope you like how it looks. I will write up a simple demo program to show it slewing soon.

Si

Looks solid!

So, what are you going to attach to the business end? Laser? BBGun? Flamethrower?
--
My New Arduino Book: http://www.arduinobook.com

bld

Looking cool!!! Only thing I would have done different, is the way the tilt works. I would have used some bearings to hold it, and then with the servo on the back instead, so the bearings would hold the load, and the servo only doing the tilting.

http://www.youtube.com/watch?v=eOsYsuzbUQc

Going to make this on a bigger scale some day, when some of all my current projects are done. :) Want it to be strong enough to hold a real video camera with optical zoom and auto focus and all, and then make it remote controllable. Maybe even with a little pc on, so it can be put up somewhere, with a USB modem on, and then have a wireless 3G internet connection to it, both streaming audio and video back, plus allowing for pan/tilt.
captain-slow.dk | non contagious!

Mr_Manny

Here is the assembled turret with a short demo to test the range of motion.

http://www.youtube.com/watch?v=cVFYyzfVUK8

bld


Here is the assembled turret with a short demo to test the range of motion.
Why not have it so middle position is horisontal?
captain-slow.dk | non contagious!

Mr_Manny

Ok, I get what you mean, but for me, it is horizontal. The sensors are horizontal at the 90deg position.

Ran Talbott

Quote
Maybe even with a little pc on

You should check out the Vivotek VS3100 series video servers as an alternative to PCs.  They're cheap, reliable,  and compact: you can put one right up on the pole with a camera to simplify cabling.  The one big drawback is that they depend on an Activexploit plug-in for viewing, so there's no Linux support  :0

I really wanted to use a Linux-based server on a couple of the projects I've worked on recently, but the open-source video codecs just can't get the same level of compression as the commercial ones,  so we had to drop the idea to stay within our bandwidth limits  :(

Mr_Manny

#7
Feb 11, 2011, 07:34 am Last Edit: Feb 11, 2011, 07:37 am by Mr_Manny Reason: 1
So, I haven't made my other 2 sensors yet, so I thought about what I could do in the mean time.
Here is a simple little program for a single servo and a single IR sensor.
The servo sweeps to predetermined points, reads the values, and then calculates which direction gave the strongest reading (lowest number to Arduino) and then slews to that point for a few seconds.
Then starts over. I figure this can be modified to use as a range finder, or something similar. You will just have to change it to suit your needs.
You can open up the serial monitor to see the values populating.

Quote


#include <Servo.h>

/*******************************************************
Simple little program to sweep and scan with a single
sensor by Mr_Manny

********************************************************
*                define connections                    *
*******************************************************/

Servo myservo;     // create servo object to control a servo
int Sensorpin= 0;  // IR sensor pin
int Servopin = 11; // servo pin

/*******************************************************
*                define variables                      *
*******************************************************/

int scanPos[] = {0, 30, 60, 90, 120, 150, 180}; // Rotation for scans
int scanVal[7];
int i = 0;  
int M = 0;
int newVal = 0;
int Low = 1024;    //1023 is the darkest value
int Pos = 0;
/*******************************************************
*                set up section                        *
*******************************************************/

void setup()
{
 Serial.begin(9600);  // start serial communication
 myservo.attach(Servopin);  // servo pin
 myservo.write(90);  // initial start position
 delay(2000);
 }

/********************************************************
*                   start loop                          *
********************************************************/

void loop()

{
//*******************************************************
 while (i < 7 )
 
 {
 myservo.write(scanPos);
 delay(500);
 newVal = analogRead(Sensorpin);
 scanVal= analogRead(Sensorpin);
 Serial.print("Servo Pos=");Serial.print(scanPos);Serial.print("  Value=");Serial.println(scanVal);
 i++;  
 }
//*******************************************************
 {
  for (int M=0; M<7; M++)  // For IR Sensors 1023 is dark
  {                        // so I need the LOWEST value
    if (scanVal[M] < Low)
    {
      Low = scanVal[M];
      Pos = M;
    }
 }
 }
//*******************************************************
{
 delay(2000);
 Serial.print("Final Pos= ");Serial.println(Pos);
 myservo.write(scanPos[Pos]);  // Now I write the final position
 delay(5000);
}
//*******************************************************
{
 i = 0;      // This is how I reset the loop
 Low = 1024;
}
//*******************************************************
}



Go Up