View Full Version : Discussion looking for a microprocessor
EddieWeeks
Dec 04, 2008, 08:07 PM
I am looking for a microprocessor that can:
Input comm. Port GPS
Input comm. Port Attitude
Input comm. Port EagleTree
Input PWM (3)
Output PWM (3)
Output comm. Port (telemetry)
I have programmed a basic stamp before…. But it will not do this stuff..
Thanks
Eddie Weeks
http://aerialphotobatonrouge.com/index.html
Joan Carles
Dec 08, 2008, 02:18 PM
Hello,
I suppose you mean a microcontroller (that is, with ROM and RAM in the same chip with the CPU and peripherals).
Well, all MCU have input and output ports... it's the only way they listen and talk to the world!!
I suppose you want to choose an MCU for an UAV -me, too-. The brand to choose is therefore depending on these factors:
- The developing sw and programming/ debugging tool you have or can have.
- The computation needs (digital filters, DSP, floating point algorithms...), that will make you look for more MHz (20, 40, 80...) and/or more bits of ALU (8, 16, 32...)
- The interruptional needs and timers.
Maybe you are thinking this is too ambiguous... Yes, it is. Choosing an MCU for a purpose is not a science, there can be many fitting your needs, don't worry. Overestimate the first one and then, maybe you can fit your design in a smaller/ slower one (but maybe the difference is just a dollar or so)
Maybe you are familiar with Microchip. I began with PIC and they are advisable.
I use to say about MCUs (sorry to ladies) 'they are like women, all the same, so I'm happy with the one I'm used to deal with'. I mean, other brands are Atmel, ARM, Renesas, NEC and many others but the big brands offer such a wide range that just any brand would the model that fits you.
for example, with PIC, discard (it's just my advice) the small 8-bit family and go for, at least, the 16-bit family (PIC18 or PIC24). Draw and count the number of I/O you need and choose one (I guess it would be a 64-pin TQFP ro so) with 32 Kb ROM (for a small, simple project) or 64/128 Kb (for a deeper, complex project). I suppose you are not afraid of soldering 0,80 mm pitch MCUs... I'm a little afraid (and I think everybody should) when it comes to 0,5 mm.
I suppose your GPS module has an UART interface, so your MCU will have to have one UART port. Input PWM could be read with Timer Captures. Probably you can use just one timer with several (different input pins) for these captures to measure Duty Cycle. Output PWM will need another timer, maybe one for all outputs or independent timers for each (see datasheet details...). About 'input attitude' I mean you are reading from an IMU or gyros/a-meters. They can be analog then you use the A/D pins, or they are digital and have I2C or SPI outputs. All MCU have these protocols.
Hope to have helped you,
Joan
EddieWeeks
Dec 09, 2008, 12:36 AM
Thanks for all the time and effort you put in your post but you never answered the question..
I thought I was very clear... You obvious know what your talking about.
I basic stamp will not do what I want… A PC104 with expansion boards will…
Is there something else that
Has 4 comm ports and can read PWM from a RC receiver and output PWM to servos
And can be programmed in BASIC
Thanks
Eddie
eddymoore
Dec 09, 2008, 06:48 AM
Yes lots. Do some research yourself - the question suggests that you do not yet know enough to undertake such a project with a decent probability of success. Some humility and hard work on your part will pay dividends.
To help you along:
Take a look at ARM7 microcontrollers if you want somewhere to start - ones from Atmel or Phillips are popular. Learning to program in C is also advisable and not difficult.
By a 'comm' port you probably mean a UART - searching for that will probably help you interpret spec sheets. 'reading' and 'writing' PWM is an arbitrary use of Timers - take a look for the number and size of timers available to you on a chip, or if they have dedicated PWM hardware.
What is the intended app? You'll need to actually do some processing, and the nature of that will effect the processor core you end up using.
Good luck - people here will answer your questions, the art is in asking the right ones.
Ed
rich smith
Dec 09, 2008, 07:20 PM
Other suggestions are serious overkill for your requirements. A cheap Mega8 or Mega48 from Digikey will more than suffice. Only couple bucks.
I am looking for a microprocessor that can:
Input comm. Port GPS
Input comm. Port Attitude
Input comm. Port EagleTree
Input PWM (3)
Output PWM (3)
Output comm. Port (telemetry)
I have programmed a basic stamp before…. But it will not do this stuff..
Thanks
Eddie Weeks
http://aerialphotobatonrouge.com/index.html
EddieWeeks
Dec 10, 2008, 01:39 AM
Look.. I have been running autonomous surface vehicles for years. Using a laptop, with 8 commports and a labjack
I wrote the code, built the hardware and deployed a small unmanned boat to study the tidal current along the Louisiana coast.
This boat ran numerous surveys, each of witch was 25 hours long, only stopping for fuel every 4 hours.
It took hours to tune the PIDs for many different speeds
I want to adapt this program to a UAV autopilot one axis at the time..
I appreciate everyone’s help and I am sorry if I did not use the rights “Terms”
Attached are some pics of the unmanned survey boat along with its tracks
Also is a screen shot of the program that runs the boat
Eddie Weeks
Joan Carles
Dec 10, 2008, 04:50 AM
Hi, EddieWeeks.
A plane is not so simple, sorry. There is an interaction between controls, so adjusting PIDs independently can be a nightmare... You know (or should know) that a yaw induces a roll, a pitch has an effect on speed and so on... I think a more complex control scheme is necessary.
Good luck
Ben Gatti
Dec 12, 2008, 11:13 PM
Eddie,
Arduino is programmed in C; however, you will quickly find as I did that for microcontrollers, C and Basic are quite similar.
You will also find that these projects are fairly far along as open source, so you can often find the code needed to do specific tasks. I mention Arduino, because the servo libraries are can handle these tasks as background.
You seem to calling for a number of hi-voltage "comm" ports. You may be better off using board-level communications as hi-voltage comm ports are complicated and intended to solve a distance problem which doesn't exists in a vehicle-sized system.
DIYdrones has a simple board that can handle servos, GPS, and downlink.
I'm not sure what the EagleTree port specs are, they may well be 5v level, and you may be able to manage that, but I have to wonder why Eagletree - just add the sensors?
For all of that you should just hack an Eagletree, it is already a microcontroller with hook ups for GPS, etc and it IRC an atmel chip.
It's a good board layout, and inexpensive...
I am looking for a microprocessor that can:
Input comm. Port GPS
Input comm. Port Attitude
Input comm. Port EagleTree
Input PWM (3)
Output PWM (3)
Output comm. Port (telemetry)
I have programmed a basic stamp before…. But it will not do this stuff..
Thanks
Eddie Weeks
http://aerialphotobatonrouge.com/index.html
EddieWeeks
Dec 13, 2008, 01:41 AM
Thanks Ben.. I will look into Arduino...
The eagle tree handles all insturments, pack volts, Amps,
Watts, Altitude, mah... and many more..
The output is 4800 baud... 1/sec....
Attached is a pic of the plane... it has a 12 foot wingspan
and is yet to fly...
http://www.rcgroups.com/forums/showthread.php?t=965613
one day I may install a glow engine with a large fuel tank and fly for
a few hours... but thats later...
Thanks again for your help
Eddie Weeks
http://aerialphotobatonrouge.com/index.html
ehx
Dec 13, 2008, 05:12 PM
Ardunio is nice for what it is, but it only has one hardware UART and that would rule it out for me. You can do software UARTs, but they will be too slow and take too much overhead for your application.
Certainly the ARM chips will do what you want. They are used in a variety of AUV applications, but the complexity is much greater.
Something with hardware UARTs like the Microchip PIC24F series could be useful. It has four hardware UARTs and mikroElektronika even has a Basic compiler for it. I haven't used these items so I can't say for sure, but at least you should be able to get your input data in fast enough. Whether or not you have the horsepower for an autopilot is another question though.
You might get more feedback in the DIY Electronics forum.
djMidnight
Dec 19, 2008, 09:30 PM
I've been using a Parallax Propeller chip with good success for a scratch built quad-rotor project. The Propeller doesn't have hardware support for serial ports, ADCs, etc, but has many software objects available that implement these things using one of the available 8 hardware threads.
The chip is a true multi-processing 8-core controller, with each core running up to 20Mips (total of 160Mips). All cores are 32 bit native (ie they work with 32 bit values, not 8 bit values) and all cores have access to 2Kb of per-core working RAM, as well as the 32Kb 'main' RAM.
The chip can be programmed in Spin (similar to Basic / Pascal / C) or ASM. Spin is interpreted, like the Basic Stamp, and is therefore able to bypass the 2Kb / core limitation since the code resides in main RAM.
It's a really cool chip. In less than a month I went from 'never knew it existed' to this: http://www.youtube.com/watch?v=4IZ5eAeneWk
More about the project, and some source code here: http://forums.parallax.com/forums/default.aspx?f=21&m=300454
Jason
EddieWeeks
Dec 19, 2008, 09:55 PM
Yes.. I used one of those to make a 2x4 hover with a 100cc gas engine
and an infared range finder.. don't ask... hahah
If I do this, I will use a PC104plus computer and just run XP..
My Uboat program will run with 8 serial ports no problem..
I know its large and uses a lot of power but the plane has a 12foot wing
span....
Thanks for all the help... Here is the pc104plus link
http://www.pc104plus.com/products/PPM-GX500.cfm
Eddie Weeks
http://aerialphotobatonrouge.com/index.html
EddieWeeks
Dec 22, 2008, 10:45 AM
Can someone explane to me what TTL output means.. ?
I think I need to get my learn on before I start this project.
I am starting to think this PC104 is just way overkill... hahah
Thanks
Eddie
zlite
Dec 22, 2008, 11:00 AM
Can someone explane to me what TTL output means..
It's the standard 5v digital communications standard. Used instead of RS232 for serial in most of our apps. http://en.wikipedia.org/wiki/Transistor–transistor_logic
eddymoore
Dec 22, 2008, 06:23 PM
PC104 is pretty heavy iron for this kind of thing! I've only every used it in fairly hardcore industrial control, as a master unit for heavy DSPs and FPGAs. They're much more like PCs shrunken down than microcontrollers.
I'd still put some good money on ARM. You can get ARM9 chips like the Cirrus EP9302 - LQFP (the type of package with external pins - so you can solder it with basic desktop kit) and floating point units and it's rated at 200Mhz, 200MIPS. It's about $20 too. That's a lot more horsepower than a lot of 'professional' autopilots on the market, and way beyond your paparazzi's/Attopilots/other-hobby-stuff. You won't run out of room on it for this kind of app.
EddieWeeks
Dec 22, 2008, 07:27 PM
Your %100 correct.. A pc104 is just too much for this job.... But here is what I want
to work with...
1) my Uboat program..... I know it like the back of my hand and it has all the waypoint code, graphics, and its been tested and proven for hundreds of hours..
it runs under Visual Basic 6.0
2)Eagle tree has serial output, with tons of usefull info... Pack volts, amphours used, GPS, ect...
3) I have a few of these... http://www.ocean-server.com/compass.html
My VB program can decode many serial ports, send the PWM to the servos
and transmitte a data stream via serial port..
Thanks..
Eddie
ehx
Dec 22, 2008, 10:31 PM
PC104 really isn't too much for the job if that is what you know. It sounds like you were working under Windows (2K,XP) with Visual Basic and a bunch of RS232 ports so if you can handle the cost, weight, and size of a PC104 setup then that is the quickest way to make progress.
Of course you don't need that much horsepower, but a new hardware platform and possibly a new programming language will take time to learn.
If you want to make progress as soon as possible AND the weight/size/cost of a PC104 platform isn't a problem go that route. If you can spend a few months learning a new platform and you really want something smaller then pick a microprocessor. Further complicating it is that most good development tools are 'C'-based (not BASIC) and if you've only programmed in BASIC that will take some more time to learn.
vBulletin® Copyright ©2000-2009, Jelsoft Enterprises Ltd.