top of page

Email #1

Introduction to Embedded Systems

Welcome!

I’m very excited to have you participate in the Embedded Systems Workshop!

 

Embedded Systems and Embedded Programming are vast topics, that like other subjects in Computer Science, can take years to learn and master. In our workshop we will use the Arduino platform to learn some basic concepts in Embedded Systems and understand the world of IoT.

 

In order to make sure that we have common ground, I will send you a few preparation emails (this one is the first). Please make sure you free some time to read, watch or solve - this will make the workshop much more valuable and beneficial for you.
I highly recommend to meet up with friends, It is much more fun to learn together :)

Part 1 - Basic Concepts in Embedded Programming:

In order to learn a new topic, there is always a need to know some terminology. 

It’s perfectly fine not to understand everything - especially if you are new to the subject. I just want you to get to know some concepts, and start thinking like an embedded engineer :)

 

Here we go! (Please read / watch the material in the links):
 

  • The world of Embedded Systems is mostly a world of MCUs (Microcontrollers). Microprocessors vs. Microcontrollers - can you tell the difference? Take a look at this short video, as well.

  • The “Hello World” of embedded systems is simply blinking a led, and it is done using GPIOs. GPIOs or General Purpose Input/Output, are digital control lines that the MCU can use for different purposes such as communicating with a sensor, controlling an actuator or communicating with external modules / other MCUs (we will talk about it later on).

  • Now, when we know what a GPIO is, we can understand what PWM is. PWM, or Pulse Width Modulation, is a technique for getting analog results with digital means. Here is a nice explanation (watch up to 2:22). See also Arduino's Tutorial for PWM.

Embedded Programming in C/C++, unlike programming in a high level programming language, requires some understanding of the physical environment in which we are working on.

Here is an example:

  • Say hello to “Little Endian / Big Endian” and their friends MSB / LSB (bits/bytes ordering). A clear and detailed explanation can be found in this link.

Did you get this one out? This code is taken from this great guide, check your answer :)

 

Part 2 - Hands On:  

  • Optional - A C/C++ overview is attached to this email. If you feel rusty please go over it. You can also look for smaller exercises online. If you have any concerns please let me know and we can figure things out :)
    (Please install the desktop app, not the web-editor. you need to scroll down a bit in the link. We will get more into Arduino in the next email).Arduino IDEFor our workshop, you will need a Laptop. Please Install on it 

  • Note that for the workshop we will need some more installations, instructions will be in the following emails. The complete installation guide can be found here.

 

Bonus Track:

We will only have time in our workshop to cover some basic issues in Embedded Systems. If you want some overview of it Wikipedia is always here for you. If you have some energy left - here is one last concept for you.

 

Woman of the Day

Our woman of the day is Elecia White who wrote Making Embedded Systems.
You can follow her on twitter (@logicalelegance)  and/or listen to her podcast “Embedded FM”.

Here is a nice interview with her:

I want to hear from you!
Please write me back:

  • How was the learning task for you? Do you feel comfortable with the material? (Please mention if you have/don’t have the background in these subjects).

  • How much time did you spend on this learning task? Try to estimate.

 

Hope you are already having fun :)

Dafna.

C/C++ overview summerized by Aviad Pines && Lev Faerman

C/C++ overview
bottom of page