Chief Delphi

Chief Delphi (http://www.chiefdelphi.com/forums/index.php)
-   Programming (http://www.chiefdelphi.com/forums/forumdisplay.php?f=51)
-   -   Arduino Board and FRC Victors (http://www.chiefdelphi.com/forums/showthread.php?t=98727)

DavisC 09-12-2011 22:22

Arduino Board and FRC Victors
 
So, I made several attempts to use a potentiometer and the PWM outputs on a Arduino board that were connected to a Victor powered by the old FRC distribution board.

Has anyone else tried this? Mind sharing your code or some ideas?

Thanks
Davis

DonRotolo 09-12-2011 22:24

Re: Arduino Board and FRC Victors
 
A victor uses an R/C type PWM signal. A pulse of 1 mSec is full reverse, 2.0 mSec is full forward, 1.5 mSec is neutral. These pulses repeat at perhaps 200 Hz.

What kind of PWM pulses are you sending to the Victor?

nighterfighter 09-12-2011 22:53

Re: Arduino Board and FRC Victors
 
Hi-

I actually just recently used my Arduino to control both a Victor and a Jaguar, (Wired a potentiometer and had the Arduino scale the speed based on the pot value)

Try using the Servo library that comes with the Arduino.

Telling the pin to write the servo with a value of 90 will stop it, and > 90 is forward and < 90 is backwards.

If you want I can find the code I used.

Cory 10-12-2011 00:40

Re: Arduino Board and FRC Victors
 
Servo library is the way to go. Just finished a project using victors and the arduino. Banged our heads against the wall before figuring out arduino PWM output won't get it done. You need PPM output on the arduino, which the myservo.write() function will generate. Look up the servo example included with the arduino software.

DavisC 10-12-2011 10:42

Re: Arduino Board and FRC Victors
 
Thanks all. Yea I set it all up and tested it with the default "Servo Knob" example. Which worked great! I also added part to turn the 0 to 179 value into a -1 to 1 value and used the serial monitor to see the relative value.

Now I believe this is by far a stretch (considering the code is on the board), but has anyone successfully used a joystick with this? When using the computer, the only idea I would have is to somehow (i have no clue) send the joystick value to the board such as what the serial monitor does?

Also have you used the game pad shield to try and control it?

RoboMaster 10-12-2011 17:38

Re: Arduino Board and FRC Victors
 
I haven't, but Google it. I'm sure someone has and you can look at their resources. There's a massive community out there for Arduino.

Cory 10-12-2011 18:26

Re: Arduino Board and FRC Victors
 
Quote:

Originally Posted by DavisC (Post 1089939)
Thanks all. Yea I set it all up and tested it with the default "Servo Knob" example. Which worked great! I also added part to turn the 0 to 179 value into a -1 to 1 value and used the serial monitor to see the relative value.

Now I believe this is by far a stretch (considering the code is on the board), but has anyone successfully used a joystick with this? When using the computer, the only idea I would have is to somehow (i have no clue) send the joystick value to the board such as what the serial monitor does?

Also have you used the game pad shield to try and control it?

Sure. A joystick likely just has a potentiometer inside. Wire it to an analog input, then use the analogRead() function to get the value from the joystick. use the map() command to map the values of the joystick pot onto the range of values you are supplying the victor.

The Arduino website reference section will tell you how to setup all these commands.

RoboMaster 10-12-2011 21:47

Re: Arduino Board and FRC Victors
 
Quote:

Originally Posted by Cory (Post 1090025)
A joystick likely just has a potentiometer inside. Wire it to an analog input...

I think he meant a USB or other type of joystick connected to the computer or laptop, not a direct, wired connection.

You might be able to send it down with the serial connection, but you would have to get or write your own application for the computer side. Arduino's serial monitor can't help you with a joystick.

ajlapp 10-12-2011 23:14

Re: Arduino Board and FRC Victors
 
You can definitely hook up joysticks...we build complete robot control systems using only an Arduino.

Robot with Arduino control system

tsaksa 11-12-2011 12:42

Re: Arduino Board and FRC Victors
 
We did something like this as a side project this summer to build a wired controller for our robot for moving it around and testing without setting up a real drivers station. You can buy old game controllers at Goodwill or other locations for about $2. PS2 controllers are dirt cheap now. Have the students cut the connections to the existing PC board, and wire directly to the potentiometer. We used a standard 9 pin D connector which provided 5 volt power and ground into the controller to connect across the potentiometers. That left left enough extra connections to return the 4 analog values from the center tap on the potentiometers, and three additional connections that could be used to wire some buttons.

The students were very impressed with the idea of opening up an old controller and re-purposing it for a new function. The PS2 controller now just acts as a set of potentiometers and switches connected to the 9 pin connector. A little hot glue for strain relief, and reassembling the case, and the thing looks reasonably professional. The Arduino and a small battery to power it goes into another box that can be placed on the robot and also has four connectors for the PWM outputs. In use you can connect a standard serial cable between the controller and the arduino box since that has a 9 pin D connector as well. Just make sure you serial cable is straight through and not null modem.

I can post the code separately.

tsaksa 11-12-2011 13:15

Re: Arduino Board and FRC Victors
 
1 Attachment(s)
Ok, I have access to the code now. here it is

This is untested sample code supplied as is with no implied suitability for any actual application. The programming team is relatively new and still learning Java, so I wrote most of this just to get us started. We still need to test it a bit more and have the software team rewrite it at some point. But this should give you an idea of how to get started.

I had to convert the code to a .TXT file to get it to upload. Hopefully nothing got changed that would mangle the code. I think just changing the extension back, or cutting and pasting all or part of the code into the Arduino editor should allow you to use it. Our team does not have a lot of meetings left before build season, but if there is any interest I will ask for someone to take some pictures of the finished project.

DavisC 11-12-2011 15:31

Re: Arduino Board and FRC Victors
 
Thanks for the info.
@ajlapp - Was looking around on the site and looks interesting, do you have a document that explains how it is setup?

@tsaksa - That seems like an interesting project, I am definitely going to try that, and yea if you get a chance could you snap a pic.

Thanks,
Davis

Garrett.d.w 11-12-2011 17:45

Re: Arduino Board and FRC Victors
 
If you want to use a computer to send commands to the arduino then use Processing (arduino's computer based cousin). There is a library included in the software package that allows you to interface with the arduino though the usb serial connection.

If you want to control the whole setup remotely, you can use an xbee shield and radio to create a wireless serial connection between two arduinos.

Personally, I have used ps2 controllers as shown in this link (http://www.billporter.info/playstati...-library-v1-0/). It's much cleaner than soldering the connections to the potentiometers inside the controller, plus you can do some interesting things with the ruble feature, etc. There is also some canned code on that web page.

The web site also has a library for creating complex serial communication protocols (which comes in handy when you want to transmit more than one variable over a serial connection).

PM me and I can send you pictures of the project setup and code (if I can find it).

DavisC 11-12-2011 17:52

Re: Arduino Board and FRC Victors
 
Quote:

Originally Posted by Garrett.d.w (Post 1090225)
If you want to use a computer to send commands to the arduino then use Processing (arduino's computer based cousin). There is a library included in the software package that allows you to interface with the arduino though the usb serial connection.

If you want to control the whole setup remotely, you can use an xbee shield and radio to create a wireless serial connection between two arduinos.

Thanks, this is truly what I was looking for, I had thought of the xbee addition and that would work; I just didn't know a simple environment that would allow the communication.

Also, I am thinking of the use of bluetooth, or it looks like in aj's link that with the ethernet shield, it could be connected to a router.

ajlapp 11-12-2011 22:08

Re: Arduino Board and FRC Victors
 
Quote:

@ajlapp - Was looking around on the site and looks interesting, do you have a document that explains how it is setup?
No specific document exists at this time, sorry. The source code for both the robot side and operator side is available at the link previously provided.

In general each side of this system has an Arduino and an Ethernet shield. We used Asus routers to communicate.

Everything we use in the system is open-source and available in various libraries.

For the linked project we chose to have an Arduino on the operator side for portability, but this isn't necessary. We typically build these setups with just a laptop on the driver side.

In the very near future this system will be available in a low-cost consumer ready package. It's very cool and very open. :D

tsaksa 12-12-2011 10:28

Re: Arduino Board and FRC Victors
 
Quote:

Originally Posted by Garrett.d.w (Post 1090225)
If you want to use a computer to send commands to the arduino then use Processing (arduino's computer based cousin). There is a library included in the software package that allows you to interface with the arduino though the usb serial connection.
Clip
.

Good information, and the link to the PS2 library was really handy. I was also considering an XBee radio or other wireless interface at some point to build a more complete low cost Arduino controller. However, do not write off the more crude method of wiring directly into the controller to get at the potentiometers. While this is a much less elegant solution than what you propose it has some other values.

1. Dirt cheap. (I am comparing to the wireless version here) You can build the entire (wired) control system including the computer for less than $30 if you scrounge a few parts for the box and connectors. This is a more reasonable price if your intent is just to build a small debug tool.

2. The students get to open up the controller, identify and test them with a multimeter, see how the joysticks were used, and connect to them. I find it hard to get some of the students interested in practicing soldering skills. But this project did interest them.

3. I think it is easier for the students to understand the complete operation of the simpler system. At least till they get more experience with the Arduino.

4. You can use this approach for controlling your own analog circuits or devices other than the Arduino.

But, you are right that library is cool. I will have to try it now. It is too bad the PS2 used such a large and unusual connector. If it already came with something small and common you could be up and running in half the time.

DavisC 14-12-2011 14:53

Re: Arduino Board and FRC Victors
 
Ok, I am using Processing to attempt to send the Joystick data to the Arduino board.
But I just can't figure out how to get the info from the joystick...

DonRotolo 14-12-2011 18:09

Re: Arduino Board and FRC Victors
 
As mentioned, an Analog joystick is given 5 volts and ground and returns an analog voltage between 0 and 5 volts (-ish).

A USB Joystick requires you to use the USB Serial connection.

DavisC 15-12-2011 15:39

Re: Arduino Board and FRC Victors
 
I'm sorry, but I am still very confused on how to do it (been looking on google for a while). I am trying to use a joystick that is connected to the PC which is sending the value to the Arduino Board which will act upon it using the servo class.

ericbarch 15-12-2011 20:52

Re: Arduino Board and FRC Victors
 
Just wanted to throw in my 2 cents. I've been working with ajlapp to design an Arduino based control system and we've learned a few things along the way.

Your best bet is to go with whatever language you're most comfortable on your PC (Visual Basic, Java, Python, LabView, etc...). There are plenty of great libraries out there for each of those languages that support reading in USB controllers and make it very simple. I personally use Java along with the JInput USB library: http://www.newdawnsoftware.com/resources/jinput/ If needed I can provide all of the source code to get the basic values using JInput. All you need to do once you have the values is write it out onto the USB serial port that the Arduino is connected to.

It's up to you how you want to write the values, but one way would be using a delimiter or a marker character that tells the arduino that a new value from the joystick is coming through. All modern programming languages should have a simple library or method of writing out to any connected serial port.

The nice thing about doing it this way is that you could very easily replace the wired USB connection with a XBee shield and XBee USB adapter (http://www.sparkfun.com/products/9819) down the line to go wireless.

CarlosGJ 15-12-2011 23:45

Re: Arduino Board and FRC Victors
 
http://principialabs.com/joystick-control-of-a-servo/

This explains how to use Python to get data from a USB joystick, and send it to an Arduino via serial. Of course, you could probably do it somewhat more easily in Labview. The code given is very good basic material-- I have adapted it for multiple joysticks, control over Ethernet, etc.

Gdeaver 19-12-2011 08:23

Re: Arduino Board and FRC Victors
 
GHI makes an Arduino compatible board with an Arm 7 on it. You program it with dot net C#. It has a USB host interface and a Class that will allow you to pull the values from a wireless USB game controller eliminating the PC.
http://www.tinyclr.com/support/
I like the Pololu servo driver boards
http://www.pololu.com/catalog/category/12
Plug the usb wireless into the arm board and then talk to the servo board by serial. Gives rock solid control. Assuming one has C# experience.

DavisC 19-12-2011 11:22

Re: Arduino Board and FRC Victors
 
Thanks for the help. Yea, I think the decision I made is to test the self-modified controller and also try the USB shield and comimunicate using Xbee or one of those. Might try Ethernet -> Wifi -> Wifi -> Ethernet cause I would like to try to implement the routers, and seeing how that goes.

Johnjohn 30-03-2012 10:13

Re: Arduino Board and FRC Victors
 
Newbie here

I was wondering if anyone that got the ... http://principialabs.com/joystick-control-of-a-servo/ ... to work over Ethernet shield would mind sharing the code. Like I said Noob here and just can't get it to work.

John

tipsmiller 30-03-2012 13:44

Re: Arduino Board and FRC Victors
 
Another option (if you don't want to do surgery on a controller) is to use the Processing software (http://processing.org/) with the proCONTROLL Library (http://creativecomputing.cc/p5libs/procontroll/). The proCONTROLL library will read your inputs, you can interpret them however you like, and then send them through serial to the Arduino.

I found this very convenient as Arduino is based off of Processing, making the interfaces nearly identical and easy to work with. I should be able to dig up some sample code later.


All times are GMT -5. The time now is 18:49.

Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Copyright © Chief Delphi