Arduino vs PIC for kid to learn on? - Page 1
Forum section: electronics / beginners

author: BikeisDusty
author_rank: Newbie
timestamp: September 03, 2012, 03:45:41 pm
content: I am a homeschool dad, engineer, and have a 9yr old son that has "The Knack". I am looking to expand his horizons with a more flexible platform for programming. We have been playing with Lego Mindstorms and recently have started playing with Java using Standford's 106A class. He has made some surprising things with the Mindstorms, but he gets frustrated with the Labview light interface. While it is easy, some things are very hard to deal with, like a simple array. While the Mindstorm is a nifty platform, getting more out of it is a real challenge.Anyhow, I am looking to learn PIC for a few projects and will be investing into learning this. Would it be best to have him learn on Arduino so he can easily get some things working or do battle with PIC development boards to accomplish similar things. Personally, I think that PIC would be better as we can make stuff to sell more easily than with Arduino. At least it appears that way.What do you recommend for the budding engineer and entrepreneur?Bill

author: Balaur
author_rank: Unknown
timestamp: September 03, 2012, 04:16:21 pm
content: Hello,Here is my personal thoughts on this:I would get an Arduino anyway. It's not too expensive anyway and your kid can quickly and happily go on his own way. There are a lot of nice peripherals (OK, shields), examples, tutorials and so on. Results will be quick and plentiful. From an experimentation perspective, it's wonderful: you'll find shields for everything you'll need (finances and affinities allowing), writing code is really easy, etcThen, I would try to learn a new processor together with the kid:- What do we need to play with the new CPU? Yeah, Arduino is nice 'coz we have everything already provided in a board. What do we need to roll our own solution?:- What the processor needs: supply, clock, etc. What are those and how we can built them?- How we can actually access the CPU. What's a programmer?- Hey, we have this debugging facility. How we can actually use it? What it is good for?- OK, everything seems to work, but how we can actually instruct the CPU to do what we want? What's assembler and why I cannot use C- OK, got it; I can use C, but this strange free C compiler from Microchip pretends that it's not able to generate optimized code? What's this story about?- Oh, on the Arduino, we had all these nice shields and the code to play with them. Can we use them on the new processor. How we can proceed?- OK, we've spent all this time and effort to reach the same solution as Arduino. Do we are happy about it?- But wait, since we have all this experience, we can now understand that the Arduino platform is really just a CPU with a rather strange reset procedure. Can we take a new CPU, just the CPU and build an Arduino-like by ourselves?- Yay, we can do it!And so on.

author: hlavac
author_rank: Frequent Contributor
timestamp: September 03, 2012, 04:55:34 pm
content: Arduino in my opinion encourages passive consumer type behavior, using libraries and shields somebody else has made is deceptively easy, all he will learn is google and copy paste...And doing anything not already done will look extremely hard in comparison, he may not be willing to cross that barrier...I would suggest getting him both PIC and AVR kits (pickit, dragon) with handful of different chips and learn the real thing!He needs to understand there are multiple choices and ways to do stuff.

author: hans
author_rank: Super Contributor
timestamp: September 03, 2012, 05:03:14 pm
content: The arduino is great that you can easily include SD Card, Ethernet, Zigbee libraries and use them inside your sketch to tie them together. This way you can work quickly with those devices without actually knowing how they internally work. That is great for learning as a kid I guess, and maybe less great if you're a young engineering student wanting to learn. But for the latter, you can always write your own version of the library, if you're inclined. There is a lot of information on the web around for Arduino, which is great.I don't see any platform for the PIC or other microcontroller just yet.. There are some PIC arduino style boards, but they use the same IDE etc. and only differentiate in memory and speed. What a problem of arduino in general is though, it doesn't have very good debugging options. You can't set breakpoints or step through code. When I used it, I had to debug through the serial port. Like printing a character, text, number whenever the code runs through a section or if it does not.If you would get a PICKIT2 or 3 and some PIC devboards you can step through code. Of course you can get an AVR ISP too, and do the same for Arduino (or another AVR devboard), but then you lose the compatability with some shields.. I know Olimex delivers a lot of development boards. But for this you also need to get yourself some electrical parts like sensors, etc. Maybe it's fun to teach some electronics as well, in combination with programming.I can imagine though that working on 'bare material' chips is quite a step from Mindstorms. I recommend getting an Arduino. They are great for learning electronics. With the shields you can extend stuff so quickly and reuse it later on. If you want you can build your own shields on some veroboard, but that ofcourse also requires soldering.Oh and Arduino is programmed in regular C(++), so great language to learn. I know you can program a bare AVR or PIC in BASIC too, but if he is already starting with Java, I don't see the advantage of learning basic (first).

