3 ms·
Arduino and Netduino are great, but I think people like the author sort of forget why. Back a few years ago, you could buy very cheap microcontrollers, then wi
by TheAnimus 14y ago
Arduino and Netduino are great, but I think people like the author sort of forget why.
Back a few years ago, you could buy very cheap microcontrollers, then with a few $ of components make a simple programmer from the PCs parallel port or serial.
http://picpgm.picprojects.net/hardware.html http://picpgm.picprojects.net/hardware.html for a nice collection of them.
These where great, they cost about £1.50 each iirc, and I really liked them, by the time I went to uni I knew my Microchip PIC MASM by heart.
However people who are just learning about programming electronics don't really want to have to figure out the joys of GPIOA3 being shared with the ADC when trying to attach an LED.
Arduino providing a nice simple formfactor for allowing people to simply plonk them together, no worries about which pins can do what, how much can be driven. All the packages made it quite clear what could play nicely together.
This doesn't change that. Nor does it mention that if your the kind of geek who is thinking of buying say 3 or more of them you'd be much better off with oldschool prototyping board, a vertible smorgasboard of uCs and a simple programmer. There are some great PIC ones that even have the ICD (In Circuit Debugging!) on ebay for next to nothing.
- patja 14y agoI believe the big advantage of Arduino is in the tooling and vast quantity of working code samples and projects you can find on the web. While the IDE has its quirks it is easy for newbs getting started, has decent samples bundled in, and works very well with real Arduinos where you just plug the USB cable in and go. I've gone the bare-ATMEGA328P route with an ICSP programmer as well and still value the leverage the IDE gives me to leverage code samples I find on the web.
- hansc 14y agoTotally agree with the formfactor thing: Just love that you can LEGO stuff together. But even as a MsC in EE, I love that I can do this and then create a real thing from it with breadboarding, proto pcb or a custom designed PCB. The other thing I like a lot (even more I think) is that there is such a great community with many, many examples, so you don't have to dive into the bit level to get a sensor or module working.
- TheAnimus 14y agoIt's not ment to be an attack at people who use these, I still like my .Net Fez Spider for making silly things. But. I do think that when someone is finding they want more boards, they are probably envolved enough in it to go naked, and look at the uC world. A friend wanted some help on their project, they had never considered using the 8pin uCs available for 50p each, they where trying to tie together Ardiunos and a lot of wire. Luckily they asked for help rather than just throwing money at it and using what they know. But I fear if people just stay in a LegoLand they might not realise that there are other things often more appropriate. I do still love LegoLand mind, despite not being there for a long time.
- misnome 14y ago> However people who are just learning about programming electronics don't really want to have to figure out the joys of GPIOA3 being shared with the ADC when trying to attach an LED. The Arduino and similar products (microcontrollers right down to PICs) seem interesting and appealing, but I'd much rather approach the issue from an EE perspective, and the thought of learning to do this like in the article - with the chip itself on a breadboard, seems much more appealing. It's just a very intimidating space, and I have no idea how to approach it iteratively without jumping straight in to something like the Arduino, which presumably hides a lot of the complexity. I've looked at Sparkfun and would love to understand enough to start using some of the cool looking components on it. Do you have any insight or suggestions for a path to learning this?
- mercuryrising 14y agoWith new microcontrollers, almost everything has moved onto the chip itself. The "EE" perspective (the surrounding circuitry) is little more than following the datasheet and observing the rules for routing. Sparkfun is awesome not only because they sell cool things, but because they release many of their schematics, check this one out - https://www.sparkfun.com/products/11113 https://www.sparkfun.com/products/11113 (click 'schematic' or 'eagle files' (if you don't have eagle, you'll need that too - http://www.cadsoftusa.com/) http://www.cadsoftusa.com/)). You can see all the pieces needed to make an 'Arduino'. A voltage regulator, a reset switch with a pull up resistor, some filtering capacitors, and a crystal oscillator. That's it. If you make a board yourself that runs off of a Lithium battery, you don't need a voltage regulator, might not need a reset switch, you can use the internal oscillators, and you have almost nothing outside of the microcontroller. It's really amazing. I don't think you meant 'EE perspective' this way, but if you meant getting closer to the machine code, one thing you can do and still be able to do everything nice is rip open the Arduino source code, or re-implement the functions they provide. Try rewriting digitalWrite(PIN, STATE), or analogRead(PIN), and see how many instructions those functions need.
- chas 14y agoThe Arduino hides a lot of its complexity through its libraries and software interface, but it is open source! This means you can learn a lot about embedded programming (that might be difficult to get from datasheets) from its source code. For instance https://github.com/arduino/Arduino/blob/master/hardware/arduino/cores/arduino/wiring_digital.c https://github.com/arduino/Arduino/blob/master/hardware/ardu... is a pretty good resource for learning how to do i/o on a microcontroller. In addition, the arduino environment is still running your code through avr-g++ so anything you can do on an ATMega328P (or whichever chip your Arduino is using) you can do on an Arduino by using the low-level interface directly. This means you can iteratively transition from completely relying on the Arduino to coding from scratch. Open source circuit schematics mean you can build your own circuits based on the Arduino and have a known good test platform as a reference.
- pnathan 14y agoIt's also very cheap today as well to hand-roll this stuff. However, I - and many of my peers in CS-land - don't have the EE knowledge to correctly put together a analog circuit. Particularly as so many of the components for interesting stuff have different voltages... understanding how to link this stuff is really hard! However, an Arduino abstracts that away. The 'hard' stuff has been done, for the cost of being inefficient and expensive. I spent about 6 hours with a circuit simulator in the last few weeks trying to design a simple LED based circuit relating to a some 555 timers. Totally failed. I simply got exposed to my own ignorance even more! I got the corresponding Arduino thingie working in about an hour.