Have you wondered how information from physical devices in the real world gets communicated to Smartphone processors? Do you want to make informed design decisions about sampling frequencies and bit-width requirements for various kinds of sensors? Do you want to gain expertise to affect the real world with actuators such as stepper motors, LEDs and generate notifications?
In this course, you will learn to interface common sensors and actuators to the DragonBoard™ 410c hardware. You will then develop software to acquire sensory data, process the data and actuate stepper motors, LEDs, etc. for use in mobile-enabled products. Along the way, you’ll learn to apply both analog-to-digital and digital-to-analog conversion concepts.
Learning Goals: After completing this course, you will be able to:
1. Estimate sampling frequency and bit-width required for different sensors.
2. Program GPIOs (general purpose input/output pins) to enable communication between the DragonBoard 410c and common sensors.
3. Write data acquisition code for sensors such as passive and active infrared (IR) sensors, microphones, cameras, GPS, accelerometers, ultrasonic sensors, etc.
4. Write applications that process sensor data and take specific actions, such as stepper motors, LED matrices for digital signage and gaming, etc.
Course 3 Lecture series
-Before jumping into the lab section of this course, we would like to offer you a short lecture series. This lecture series will compliment everything you are about to do for the remainder of the course.
Terminology/Cheat Sheet (Beginner)
-In this course, you will see a lot of new words and acronyms you might not be familiar with. If you feel comfortable with your knowledge of tech terminology, feel free to skip these lessons since they will not affect the overall integrity of the course. If you see something that you want to know a little more about, feel free to watch the video to gain insight on some basic concepts. We do expect you to know the majority of this material before going into the next module, we would recommend going through the lessons as a quick brush up.
- Hello everyone and welcome to GPIO Programming! In order for the DragonBoard™ 410c to interact with the world there has to be an interface between them. For the purpose of this project the GPIO interface will serve as a way to sense and interact with the environment. In this lesson we will talk about General Purpose Input/Output pins and why they are important to this project. We will try to define them as well as provide other resources that could help further explain their purpose. In taking a look at the low speed expansion header on the DragonBoard™ 410c we will locate and explain all other GPIO interfaces. Since only the 12 GPIO will be necessary for this course, most of this lesson will focus on them. Once a greater understanding of the GPIO is achieved we will then access them via command prompt be it through a PC host or on board OS such as Ubuntu. Finally in this lesson we will show you how to make your first program/application capable of controlling a GPIO.
-Time to build your very own amplifier! In order to interact with a wide variety of components, including many of the components that will be used throughout this course the voltage output from the DragonBoard™ 410c low speed expansion header will need to be amplified. In this lesson we will talk about a very basic voltage amplifier design. This design will be used to boost the signal voltage from the GPIO’s located on the DragonBoard™ 410c low speed expansion header. Once familiar with this basic amplifier, one can make adjustments to create personalized amplifiers geared toward specific future projects.
-We are all basically made of motors, not really, but most robots are! When working with robotics, motors among several other things are some of the most important components you will chose for a project. In this lesson we will compare a variety of different motors widely used in DIY projects, especially DIY projects centered around robotics. We will take a deeper look at the stepper motor and what they are made of. We will then talk about the H-Bridge integrated circuit chip, why it is necessary for this projects and how it is used. Lastly, this lesson will guide you through the process of building a circuit capable of running a stepper motor. Schematics and code will be provided in order to gain a greater understanding of the stepper motor, as well as to facilitate the step by step instructions found in this lesson's documentation.
-It was amazing when we turned our first LED on. What if we told you one was just the beginning! In this Module we will manipulate 8x8 LED matrices to execute a variety of custom schemes. We will program and build games, and digital displays that can be used for fun or business. The 8x8 LED matrix is just the beginning. Our code and ultimately our concepts can be applied to larger more intricate projects as you grow your IoT toolbox.
-Using sensors that work on the infrared spectrum we can send and receive information. With this knowledge we are ready to program/build a way to use this to our benefit. In this Module you will gain access to code that will allow you take tremendous steps forward in your pursuit to claim of piece of the IoT movement. We are also going talk about the infrared spectrum on a higher level to gain a better understanding of how we are able to use it for these projects. By the end of this Module, you will be able to take a household remote and control various aspects of your DragonBoard™ 410c, especially peripherals through GPIO manipulation.
-If you thought the IR remote module was fun, this will take your wireless control of the DragonBoard™ 410c to a whole new level. Here we will use multiple devices to communicate and control peripherals using Bluetooth. We will walk you through the steps we took in order to send and receive data through the Bluetooth modules on multiple devices. By the end of this module you will be able to control a variety of components (including GPIOs) on your DragonBoard™ 410c from other devices using close range Bluetooth connectivity. We are very excited to share this code with you, and we are even more excited to see all of the cool stuff you will all come up with when you are finished with this Module.
DragonBoard™ 410c Monitoring and Control
-Its time to expand on what we did in Course 2! That being said, I am sure you all had a blast creating your server and checking the status of various components on your board. What if I told you we can use some of these ideas to also control peripherals on your board! Well that is exactly what we are going to do in this Module. Its time to mix your software knowledge with your hardware skills to create a system that can both receive and send information using HTTP! Buckle up because we are about to introduce you to a new sensor while also providing you with everything you will need to officially use the internet for controlling your things (IoT pun)!
Ganz Chockalingam and Harinath Garudadri