Skip to content

MUDAL/Practical-Embedded-Systems-Course

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

50 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Practical-Embedded-Systems-Course

This repository contains the source codes and projects from the Embedded Software Development using C++ online course I created in 2021. Although the course is no longer under development and is a bit dated, the concepts are still relevant for people interested in experimenting with embedded software development using tools such as: Keil uVision, STM32CubeMX, STM32CubeIDE, C++, and an STM32 microcontroller. In order to follow the course without issues, it is advisable to use an STM32F401RE Nucleo board.

Why I created the course

I have always been a fan of programming microcontrollers at the register level and writing libraries for peripherals like sensors, flash memories, wireless communication modules, etc. I've had the opportunity to do this in a professional setting and for numerous personal projects using the C programming language. Out of curiosity, I experimented with C++ for creating custom libraries for simple components. I enjoyed the process as it allowed me to express certain implementations in easier ways than with plain C, using in-built object-oriented programming features. I found out that there wasn't a lot of content out there on how to use C++ for programming STM32 MCUs, so I authored and published this course with the hopes of sharing my knowledge with enthusiasts in the embedded system community.

Repository Layout

.
├── Embedded_C++
│   ├── Bluetooth_Controlled_Servo
│   ├── Extra_codes
│   ├── HC05
│   ├── HCSR04 Exercise
│   ├── Keypad
│   ├── Keypad2
│   ├── LCD
│   ├── STM32F4 Self Driving Car Project
│   └── Servo
├── LICENSE
└── README.md

Hardware used

  1. STM32F401RE Nucleo board
  2. 4x4 Keypad Matrix
  3. 20x4 LCD
  4. 10k Potentiometer
  5. Solderless breadboard
  6. Connecting wires
  7. L298N motor driver
  8. 4 Wheel car chassis
  9. HC05 bluetooth module
  10. SG90 servo motor
  11. 4 Wheels
  12. 4 TT DC gear motor
  13. 3 HC-SR04 ultrasonic sensor
  14. 18650 Li-ion batteries

Software requirements

  1. Keil uVision 5
  2. STM32CubeMX
  3. STM32CubeIDE (optional for majority of the course)

Projects

  1. Self-driving/obstacle avoidance car
  2. Tic-Tac-Toe game
    If you're taking the course, you're expected to implement these projects on your own. However, I have written source codes for these projects that you can run on your target hardware to see how things work.

Course Link

Course link: https://www.udemy.com/course/embedded-software-development-using-cpp/

About

Source codes for the "Embedded Software Development using C++" online course created by me (Olaoluwa Raji).

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors