Making projects is great, and often they will have electronics in them such as lights, motors, and batteries. The next major step up is with embedded systems. That is a system with a microcontroller connected to a system of sensors, interface, actuators, and power to perform a set function. The programming for your embedded microcontroller becomes very important because the code must integrate the elements of the system and execute commands in the correct order and correct time to successfully take a picture, microwave a burrito, or wash salsa stains out of your clothes.
The C programming language is by far the most common language used in embedded programming tools, so that is a great start. Many resources are available for C, and often you can find tutorials and training specifically for your chosen hardware and software environment.
Choosing a Development Board
As an example, Arduino has a huge following right now with an astounding number of projects to take inspiration from and libraries to work with. There are many other development boards that are very nice to get started with, from Atmel, ST, TI, NXP, Renesas, Freescale and more. The boards have varying capabilities and prices so make sure the one you choose meets your needs. The boards and their processors typically will guide you to the next decision to make: the IDE (Integrated Development Environment) that you’ll actually do the programming in.
Choosing a Development Environment
Select an IDE and toolset to go with your Arduino, ARM, or other MCU. This may be done for you if you’re working on a project professionally, or if this is for your hobby, you have many to choose from.
Arduino IDE is simple and available for free at their website. There are uncountable projects, code examples, libraries, and tutorials available for Arduino.
For the Texas Instruments MSP430 boards, Code Composer Studio and MSP430Ware are also available free from their website, and there are many examples of projects and tutorials to learn from.
There are many more, this is just a small list:
- Atmel Studio 7
- IAR Embedded Workbench
- Renesas e2 Studio
- Visual Studio
Basic Knowledge of Electronics and Skills
It will be important to learn some basics of electronics, from physical skills like soldering and setting up a breadboard, to the electronic principles of Ohm’s law, batteries, voltage, current, resistance etc. Your embedded controller will control and interact with a system of electronics, so making sure it’s inputs, outputs, and connections to that system function as intended.
Equipment and Parts
Have equipment to test and measure with like a Digital Multimeter, Oscilloscope, and Bench Power Supply (dmm/scope/ps). As your project develops you want to be able to keep track of power and signals for confirming proper operation or diagnosing errors.
In order for your embedded microcontroller to do anything it must be connected (embedded!) with other electronics, LEDs, relays, motors, heaters, displays, etc.
Details That Make Your Project Work
Make sure your MCU and components can work together by verifying info in manuals and datasheets; things like voltages, output levels, current capacity, number and type of I/O channels, etc. and get to designing your project.
With all of the above in mind you’ll be ready to get into the world of embedded programming.