author: StubbornGreek
author_rank: Frequent Contributor
timestamp: September 03, 2012, 05:29:19 pm
content: Quote from: hlavac on September 03, 2012, 04:55:34 pmI'm with hlavac here. Since this isn't just a mess around with your dad kind of thing and you're using it to educate the child then start him off with the PIC or AVR - I bet my bottom dollar that in the end, it will be much more rewarding for him.

author: hlavac
author_rank: Frequent Contributor
timestamp: September 03, 2012, 06:21:34 pm
content: Well if you go with Arduino you can use it later as a raw AVR board with handy serial to usb interface onboard.The one I have has an ISP connector,all I had to do is unsolder the smd cap between FTDI (DTR?) and RESET pin and put the cap on a jumper, and now I can use my Dragon on it, debugWire and all with cap removedand arduino with cap replaced. Even erased and reburned the arduino bootloader that way.

author: westfw
author_rank: Super Contributor
timestamp: September 03, 2012, 10:39:53 pm
content: Got a budget? I'm think that you can get an Arduino ($30), a PIC MicroStick (also about $30), AND a TI LaunchPad (about $10), all for far less than the cost of a LEGO Mindstorm kit. Compare and Contrast. If he falls more the the Arduino side, there are people working on the Arduino libraries for PIC32 and MSP430. If he falls on the "bare vendor IDE" side, the Arduino works fine as a general purpose AVR board.You didn't say whether "The Knack" extended to soldering up PCBs or wiring together protoboards, or was mostly SW oriented. The former is a bit of a problem. I don't think there are many "kits" out there that are particularly educational beyond the "how to solder" stage. I'm not sure what an "educational" kit would look like :-(bridge-wise, I think I should point out that there alternative programming environments for Mindstorms, including Java (http://lejos.sourceforge.net/) and C (http://bricxcc.sourceforge.net/nqc/) There are also numerous discussions on the web on how to control mindstorm motors and sensors from assorted microcontrollers. If you figure out how to connect the three microcontrollers mentioned above to a mindstorm robot, using both the arduino and non-arduino programming environments, you're well on your way somewhere...

author: 8086
author_rank: Super Contributor
timestamp: September 03, 2012, 11:28:38 pm
content: I am usually a "arduino-hater" as it's too plug-and-play to really learn with, but for a 9yo, it's ideal.You can have a lot of fun with an Arduino and learn the basics too, which is what I think you're after.PIC Would become "un-fun" quite quickly to a 9 year-old I suspect.

author: MikeK
author_rank: Super Contributor
timestamp: September 04, 2012, 12:07:00 am
content: How about the PICAxe? It's very cheap, and programmed in BASIC or flowcharts. It's more susceptible to damage than the Arduino, but a few dollars gets you a new one.

author: amyk
author_rank: Super Contributor
timestamp: September 04, 2012, 08:20:56 am
content: Give him the datasheets of two comparable mid-range PIC and AVR devices, and see which one he chooses.

author: Torrentula
author_rank: Regular Contributor
timestamp: September 06, 2012, 03:02:16 pm
content: QuoteThat might be a little too hardI do like the Arduino because it makes for a nice AVR board with a nice form factor, but I agree it's too plug and play and consumerish if you use it with the IDE (in my opinion).There is nothing wrong with the bootloader though (when do you everreallyneed the extra 2k of memory on a 32k device?) because it can be pretty handy especially if you're going to use the USB connection anyway.I started off with the AVRs at the age of 13 (I'm 16 now) and that was solely because I had good documentation and tutorials available, so if there would have been better documentation for PICs I'd started off with PICs.I have just started to look into the PIC world (especially PIC18F) and I must say I really enjoy using PICs as well. Microchip has a wide variety of chips available with different memory footprints so you won't run out of options to soonI haven't found a particularly good/cheap dev board though so I designed my own from scratch (it's a proper PCB from iTeadStudio).I think for a beginner it really depends on 3 things:1. budget (probably the biggest one)2. support3. documentation (includes the boards schematic!) / tutorialsIf you have these three things available (like in this forum) you shouldn't have a problem starting off with either manufacturer/family.If your son is curious I think he will get the hang of it pretty soon

author: BikeisDusty
author_rank: Newbie
timestamp: September 07, 2012, 01:58:52 am
content: I think I will pick up a few Arduino boards to play with. We'll take it from there. Thanks for all the info. Looks like we have several good options to go with.