I am unsure of how to start a project to be written on the microcontroller. I took C++ and Data Structure two years ago, but I am not sure how to start. Also, I do not know what materials I would need hardware-wise. For sure I would need a microcontroller and a software, but not specifically know if what kind or what other materials I would need to make this project happen. Can you please give me a hint and some approaches.
For materials you will need hardware-wise, you will probably be able to obtain what you need from the manufacturer of the microprocessor that you are using. They normally have available an evaulation board that contains the microprocessor, RAM, ROM, and probably a serial interface. This board can often be used as a basis for the design of the final product.
The manufacturer will also offer a development environment that includes a compiler, debugger, linker and a utility to load your firmware into the RAM or ROM of the microcontroller. Many of these are in the form of cross-compilers that operate under Windows. Your system is compiled and linked on the PC, and then a utility is used to convert it to a file that can be loaded into the controller. A debugger allows you to control operation and set breakpoints and step through the code that is in the microcontroller board.
If the microcontroller allready exists, you should still be able to use the development environment offered by the manufacturer.
To the best of my knowledge, only IAR do C++ compilers for micros, all the other compilers are C. IAR are good but expensive.
Just about every micro manufacturer supply dev kits to allow you to develop your hardware and software, some are better than others. They can also be quite expensive but you can quite often do a deal with the suppliers to get them cheap or sometimes even free. Sometimes you get a compiler and IDE, sometimes you get a cut down version, sometimes you get nothing.
In opinion(and experience) 8051(Intel, Atmel) is the best microcontroller for a beginner. You can first start with Assembly language programming. It is not tough for a guy who is already into C/C++. That shouldnt be a constraint.