❗The content presented here is sourced directly from Coursera platform. For comprehensive course details, including enrollment information, simply click on the 'Go to class' link on our website.
Updated in [March 06th, 2023]
This course, Interfacing with the Raspberry Pi, provides an introduction to the Raspberry Pi and its various input/output devices. Students will learn how to use these protocols with external devices such as sensors, motors, GPS, orientation, and LCD screens to create Internet of Things (IoT) devices. The course will also cover the basics of analog-to-digital and digital-to-analog signal conversion, as well as the design of sensor-actuator systems. Finally, students will learn how to use Raspberry Pi expansion boards to build more sophisticated hardware systems.
[Applications]
Upon completion of this course, students should be able to apply their knowledge of interfacing with the Raspberry Pi to create their own IoT devices. They should be able to use the protocols discussed in the course to connect external devices to the Raspberry Pi, and be able to convert analog signals to digital signals and vice versa. Additionally, they should be able to use Raspberry Pi expansion boards to build more complex hardware systems.
[Career Paths]
1. IoT Developer: IoT developers are responsible for designing, developing, and deploying IoT solutions. They must have a strong understanding of the underlying hardware and software components of the IoT system, as well as the protocols used to communicate between them. They must also be able to develop applications that can interact with the physical world. As the demand for IoT solutions continues to grow, the need for experienced IoT developers is expected to increase.
2. Embedded Systems Engineer: Embedded systems engineers are responsible for designing and developing embedded systems for use in a variety of applications. They must have a strong understanding of the underlying hardware and software components of the embedded system, as well as the protocols used to communicate between them. They must also be able to develop applications that can interact with the physical world. As the demand for embedded systems continues to grow, the need for experienced embedded systems engineers is expected to increase.
3. Robotics Engineer: Robotics engineers are responsible for designing, developing, and deploying robotic systems. They must have a strong understanding of the underlying hardware and software components of the robotic system, as well as the protocols used to communicate between them. They must also be able to develop applications that can interact with the physical world. As the demand for robotic systems continues to grow, the need for experienced robotics engineers is expected to increase.
4. Automation Engineer: Automation engineers are responsible for designing, developing, and deploying automated systems. They must have a strong understanding of the underlying hardware and software components of the automated system, as well as the protocols used to communicate between them. They must also be able to develop applications that can interact with the physical world. As the demand for automated systems continues to grow, the need for experienced automation engineers is expected to increase.
[Education Paths]
1. Electrical Engineering: Electrical engineering is a field of engineering that deals with the study and application of electricity, electronics, and electromagnetism. Electrical engineers design, develop, test, and supervise the manufacture of electrical equipment, such as electric motors, radar and navigation systems, communications systems, and power generation equipment. With the increasing use of the Internet of Things (IoT) and the development of smart devices, electrical engineers are in high demand.
2. Computer Science: Computer science is the study of computers and their applications. It involves the design, development, and analysis of algorithms, software, and hardware. Computer scientists are responsible for developing new technologies and applications, such as artificial intelligence, robotics, and machine learning. With the increasing use of the Internet of Things (IoT) and the development of smart devices, computer scientists are in high demand.
3. Robotics: Robotics is the study of robots and their applications. It involves the design, development, and analysis of robots and their components, such as sensors, actuators, and controllers. Robotics engineers are responsible for developing new technologies and applications, such as autonomous vehicles, medical robots, and industrial robots. With the increasing use of the Internet of Things (IoT) and the development of smart devices, robotics engineers are in high demand.
4. Mechatronics: Mechatronics is the study of the integration of mechanical, electrical, and computer engineering. It involves the design, development, and analysis of systems that combine mechanical, electrical, and computer components. Mechatronics engineers are responsible for developing new technologies and applications, such as autonomous vehicles, medical robots, and industrial robots. With the increasing use of the Internet of Things (IoT) and the development of smart devices, mechatronics engineers are in high demand.
Course Syllabus
Module 1
This module presents the use of the Raspberry Pi to connect to the Internet, from a user perspective. The first way to use the Raspberry Pi as a networked device is to use it as a general-purpose computer rather than as a programmed IoT device. Using networking with a Raspberry Pi in this way is similar to using the network from any Linux machine, and we present its use in this module. We also present the standard Internet protocols that must be understood in order to develop network programs.Module 2
This module introduces the networking socket interface that is used to transfer data across the network programmatically. An essential aspect of the Internet of Things is for your IoT device to send and receive data on the Internet, and the socket interface is key to enabling that. We describe how to use socket in Python to act as both a client and a server.Module 3
This module focuses on how to have your Raspberry Pi interact with online services through the use of public APIs and SDKs. Many interesting and useful services are available in the cloud and this module describes how to write code that accesses those services. We define what an Application Programming Interface (API) is and what a Software Development Kit (SDK) is. We present some API examples and we show the use of the Twitter API in detail using the Twython package.Module 4
In this module we show how to use the Raspberry Pi to interface with more complicated sensors and actuators. We explore the use of the Raspberry Pi camera module and the use of a servo. The Raspberry Pi camera module is used through the picamera library, which we describe. Servos are controlled by generating pulse width modulated signals and varying their pulse width using library functions.