User interface

MrSoftware

Joined Oct 29, 2013
2,212
Do you work own in Software Company.?
I work for a software company, yes. What you're trying to do has 2 parts; the windows GUI part, and the micro controller part. My advice is to learn them both separately before trying to put them together. Especially if you're new to programming in general. Google is your friend. stackoverflow.com, msdn.microsoft.com, places like these will help you. And I just stumbled on the link for Visual Studio 2015:

https://www.visualstudio.com/vs-2015-product-editions

Arduino is a great platform to learn on, generic arduino boards are cheap and the compiler is free and easy to use. Then read on general programming in C# and write some demo applications for fun. Once you understand how both parts work separately, it will be much easier when you try to put them together. Start very simple.
 

Thread Starter

RRITESH KAKKAR

Joined Jun 29, 2010
2,829
Arduino boards are used both for learning and in commercial products. High volume products will typically make their own circuit boards and may use the same Atmel processors that arduino boards use.
In which commercial products?
 

DerStrom8

Joined Feb 20, 2011
2,390
Anyone who uses Arduinos for commercial products has a very low budget and a severe lack of technical capabilities. I don't even think the Arduino should be used for teaching, as it doesn't teach a thing about Microcontrollers or programming languages. I've made this rant before, so I wont' do it again, but Arduino is really only good for one-off projects by people who have very little technical experience and/or no interest in learning about uCs and languages.
 

MrSoftware

Joined Oct 29, 2013
2,212
No, the PIC is fine. My point was that if you're set on using the Atmega128/328 AVR used in the Arduino, especially for commercial purposes, just buy the chip itself and a programmer.
This reminds me of talking to the old C/C++ programmers when C# was gaining popularity. "it's not a real language", "low level languages are better", etc... They didn't understand that sometimes higher level solutions are better, and this is similar.

My opinion on the arduino differs, especially for beginners and low budgets. Some of the arduino's are basically breakout boards for atmel processors with a USB/Serial bridge chip on board for convenience. They come pre-programmed with a beginner friendly boot loader that works nicely with their C compiler, but you're free to erase it and use your own. Use your own compiler, your own programmer, write your own libraries, write your own assembly if you want. The arduino platform is fantastic for beginners (especially beginners with limited or no hardware experience) because they are simple and the cost to get stated is very low. The arduino programming environment is good enough for beginners, there's a ton of libraries, and should you want to forgo the beginner stuff and get more advanced you can at any time. When you're ready to take your programming up a notch, Atmel Studio slips right into Visual Studio to give you a pro level compiler and IDE: http://www.atmel.com/tools/ATMELSTUDIO.aspx .

Not every project requires,or has the budget for, custom hardware. The arduino is a fantastic off the shelf micro controller solution for beginners, prototypes and low volume products.
 

DerStrom8

Joined Feb 20, 2011
2,390
This reminds me of talking to the old C/C++ programmers when C# was gaining popularity. "it's not a real language", "low level languages are better", etc... They didn't understand that sometimes higher level solutions are better, and this is similar.

My opinion on the arduino differs, especially for beginners and low budgets. Some of the arduino's are basically breakout boards for atmel processors with a USB/Serial bridge chip on board for convenience. They come pre-programmed with a beginner friendly boot loader that works nicely with their C compiler, but you're free to erase it and use your own. Use your own compiler, your own programmer, write your own libraries, write your own assembly if you want. The arduino platform is fantastic for beginners (especially beginners with limited or no hardware experience) because they are simple and the cost to get stated is very low. The arduino programming environment is good enough for beginners, there's a ton of libraries, and should you want to forgo the beginner stuff and get more advanced you can at any time. When you're ready to take your programming up a notch, Atmel Studio slips right into Visual Studio to give you a pro level compiler and IDE: http://www.atmel.com/tools/ATMELSTUDIO.aspx .

Not every project requires,or has the budget for, custom hardware. The arduino is a fantastic off the shelf micro controller solution for beginners, prototypes and low volume products.
I disagree. I have seen students in one of the labs I assisted in get completely lost with microcontrollers because all they'd done in the past was with the Arduino, which uses a butchered form of C (or rather, C++) to program it. They never learned how the micro worked, which made learning a different language even more difficult than if they'd started with a language such as Assembly or C. Learning on an Arduino takes the student a step backwards rather than forwards, and makes learning that much more difficult.
 

vpoko

Joined Jan 5, 2012
267
I disagree. I have seen students in one of the labs I assisted in get completely lost with microcontrollers because all they'd done in the past was with the Arduino, which uses a butchered form of C (or rather, C++) to program it. They never learned how the micro worked, which made learning a different language even more difficult than if they'd started with a language such as Assembly or C. Learning on an Arduino takes the student a step backwards rather than forwards, and makes learning that much more difficult.
The Arduino IDE uses avr-gcc as its compiler, so it's the same C.
 

MrSoftware

Joined Oct 29, 2013
2,212
I disagree. I have seen students in one of the labs I assisted in get completely lost with microcontrollers because all they'd done in the past was with the Arduino, which uses a butchered form of C (or rather, C++) to program it. They never learned how the micro worked, which made learning a different language even more difficult than if they'd started with a language such as Assembly or C. Learning on an Arduino takes the student a step backwards rather than forwards, and makes learning that much more difficult.
If the goal is to learn about uControllers at the lower level, then just zap the default arduino bootloader. Then you'll essentially be left with a chip on a nice breakout board. Code for it in Atmel Studio and write to it with a programmer. There's nothing wrong with the arduino as a learning tool, that student just didn't try to learn about micro controllers.
 

DerStrom8

Joined Feb 20, 2011
2,390
If the goal is to learn about uControllers at the lower level, then just zap the default arduino bootloader. Then you'll essentially be left with a chip on a nice breakout board. Code for it in Atmel Studio and write to it with a programmer. There's nothing wrong with the arduino as a learning tool, that student just didn't try to learn about micro controllers.
It wasn't just one student, it was an entire class. And I'm pretty sure I made that point already--My problem is with the IDE. Otherwise it's just an AVR with a dev board, which is not a problem. My point is that a microcontrollers class should not teach using the Arduino IDE, as it does the exact opposite of teaching how Micros work.
 

WBahn

Joined Mar 31, 2012
30,303
I think both camps have valid points and which view should be allowed to dominate depend very much on the context. For people that are doing just a little bit with a micro and have no intent to go any deeper, the Arduino is very possibly a perfectly justifiable option as an efficient means to a specific end. But for people that ARE supposed to be learning the fundamentals, it can do more harm than good. We see the same thing all over the place -- lab test equipment that has such capable "Auto Set" features that students can make it through a couple semesters of lab courses and never learn the first thing about how to make oscilloscope measurements. Or programming languages that do such a good job of shielding the programmer from what has to go on under the hood that they never develop the faintest hint for how to actually write solid code. These things are wonderful in a working environment, but they can be crippling when used too much in an educational environment.
 
Top