Re: Arduino For Idiots?
toggle quoted messageShow quoted text
I don't know. A lot depends upon your goals. I remember going to Cleveland for my draft physical (1960's) and hearing guys say they were going to intentionally fail the "intelligence" test. Really? If you could fog a mirror you were eligible for the draft. My thought was make myself so valuable they wouldn't want to use me as cannon fodder. If I were a high school student with no prospect of going to college or trade school because of finances, I'd learn all I could about the Arduino. The platform is cheap and the basics of programming and electronics is always valuable...then I'd join the military. There are worse options for a career path. If I'm a retired ham, I'd want to learn for different reasons, mostly just out of curiosity. There are a bazillion free programming tutorials online and I know of some good intro programming books for someone who has never programmed before.
The Arduino family is up to most tasks, but not all. I've done numerous projects using external and internal interrupt routines and also software timing schedulers. Adding an RTC to an Arduino is easy and cheap. That said, my current project uses some FFT routines and even the Due and Zero aren't fast enough. However, the Teensy 3.6 is and I can still use the same Arduino IDE which lessens the learning curve for the move to a new processor.
Sure, it's nice to know assembler and have a "real" OS to talk to, but for hams, that might not be an issue. For someone who is just starting in electronics/progamming, the cost/benefit ratio for the Arduino platform is pretty tough to beat.
On Monday, April 2, 2018, 12:10:59 PM EDT, James Lynes <jmlynesjr@...> wrote:
"The Arduino environment is not a bad choice if wishing to start on the path
toward becoming a hardware or software engineer."
I'm torn on this....necessary but not sufficient....
The economics are certainly great compared to the $100K DG Supernova I started out on. And C/C++ looks pretty much the same across platforms compared to the dozens of different assembly languages of the "good old days". The Arduino abstraction runs across a range of processors, 8bit Atmel, 32bit Microchip, and various 32bit ARM processor implementations. So there's a wide range of speed and memory options. An issue is that libraries that bypass the abstraction (access the processor's registers directly) for speed, byte-wide I/O, direct memory access, or other reasons won't be compatible across processors.
The setup() / loop() construct is easy to grasp, but the lack of Tasking causes a lot of hoop jumping with state machines/timing loops to simulate tasks. It's hard to debug timing issues. At some point you will have to use interrupts and a realtime scheduler/OS.
That said, I know of an entire theme park that was run on Intel Multibus 8085 8bit processors and C with all the real work done in a loop() type structure with a background task that only printed error messages.
Some really interesting projects can be done in the Arduino environment, but to cross over into the professional realtime programming world requires a lot more education.