hi I want to start with the micro, can you suggest some things I think to arduino uno starter kit It's a good idea or not thanks and bye
- posted
11 years ago
hi I want to start with the micro, can you suggest some things I think to arduino uno starter kit It's a good idea or not thanks and bye
The Arduino is a reasonable starting place. It has a lot of users around the world and many, many "shields" (add-on cards) for more functions.
You'll eventually want to get to working with a bare microcontroller, where you will take care of setting up things like clocks and peripheral registers -- where it's just you, the user manual, and the chip. But an Arduino is a fairly painless introduction.
Hi Silvano(?)
Am 18.03.2013 13:15, schrieb Silvanononvalevoleciccioli:
"mbed" [
Would be another option...
HTH. Salut, J"org
On Monday, March 18, 2013 8:15:11 AM UTC-4, Silvanononvalevoleciccioli wrot e:
Arduino is a good starting point to experiment with microcontrollers and ge t something working fast. So if this is your goal, I would highly recommend it.
However, if your goal is to really learn about programming microcontrollers and how they really work inside, I think that you need a proper debugger t o see the disassebled code, to be able to examine the CPU registers, to see the content of memory, the stack, and various special registers. Arduino d oes NOT provide this capability, because Arduino does not give you the buil t-in J-Tag debugger.
So, here is my list of inexpensive self-contained boards with built-in J-Ta g debugger. All of them are based on ARM Cortex-M, which is the most popula r CPU architecture in microcontrollers today and for the foreseeable future . Please note that some of them are much cheaper than Arduino UNO:
From these boards, my favorite is the Stellaris Launchpad with the latest C ortex-M4F CPU. In fact, I'm using this board in my YouTube video course "Em bedded Systems Programming Course" available at
Miro Samek state-machine.com
[Cross-posting to news:comp.lang.c.]
Indeed, I've just discovered that they use a specific "Arduino" (e. g., [1]) language for the "sketches."
The question is: how this language is different from C (it surely looks "C-like" enough), and is there any reason to prefer it over the latter, even if only for 8-bit AVR programming?
TIA.
[1]-- FSF associate member #7257
[Cross-posting to news:comp.infosystems.www.misc, for the Web sites mentioned express a behavior that doesn't seem all that sensible.]
Any idea why this site (or, rather,
(No big deal, obviously: Lynx can be configured to send whatever User-Agent: the user desires. Or to send none at all.)
Aren't Arduino boards "free hardware" (as in freedom)? Isn't anyone thus permitted to produce them, or compatible ones? (ISTR, that I've seen some at Olimex.)
-- FSF associate member #7257
something working fast. So if this is your goal, I would highly recommend it.
how they really work inside, I think that you need a proper debugger to see the disassebled code, to be able to examine the CPU registers, to see the content of memory, the stack, and various special registers. Arduino does NOT provide this capability, because Arduino does not give you the built-in J-Tag debugger.
debugger. All of them are based on ARM Cortex-M, which is the most popular CPU architecture in microcontrollers today and for the foreseeable future. Please note that some of them are much cheaper than Arduino UNO:
The Cortex-M processors are my own go-to choice nowadays. Nevertheless, I would not recommend them as a typical user's first "bare" microcontroller. Better to go with something like an AVR ATmega328 in DIP form-factor. Cheap, understandable, bread-boardable. There is also a choice of free (libre) and free (for non-commercial use) compilers, e.g.,
I looked at this recently
If you know C then just use that instead, if you can figure out how to use the tools.
-- Bartc
something working fast. So if this is your goal, I would highly recommend it.
and how they really work inside, I think that you need a proper debugger to see the disassebled code, to be able to examine the CPU registers, to see the content of memory, the stack, and various special registers. Arduino does NOT provide this capability, because Arduino does not give you the built-in J-Tag debugger.
debugger. All of them are based on ARM Cortex-M, which is the most popular CPU architecture in microcontrollers today and for the foreseeable future. Please note that some of them are much cheaper than Arduino UNO:
For moving later up to ARMs (including Cortexes), the avr-gcc might be a good chioce for a toolkit. AVRdude functions well for programming.
IIRC, there are instructions how to integrate Eclipse and AVR GCC + tools, for the IDE people.
-- Tauno Voipio
Yes. I'd also thought about recommending WinAVR but from a quick check of the d/l page it looks like WinAVR stalled about three years ago.
Doesn't Atmel's AVR Studio include the gcc toolchain, now? I'll admit that I haven't been keeping up with it -- still running Studio 4 for those rare occasions when I need it.
I noticed yesterday that Atmel Studio 6.1 can create a project for an Arduino Due/X board.
Both sites seem to dislike that Lynx has "libwww" in the User-Agent string. Seems to be a crude anti-robot measure. I could duplicate the problem with
lynx -useragent='libwww'
But not with either of:
lynx -useragent='libww' lynx -useragent='ibwww'
Elijah
------ has seen this sort of thing before
I have in my hand a Chinese Arduino UNO. One of the local hackerspaces built them into convention badges, and sourced these to keep the cost to what they could afford. At least they told me it's Chinese. All the board artwork has been copied 100%, from what I can see. I see Active Tech up here is offering Arduino compatibles from OSEPP and Solarbotics.
Mel.
Well, as I was able to figure out, it /is/ indeed converted to C++. The conversion is (as per Arduino.mk from [2], which is itself derived from [3]):
# the ino -> cpp -> o file $(OBJDIR)/%.cpp: %.ino $(ECHO) '#include ' > $@ $(CAT) $< >> $@
Naturally, Arduino.mk also makes sure that a number of include directories are added to the search path, and that a number of libraries are compiled and linked into the resulting binary.
[2]... When last year I've ordered my Arduino Uno board (which I haven't found much use to this day), it made me wonder, who'd need that 32 KiB program memory ATmega328P MCU? Now, I've tried to build this simply-looking 540-line code [4] (with -Os and -mmcu=atmega8, = 8 KiB) and got the following from the linker:
/usr/lib/gcc/avr/4.7.0/../../../avr/bin/ld: ArduinoISP section `.text' will not fit in region `text' /usr/lib/gcc/avr/4.7.0/../../../avr/bin/ld: region `text' overflowed by 7112 bytes collect2: error: ld returned 1 exit status make: *** [ArduinoISP] Error 1
I understand that there may be certain advantage in using the libraries they supply. But somehow, I feel that I should try rewriting this particular piece of code in C, with AVR Libc as the only library used...
[4]-- FSF associate member #7257
Ivan Shmakov w
It's C with a small injection of C++ for the libraries. Some "hidden headers" supply types like "byte" and "word" where a mainstream programmer would use "uint8_t" and "uint16_t"; and instead of writing a "main" function, the programmer writes "setup" and "loop" functions which get wrapped into the actual program as
void main (void) { setup(); for (;;) loop (); }
A real beginner would prefer it because it's wrapped into a complete Arduino IDE along with peripheral libraries and a bootloader. This provides everything needed to create a simple project with sensors, actuators and what not.
A sophisticated user is liable to find that the Arduino packaging has expropriated some resources and tied the designer's hands. That's when it's time to either replace the Arduino firmware totally with one's own, or get down and design ones own board.
I've put a sketch of my own at for an illustration of what can be done. Another Arduino-based project is at
Mel.
No idea - I have not touched AVR Studio in years. My development runs on Ubuntu 12.04 LTS Linux with avr-gcc (and arm-eabi-gcc).
If an IDE is desired, Eclipse takes all flavors of GCC pretty easily.
-- Tauno
I've been using an Arduino Due (Cortex M0) for prototyping purposes:
While I /can/ go bare metal on it, it's not worth the extra time involved. I'm shipping exactly one unit of this thing, so time is the major factor here. I've done some fairly complex things (multiplexed LEDs hung off timer interrupts) in a few lines of code.
Theo
(I've used the "plain C" AVRUSB500 firmware instead.)
First of all, ARM-based boards seem like a different league. To drive, say, an ATmega8, in PDIP, placed on a breadboard, one'd need only a resistor and a button (for the /Reset line; and even these are optional.) It isn't that simple for ARM's.
But then, doesn't every other contemporary OS include some kind of package management software? Thus making downloading and installing GCC (whether AVR, ARM, "native," or some other variety) essentially a "single-click" operation. (The same applies to the Arduino IDE, though.)
My understanding is that the Arduino project relies heavily on the community for the documentation, etc. It may thus be beneficial to edit their Wiki pages as you go.
I tend to agree, as long as the ARM variety is considered.
Well, the point of my question was: could someone please share such "complex things in a few lines of Arduino code" examples?
TIA.
-- FSF associate member #7257 np. Epilogue (Relief) -- Apocalyptica
AIUI, it's more like "full" C++, adorned with certain libraries, implemented in both C++ and C.
Which, however, may be requested explicitly with:
#include
Curiously, how it makes it any simpler?
The Optiboot bootloader seems a sane choice, whether used with or without either the Arduino board or Arduino IDE (or both.)
Also, AIUI, it's possible (even if tricky) to use the Arduino libraries without either the board or IDE (or both.) There's also the "Arduino from the command line" package [2], which offers a specific Makefile, suitable for turning an Arduino sketch into a "stand-alone" source package.
[2]The question is: how sensible is to use Arduino libraries without the board? (Again, I see no compelling reason to forgo the Optiboot bootloader specifically.)
Well, some three years ago, in 2010, one of my students built an NTP clock, following the design by Guido Socher [3]. We've then tweaked the firmware so it'd catch NTP packets broadcast via IPv6 (instead of querying a specific NTP server via IPv4.)
[3]ACK, thanks for the pointer.
-- FSF associate member #7257 np. Tree of Love -- Jami Sieber
ACK, thanks. I've suspected something like that, but stopped short of actually trying to bisect the Lynx' User-Agent: myself. One more site to join the league is
What's really surprising in this case, however, that is such a configuration doesn't prevent a /robot proper/ from accessing these sites! Consider, e. g.:
$ wget -O /dev/full --
OTOH, I've indeed seen many sites which deny access to Wget specifically, and not for Lynx. For instance:
Another strange "crawling prevention" measure is to check Referer:, which is done by, e. g.:
Which is easy to overcome by giving the --header='Referer: ...' option to Wget.
(Although I'm unsure as to was it the intended behavior for download-central.ws, or just some kind of misconfiguration.)
FWIW, $ wget -U libwww gives the same result.
PS. I think I may want to create a list of such "doing silly things" Web sites...
-- FSF associate member #7257
ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.