How is Embedded Hardware & Software Development done?


<< Previous Post Visit my Traditional Programming Blog Next Post >>

Using the open source hardware software prototyping platforms is fairly straight forward. The big factor here is the degree of innovation implemented using these devices. In this post we will examine the development and prototyping methodology in general. First, I will explain how you can rapidly create new automated devices using the micro-controller boards, just from your PC/Laptop. Of course you would need some hardware to start with at the minimum. Let us dive into it!

We will start with a general overview of how the development is done, followed by a more platform specific "Hello World" example in the following post. However, this post will focus on a general overview of the process. The below diagram shows how embedded programming is done in general.

We can use an Arduino development board, some bare minimum electronic parts and a Laptop. You are also expected to know a little bit of C/Python/C# (depending on the platform) programming to implement the logic of the embedded programs that will reside in the micro-controller chip and co-ordinate the interactions among the various peripheral devices attached to the chip.

Typically the following hardware items would be used during development:
  • A development board of choice (Arduino, Netduino, Gadgeteer, Raspberry Pi, BeagleBone or Other Chips)
  • A Breadboard
  • Some Jumper Wires
  • Some basic electronic components (usually resistors to reduce current, transistors for switching and diodes for directional control of current flow, to start with) 
  • Some Sensors and/or Actuators
  • A Laptop (in case of Raspberry Pi and BeagleBone a Laptop may not be required).
The software used varies depending upon the chosen platform, as indicated below. However, note that in case of the Raspberry Pi and the BeagleBone a Laptop may not be required; as they are complete computer systems on their own.
  • An Operating System (Windows/Mac/Linux)
  • An IDE (Arduino IDE, Visual Studio, Notepad++, etc ...).
Knowledge Required:
  • Primarily C Programming (Arduino). However, Assembly Level programming can also be done.
  • Primarily it is Python (Raspberry Pi). However, with the Raspberry Pi there is an option to use Windows 10 IoT Core, Visual Studio 2015 and C#. Plus other Operating Systems can also be loaded using a separate SD Card.
So that is all you need to start developing your own devices! It might seem a lot to start with as there is the additional investment of the development boards and electronic components involved. Sometimes it is indeed a daunting task to find the right devices, because there is this element to experimentation and you never really know until you have really tried it out. However, with time as I find out more I will continue to share the right mix and combinations with you to successfully build your own connected devices around the world.

Cheers,
KB

No comments:

Post a Comment