
Discover the objectives, curriculum, and outcomes of the Learn Raspberry Pi and Embedded Linux Programming course, and explore embedded Linux ecosystems, boot flow, and Raspberry Pi driven projects.
Explore the prerequisites, eligibility, hardware requirements, and assessment format outlined in the course FAQ for the Raspberry Pi and Embedded Linux programming course, including projects and future topics.
Explore Raspberry Pi and embedded Linux programming with the Raspberry Pi 4 B, learning its history, iterations, specifications, and board parts.
Set up a Raspberry Pi 4 B, install Raspberry Pi OS with the Raspberry Pi Imager, and configure hardware for standard and headless use.
Learn to use the Linux terminal and shell, navigate the filesystem, manage files, monitor resources, and remotely access Raspberry Pi via SSH and VNC.
learn shell scripting basics by writing your first script, setting permissions, and understanding the path. explore variables, conditionals, loops, and a password check example, plus a hello world script.
Learn to write, compile, and run a hello world C program on Raspberry Pi with embedded Linux, using gcc, makefile, and the terminal.
Learn Python basics on Raspberry Pi by writing and running a Hello world script, exploring syntax, variables, comments, conditionals, loops, and lists, and completing a simple password check.
Learn to connect peripherals to Raspberry Pi GPIO pins using the GPIO zero library and control LEDs, buttons, servos, motors, buzzers, and LCDs with wiring pi.
Explore the Linux file system and its hierarchical structure rooted at /, covering the root directory and key directories like /bin, /dev, /home, /usr, /etc, and ext formats.
Explore how to access files in a Linux file system using C by opening, reading, writing, and closing files, handling binary and ascii data, and using buffered and unbuffered i/o.
Learn how sysfs provides access to kernel subsystems, hardware, and drivers from userspace, and practice exporting GPIO, setting direction and level on Raspberry Pi via terminal and C code.
Explore Linux timers. Use sleep to pause and get time of day to measure elapsed time, and apply soft and hardware timers (sig alarm, set timer routine) to schedule routines.
Learn to read and modify the Linux system time in C using time routines, broken down time, and the set time of day function.
Explore linux processes, create them with fork and exec in C, distinguish parent, child, zombie and orphan processes, and monitor or kill them.
Explore inter-process communication in Linux using pipes, shared memory, and signals, with practical C examples and guidance on implementing these IPC methods across related and unrelated processes.
Explore multithreading with pthreads in Linux using C, covering thread creation, joining, cancellation, returning values, and mutex-based synchronization to prevent race conditions.
Explore uart fundamentals, start and stop bits, baud rate, and parity; wire Raspberry Pi to Arduino via USB or GPIO, and program uart in Linux C using /dev/ttyUSB0 and /dev/ttyS0.
Explore I2C fundamentals on Raspberry Pi, including the two-wire bus with SDA and SCL and start and stop signals. Set up WiringPi and write C to drive an I2C LCD.
Learn to program sockets in Linux using C on Raspberry Pi, building a server and client that communicate over TCP/IP, covering IPv4, ports, bind, listen, accept, connect, and echo.
Explore mqtt, the message queuing telemetry transport protocol, a lightweight publish/subscribe architecture for IoT, and implement it in Linux using Raspberry Pi with a practical Arduino ADC demo.
Learn to build a digital camera with the Raspberry Pi camera module using Python, featuring preview with an on-screen display, snapshot, video recording, and video streaming.
Explore the Raspberry Pi camera module, its versions and sensor specs, connect it to a Raspberry Pi, and capture images and videos with rpi cam tools.
Learn to control the Raspberry Pi camera module with the PiCamera two library in Python, performing preview, capture, plus rotation, text overlays, and tuning brightness, contrast, saturation, and sharpness.
Build a Raspberry Pi digital camera with preview, time lapse and Mjpeg streaming using Python, following the schematic and source code session.
Tests the Raspberry Pi camera prototype, verifies boot in image capture mode, 5 megapixel resolution, timestamp overlay, LED and sound cues, and m-jpeg streaming; concludes with improvements.
Explore embedded Linux programming on the Raspberry Pi, including Linux commands, shell scripting, C and Python, and GPIO control, culminating in a camera project with IPC and MQTT.
Everyone probably uses Linux, multiple times a day, without noticing. If you made a phone call, took a picture, used traffic lights, listened to the radio, watched television, all these are powered by Linux. Literally billions of people are using Linux. Linux , powers these applications. Which means it involves programming, that handles several technologies. Embedded Linux programming expertise, will fetch you a highly rewarding career. On learning this, you get to know how computers work and how electronic products around you work.
So,
What exactly is Raspberry Pi, and why is it used in our course?
How do you design an embedded Linux product?
What are the software tools used?
How do you interface hardware peripherals with an embedded Linux board?
How do you write an embedded Linux application in 'C' or in Python?
What is a Linux shell script?
How to design a socket application for communication?
This course covers, all these topics. The course is a blend of both theory, and practicals. This is a step by step course on Raspberry Pi, and Embedded Linux Programming, with information suitable for beginners and gradually progressing to intermediate level. You will learn how to set up and configure a Raspberry Pi board, explore basic embedded systems concepts, and delve into programming on the Linux platform. By the end of the course, you will be able to develop your own embedded Linux applications and projects.