Which range of Electronics? PIC? Arduino? Phidgets?

Hello everyone, nice to see this forum still going, I last logged in about 3 years ago!

Anyhow, I have a project I shall be starting during summer, when I have free time from University. My design is finished, but it’s still in the rendering process. I’ll post an image in the Projects forum sometime soon! The first thing i’m going to buy is a Lynxmotion ARM.

Unfortunately, I’m not the one to start off small and make my way up the knowledge ladder, I go in big and very big and learn as I go along. At the minute I have a PIC programmer kit, a 16F627 PIC and it’s all nicely programmed using my compiler from C++

Due to my little programming knowledge in C++ or C or C# for that matter, the only thing I’ve managed to do is turn on a few LED’s etc!
Thus I want to get started in using FlowStone, while at the same time continuing to learn C++

Essentially this is what I want to do… The whole program will run on my computer, the data will be sent and received to and from the robot via WiFi (ideally). The large range of sensors from the robot transmit the info back to the computer program for processing. If i’m correct, this will severely boost the range of things I can do, there’s no memory limit, no problems with microcontrollers, integration with other programs/ applications within the Windows Environment.

BUT: Which range of electronics am I better off using?

PIC?
Arduino?
BasicAtom?
Pololu Orangutan?
Phidgets?

They all seem completely different! PIC seems like you have to do an awful lot of your own circuit design just to add new inputs/outputs. Arduino has shields, but seems to have different programming software. I have no idea bout BasicATOM or Pololu and Phidgets seem to have only USB interfaces and nothing to do with Wireless communication but has great support from Flowstone.

If i’m correct, I shouldn’t need any microcontrollers in my project, as the whole program runs on my PC within the Windows Environment. Thus it appears I only need a servo controller, motor controller, interface system, WiFi system etc etc.

If anyone could explain the primary differences between these different brands, and what you use and why you use it, it would be much appreciated. Thanks for your help again.

Hey there. So, I have to say you have asked a very open question, which unfortunately I would not know how to answer fully. But I am going to take a stab at it. You might have to take a long hard look at your requirements and determine whether features and trade-offs like more I/O pins instead of A/D converters etc are what you’re prepared to be flexible on. Basically, they all have pro’s and cons.

I have used the PICs and Arduinos. My experience with the PICs (PIC18F877) has been through university projects, and I found them quite (un)friendly to work with since I had to use assembly and a little bit of C++ (hadn’t done any programming before so that’s probably why). If you like the ‘old is gold’ way of thinking, then you can’t go wrong with PICs. LOTS of support on various forums etc. Nice chips, but the only thing is, you have to know what you are doing.

As for Arduinos, they are for everyone. That’s why they were developed so anyone, with little or no experience, can jump into programming. TONS of shields ( add-on boards that plug on top of existing boards to expand functionality such as gps, Xbee etc) and a very active following. In fact, the number of followers, contributors and general interest has been growing exponentially. I really like them, small form factor and the Mega has 54 I/O pins (16 of them analogue so great potential to work with data from the real world). Great fun to play around with, and people have made lots of cool stuff with them.

Haven’t used the other brands. Though I think it is the ideal time to start using the Parallax Propeller chip. Made by Parallax Inc., it features 8 (Yes, 8!) 20Mhz cores inside, meaning you get a throughput of 160 Mips (Millions of instructions per second - provided you utilise Assembly Language ofcourse). It is very clever because you can have each core dedicated to do a particular task, and each ‘cog’ (parallax terminlogy for core) has it’s own ROM and RAM so you can use one for video output while the other could be converting analog data to digital form using PWM while a third can update the results to a GUI etc.

So basically, I would recommend you start small, and take it from there. No use trying to run before you can walk. I started on this path, and got nowhere.