Show Posts
Pages: 1 ... 336 337 [338] 339 340 ... 374
5056  Forum 2005-2010 (read only) / Frequently-Asked Questions / Re: how to get muscle wire to bend? on: February 19, 2010, 06:17:49 pm
Here's some info:

http://makingfurnitureinteractive.wordpress.com/category/course-materials/page/2/
http://sarahlayne.wordpress.com/2009/09/28/using-relays-with-arduino-lilypad-2/

Basically, it seems you treat it like you would control a solenoid, relay, or motor - you can use a relay to control it, or a high-current transistor or MOSFET. Do some research on how to control a motor or relay (simple on/off) with the Arduino, and you should be able to adapt those schematics and code to control the muscle wire.

Be aware that the wire gets hot, and don't burn yourself (check out in that link above what that girl did to her dress - ouch!)...

 smiley
5057  Forum 2005-2010 (read only) / Frequently-Asked Questions / Re: Streaming Video to a Computer on: February 21, 2010, 01:36:33 am
I am currently in the process of building such a rover (also called a UGV - unmanned ground vehicle); this platform is going to be large, you probably want something smaller.

In the process of developing this UGV, I was initially considering using a 1/6 scale "monster" truck (some cheapo New Bright toy) - in fact, I had already created the "alpha" test platform several years back - here is a pic:



Here is an article about it:

http://www.phoenixgarage.org/show_article/51

