logo

Panaverse

Quarter V

AC-361: Embedded Programming using C and Rust

Duration: 13 weeks

Course description:

This is an introductory course about using the C and Rust Programming Languages on Bare Metal embedded systems, such as Microcontrollers. We will start by introducing embedded systems and move on to learn the C++ and Rust programming languages. We will learn about basic programming concepts using C and Rust, then we will explore key concepts in electronics, microcontrollers, and embedded programming. It is a fast-paced, thorough introduction to programming with C and Rust that will have you writing programs, solving problems, burning your code on microcontrollers, playing with GPIOs, and making things that work in no time.

Course Outline:

1. Introduction to the Internet of Things and Embedded Systems

Slides

(Link)

What is the Fourth Industrial Revolution?
What is IoT?
Embedded Systems
Hardware and Software for IoT
Edge and Cloud Computing
The future of IoT is AI
Blockchain in the Internet of Things?
IoT + AI + Blockchain: The Fourth Industrial Revolution has begun
How will Matter change the IoT Infrastructure and address issues
Metaverse and IoT

Mid-Term I: Introduction to the Internet of Things (IoT) Quiz in Week 3

2. The C Reference Book: The C programming language Embedded Programming book: Internet of things with ESP8266

3. Introduction to C (Part 1)

C environment Setup for (Windows, Linux, and Mac OS systems)

Chapters 1-2 of “The C programming language”

● Variable names types
● Data types and sizes
● Constants
● Arithmetic operations
● Logical and relational operators
● Type conversions.
● Bitwise operators
● Conditional expressions.

Programming Assignments will also be given.

4. C Programming (Part 2)

Topics 3 and 4 of “The C programming language”

● Control flow statements (else if, loops, switch, break continue)
● Function and Program structure(Returning and non-returning, scope rules, Recursion)

Programming Assignments will also be given.

5. Introduction to Embedded systems Part 1

Basic Electronics and Introduction to microcontrollers

Chapter 1 of “Internet of things with ESP8266”

● Arduino IDE installation and env setup for ESP8266
● Burning your first code on ESP8266 Project-based Assignments will also be given.

Project-based Assignments will also be given.

Mid-Term II: C Programming Quiz 1 in Week 9

6. Introduction to Embedded systems Part 2

Chapters 2-5 of “Internet of things with ESP8266”


● Connecting your hardware to wifi.
Link 1
● Reading data from GPIOs.
Link 2
● Controlling LEDs.
● Reading data from digital sensors.
Link 3
● Cloud data logging.
Link 4
Link 5
Link 6
● Displaying data on the cloud.
Link 7
● Controlling controller remotely.
Link 8
● Controlling a lamp anywhere in the world.
● Interacting with different web services.

7. Embedded Programming using Rust (Extra Weeks in the Course)

8. Hardware Requirements:

a. Esp8266 (Node MCU)
b. Jumper Wires
c. Bread Board
d. LEDs
e. Sensors: (Dht11, ultrasonic sensor, IR sensor)