This roadmap was created for the Embedded Systems committee in IEEE Mansoura Computer Society Chapter Hello and welcome to the README.md file of the student activity led by me, the Head of Embedded Systems. In this activity, we will explore the fascinating world of embedded systems, which are devices that combine hardware and software to perform specific functions. Embedded systems are everywhere, from smartphones to cars to robots. If you are interested in learning how to design, program, and debug embedded systems, this activity is for you!
The main goal for this road map is to prepare committee members to be able to work as Embedded Software Engineer either in a company or as a freelancer
- Beginner : Introduction to Embedded Systems & C Language
- Intermediate: Data Structure & Embedded C ,In this phase, we will move on to interfacing and writing firmware for 8-bit microcontrollers (MCUs), such as AVR and PIC. These are small and low-cost chips that can control sensors, actuators, displays, and other peripherals. We will learn how to use various communication protocols, such as UART, SPI, and I2C, to connect our MCUs to external devices. We will also learn how to use timers, interrupts, and ADCs to handle timing and analog signals.
- Advanced: Interfacing,In this phase, we will tackle more complex and powerful MCUs, such as ARM architectures. These are 32-bit processors that can run operating systems and support multitasking and networking. We will learn how to use FreeRTOS, a real-time operating system (RTOS) that can manage multiple tasks and resources efficiently. We will also implement some projects on embedded systems, such as a smart home system or a robotic arm.
- Learning concepts related to basics of embedded systems
- Learning concepts related to basics of programming, such as: compiler, IDE, packages, libraries
- Learning about the compilation process
- Learning C programming language Syntax
- Solving many programming problems using C language
- Week1: Learn about Version Control (GitHub)
- Week2: Introduction to Embedded Systems and C Programming
- Week3: C basics
- Second Offline Meeting
- Week4: Conditional & Loop Statements
- Week5: Mini Project 1
- Week6: Functions
- Week7: Pointers
- [Third Offline Meeting]
- Week8: Arrays
- Week9: Mini Project 2
- Week10: Strings
- [Fourth Offline Meeting]
- Week11: User-Defined Data Types
- Having a good background about Data structures
- Learning about Stack, Queue and Linked list
- Being able to customize and implement a new data structure
- Learning how to use C in Embedded (Embedded C)
- Week12: C Programming and Embedded Systems
- Week13&14: Offline Session
- Week15: Linked List
- Week16: Stack Content
- Week17: Queue Content
- Studying Atmega32(AVR) and PIC microcontrollers and writing drivers for them
- Learning about Interrupts and how do they work ?
- Writing Driver for GPIO and LCD
- Learning communication protocols (USART, SPI, I2C)