I was planning on using a Basic Stamp 2 board I had (and which you can find articles about on my website - http://www.phoenixgarage.org/); transitioning to the 64-bit Ubuntu platform nixed that in the bud (long story short: Parallax only released a 32-bit static-linked binary of the byte-code "compiler" for Linux - and lost the source code; so you can't use the Basic Stamp 2 in a 64-bit environment) - that led me to the Arduino.

I was initially going to do the following:

1. Develop the code for the microcontroller to control the steering, drive motors, and pan/tilt servos via commands sent over the serial port.

2. Once this was working, I was going to transplant the microcontroller to the RC truck, and bench test the truck, pan/tilt, etc - put it "up on blocks" so to speak to keep it from taking off on the bench.

3. Once that was working correctly, I intended to purchase a pair of these 433 MHz transceivers from Parallax:

http://www.parallax.com/Store/Accessories/CommunicationRF/tabid/161/CategoryID/36/List/0/Level/a/ProductID/582/Default.aspx?SortField=ProductName%2cProductName

They would probably work well with an Arduino, BTW - or you could use something else; you just want it to be two-way (so you can send commands, and receive sensor telemetry data back - I had intended on putting a GPS module on-board as well).

4. At that point, I was going to sever the physical serial link, and use the transceivers for control; my test application (at that point) was to be either a Python or Perl application communicating with the microcontroller. All the microcontroller was for controlling the RC truck, the pan/tilt servos, and relaying back sensor information, and GPS data as requested.

5. The color video feed from the 900 MHz camera mounted on the pan-tilt system was to be fed into the control PC via a Hauppauge video capture card. I could monitor this video feed remotely, as well as capture the feed and use it for vision processing routines running on the PC; this coupled with the GPS data, would hopefully allow me to design route-planning software and such.

6. After the basics were working, I was planning on then transitioning to a larger platform; one based on a PowerWheels vehicle.

Unfortunately or fortunately, however you look at it, this is where things got derailed a bit; a friend of mine asked to help me with the project, I consented, and things got "wild" - we ended up skipping the small system, and purchased the PowerWheels, the PC, etc (he recently left the project, so I am continuing on it) - too much to talk about, but your system should somewhat follow items 1-5 above.

You basically want to hook the Arduino up to a remote controlled vehicle of some sort (or build your rover; but I would advise you to troll some thrift stores looking for a good and working larger RC car like the vehicle I was using, or a tank platform, or something - it will be easier to work with rather than worrying about the mechanical details in addition to the programming and circuit design work you are already going to be doing). Set it up to respond and act on commands sent over a wireless serial connection. Use an inexpensive RF camera for the video feed; you can either choose to just monitor this on a TV monitor, or feed it into a PC (where you can, if you choose, process it further). Send the commands to the Arduino via the PC, ideally via an application that implements a control and telemetry display system.

You should be able to do all this, sans the video part (it would be completely separate), with a regular Arduino - if you do implement a pan/tilt system for the camera, consider using a servo controller (that is what I am doing; its the Pololu micro-servo controller, there are many available) - it will make things easier to work with. You can use bluetooth for the comm medium, or any number of other options are available as well (for the UGV I am working on, the PC will be on-board, and I will communicate with that PC over an encrypted 802.11g link; that PC will communicate with the Arduino via the USB serial link).


5058  Forum 2005-2010 (read only) / Frequently-Asked Questions / Re: PROTOTYPE FABRICATED PCB WANTED...... on: February 20, 2010, 04:25:19 am
I never verified it myself; I do remember that the person who wrote that was one of the more "prominent" (in my opinion only) members on these forums (but I don't remember exactly who - I want to say Osgeld, but that might be wrong).

Whomever it was, they didn't mention any particular rev (P vs A), they just mentioned having to go with some other non-DIP part that was similar. Again, of which I don't remember.

Heck, maybe I dreamed it all...

 smiley-razz
5059  Forum 2005-2010 (read only) / Frequently-Asked Questions / Re: PROTOTYPE FABRICATED PCB WANTED...... on: February 19, 2010, 02:34:35 pm
brtech:

I wasn't saying an Arduino Mega was needed, but rather the Atmel ATMega8 (8k version) - you know, the original Arduino microcontroller.

I think a 168/328 would be overkill, but then again, maybe the 8 has been end-of-life'd (I heard that was the case for the 328 - at least, from Digikey?).

BTW - if these chips have been EOL'd - where/what is the next Arduino going to be based on (will there still be a thru-hole option)...?

We might see ourselves going the Pro/Nano route (kinda like the Basic Stamp 2 did) with an SMT Arduino PCB in the footprint of a 28-pin wide DIP...?

 smiley
5060  Forum 2005-2010 (read only) / Frequently-Asked Questions / Re: PROTOTYPE FABRICATED PCB WANTED...... on: February 19, 2010, 10:59:02 am
Are you asking only for a PCB design, or for a full schematic of a design, with a PCB layout, to meet the design requirement you have laid out? Also, where does the Arduino fit in this (I am assuming that you are wanted to control the servo with a ATMega processor - probably an ATMega8 would be best for such low requirements - but you don't mention this).

If you are wanting such a ground-up design and are willing to pay for it, that's ok; just realize that for good design work it won't be cheap or fast - if I were bidding for the job (which I'm not - too much on my plate, plus I don't have any PCB design experience), I would probably start at about $1000.00 US (and would still likely eat extra hours); this would be for a full schematic, breadboarding, programming, pcb design, prototyping, QA, revisions, etc thru to a working board design.

I don't think that amount would be unfair (in fact, I would be willing to bet it being a low-ball price - but then again, I have never bid on such a design, my experience is in software development - what do others think?).

Good luck in your search...

 smiley
5061  Forum 2005-2010 (read only) / Frequently-Asked Questions / Re: controlling motor speed with a LVDT and POT on: February 16, 2010, 01:37:28 pm
Doh!  :'(
5062  Forum 2005-2010 (read only) / Frequently-Asked Questions / Re: controlling motor speed with a LVDT and POT on: February 16, 2010, 01:00:26 pm
Nothing is wrong with the code per-se, but I am wondering about you potentiometer - can you give us a schematic or drawing of how you wired it? It shouldn't smoke (baaad)...

As far as speed control is concerned:

Standard R/C servos operate a one speed only; it is possible to send them incremental positioning commands with a delay in-between, but this results (sometimes) in jittery control, and probably not what is expected.

Your sketch you posted is meant to control the position of a servo with a potentiometer, not its speed.

You don't say what you intend to do with the motor once you have its speed control (and you might want to define what an LVDT is - remember, if you ever use acronyms in writing, after the first introduction you should define the acronym, then use the acronym alone thereafter - you get a pass if english isn't your primary language, but isn't this something covered in high school english class?); if you need a gear motor for more torque, a servo can be used, but if you need to control its speed, then you will have to customise it (basically bypassing the window comparator circuit in the servo, and driving the h-bridge directly, and reading the potentiometer that is in the servo with the Arduino, and implementing your own comparator or PID control with speed control; something you won't find built into a servo, unless it is a programmable digital one).

You can hook up a regular DC motor, and use PWM to control a driving transistor or h-bridge (depending on whether you need directional control or not); with PWM, you can vary how fast the motor is turned on-off, effectively changing its speed. There is a PWM example included with the Arduino IDE for varying the brightness of an LED with a potentiometer, I believe - if you ran that output instead to a driver circuit (ie, transistor/darlington or h-bridge input), then that to a DC motor, you would vary the speed with the potentiometer.

It probably wouldn't take that much to then convert over to the LVDT (whatever that is) - Ok, just googled: Linear variable differential transformer? Hmm - you might have your work cut out making that work, but still, it should be possible...

Good luck!

 smiley
5063  Forum 2005-2010 (read only) / Frequently-Asked Questions / Re: Current Sensor to detect position on: February 10, 2010, 12:01:53 pm
Dave, something I would do is not to trust the Arduino 100% on this gate device; add actual limit switches in, but adjust the Arduino so that its limits are inside the limits of the limit switches (does that make sense?). That way, if for whatever reason the Arduino fails to detect the limits, you don't have the motor dying or catching on fire or something.

I am facing a similar problem myself with a robot I am developing; the fact that it will be semi-autonomous complicates things - I am trying to make its steering control system as safe as possible (to itself and others); I have software-based limits (basically right now an on-board potentiometer to measure the angle of steering and a simple software window-comparator; I plan on upgrading it to a PID later), but I am going to install real hardware limit switches so that if something drastic happens, the system won't go out of control and destroy itself or catch on fire.

Just something to consider.

BTW - what are the limit switches you were using? Are they industrial outdoor grade switches, or just something from the corner hardware/electronic store? You might look into something from Grainger or McMaster-Carr ($$$), if that isn't what you were already using...
5064  Forum 2005-2010 (read only) / Frequently-Asked Questions / Re: noob on this on: February 14, 2010, 08:33:22 pm
I thought things on SPI and I2C busses were addressable?

http://en.wikipedia.org/wiki/I%C2%B2C
http://en.wikipedia.org/wiki/Serial_Peripheral_Interface_Bus

Provided the slaves implement the protocols correctly, and don't have addresses that interfere with one another (and/or can be changed in some manner; one would think this would be a requirement of the firmware) - shouldn't it be possible to have as many as needed on the bus (up to the limits of the bus/protocol/distance), provided they all have non-conflicting addresses?

 :-?
5065  Forum 2005-2010 (read only) / Frequently-Asked Questions / Re: Why won't my if statment work...? on: February 12, 2010, 12:52:50 am
Guess what? It won't work that way. Generally when a float is cast to an int, it rounds to the next nearest whole integer - in this case, zero (0). You need to declare those variables as floats if you wish to perform floating point math with them. Your only other option is to use fixed-point math, which can be done with integers (and is quite fast), but the discussion on how to implement those on an Arduino (unless someone has written a fixed point math library? A quick google didn't turn up anything) would take up more room than we have here.

As good a place to start as any:

http://en.wikipedia.org/wiki/Fixed-point_arithmetic

Also:

http://fabiensanglard.net/doomIphone/DoingItFast.htm
5066  Forum 2005-2010 (read only) / Frequently-Asked Questions / Re: Continuous rotation servos vs. DC gear motors on: February 10, 2010, 11:37:43 am
Quote
Also I started thinking that aren't servos controlled by PID-controller or something similar to that. I that case even servos modded to continuous rotation should always slowly accelerate to full speed


Standard RC servos are actually controlled by something closer to a window comparator circuit, not by PID (those servos would be pretty expensive if they had PID built in!); they work (in the end) by comparing a reference voltage (derived from the PWM signal sent to the servo) to the voltage across a potentiometer (acting as a variable voltage divider), when within a range (dead zone?), they stop (the size of the dead zone helps determine the accuracy of the servo).

So, modding such a servo for continuouse rotation, by removing the potentiometer (and maybe a physical stop tab on a gear) does nothing to change the top speed of the servo; it just keeps trying to find a reference voltage higher or lower (depending on direction of rotation) that it will never find, continually rotating.

Now - if you didn't mind giving up the PWM RC interface (which is easy to work with), you could bypass that portion of the circuit and hook directly into the on-board h-bridge, or build your own h-bridge, to control the motor directly on the servo. That way, you could get the benefits of the servo gearbox and standard mounting methods for wheels and such that have grown up among small robot hobbyists, while still being able to have complete control over rotation speed (at the expense of an easier control interface - 4 wires instead of only 3).

 smiley
5067  Forum 2005-2010 (read only) / Frequently-Asked Questions / Re: Bootloaded Atmega 1280? on: February 10, 2010, 11:49:21 am
Pay attention to Osgeld, he knows of what he speaks - that el-cheapo puller that digikey sells is likely as not to cause you to fling your arduino chip across the room more than anything else.

Get the better tool - don't skimp on your tools, if you can at all bear not to!

Otherwise, use the flat-bladed screwdriver method.

Something also to consider (if you don't know) is that on new DIP ICs, the legs are spread slightly more than a socket, so they are very difficult to insert (and easy to bend pins!). You may have to carefully bend the pins by placing each side alternately on a table and very carefully "bending" the row of pins inward (but not too much!); this method is difficult (and nearly impossible on higher pin-count DIPs). There is also a tool for bending pins, IIRC from "back in the day" (I remember Radio Shack selling it).

If you are programming more than one or two of these, you might want to build a programmer PCB that incorporates a ZIF socket (they need to manufacture a shield for the Arduino that does this - I think someone somewhere does; I know I have seen prototypes, too), just to make your life a little easier...
5068  Forum 2005-2010 (read only) / Frequently-Asked Questions / Re: Food grade pump ? on: February 07, 2010, 07:49:50 pm
A homebrew peristaltic wouldn't be too difficult to build; use food-grade silicone tubing...

http://en.wikipedia.org/wiki/Peristaltic_pump
5069  Forum 2005-2010 (read only) / Frequently-Asked Questions / Re: dual-coring the arduino on: January 31, 2010, 04:54:51 pm
Since the digital i/o pins "float" (tri-state?), as long as you were careful and didn't try to assert two of the pins at once (write mainly; reading would probably be OK), it should be OK - as far as the other pins, I am not sure, but they would probably be OK as well. What I really don't know is how well things would play together when you activated the internal pull-up resistors, or added your own external ones.

By piggybacking two boards, you've created (essentially) a parallel bus. This opens up some interesting possibilities, both in signaling, as well as in practical applications (in theory, you could use some of the lines as address control lines, and others for data, or multiplex them; then hook up a bunch of non-serial RAM, which presents an interesting solution to some higher-speed RAM hungry projects; however, I2C-based RAM can probably be accessed as fast or faster).

Hopefully someone more experienced in these matters will answer this question more authoritatively...
5070  Forum 2005-2010 (read only) / Frequently-Asked Questions / How to calibrate a thermistor? on: January 27, 2010, 12:48:21 am
All - this is a problem that has been bugging me, and I have been trying to figure out how I could go about doing it semi-accurately, without needing to constantly monitor things...

How do you calibrate a thermistor of unknown value, spec, or manufacturer?

I have a few thermistors (plus I have seen others for sale, without any specs, at various surplus dealers) that I don't know anything about that I would like to calibrate. I first thought that I could simply take one, put it in boiling water, note its voltage reading, then let the water come to room temp, note the reading again (for the temp), then freeze it, and note it one more time; the problem is that (from what I have seen as specs for thermistors) the output is probably not linear, but rather some kind of curve (logarithmic or something; definitely non-linear).

So - without having a means to carefully change the temperature of a water bath and read the temperature, automatically (sure, I could do this manually, but I don't much like watching water boil - or freeze), while noting readings...

How would you do it? The "manual" method is the only method I could think of (or, possibly using a known calibrated thermistor as a base measurement, and noting from that) - is there another possible method?
Pages: 1 ... 336 337 [338] 339 340 ... 374