Internet of Things: Setting Up Your DragonBoard™ Development Platform

University of California San Diego via Coursera

Go to Course: https://www.coursera.org/learn/internet-of-things-dragonboard

Introduction

### Course Review: Internet of Things: Setting Up Your DragonBoard™ Development Platform If you have ever wanted to delve into the exciting world of the Internet of Things (IoT) and create your own mobile-enabled products, look no further than Coursera's course, **"Internet of Things: Setting Up Your DragonBoard™ Development Platform."** This course offers a comprehensive blend of theory and hands-on practice that will set you on the path to becoming an IoT developer. #### Course Overview Targeting both beginners and more experienced developers, this course serves as the launchpad for a series of IoT specialization courses. Through the use of the DragonBoard™ 410c single board computer, learners will build their hardware and software development environment from the ground up. This course is a perfect blend of foundational knowledge and practical application, making it ideal for anyone interested in the field of IoT. #### Syllabus Breakdown 1. **Introduction**: The course kicks off with an informative introduction that lays out what you can expect, presenting all the modules in a clear, engaging manner. 2. **Terminology/Cheat Sheet**: Although the course accommodates seasoned developers, this beginner-friendly module provides necessary context and foundational terminology. This is especially beneficial for those who may need a refresher. 3. **Board Bring Up**: You will start working directly with the hardware, getting acquainted with the DragonBoard™ 410c. Here, the course teaches you how to register and set up your board effectively. 4. **Setting Up Your Development Environment**: Learn to install Android Studio, an essential Integrated Development Environment (IDE) that you’ll rely on throughout the course. This module walks you through the installation processes on various operating systems—Windows, Mac, and Linux. 5. **Changing Your Operating System**: Flexibility is a key feature of the DragonBoard™. This section educates you on how to choose and switch the board's operating system, all while considering the pros and cons of each option. 6. **Rescuing Your Bricked Board**: Accidents happen. This module instructs you on how to restore your board in the event of a system issue. 7. **Creating Your First Application**: Step into the world of app development! You'll create a simple Android app that will test network connectivity—an exciting milestone in your learning journey. 8. **Native Development Kit (NDK)**: This module introduces you to the NDK, allowing programming in C/C++. It covers fundamental concepts and walks you through creating a basic "Hello World!" app. 9. **CALIT2 Bird Application**: Ready for a challenge? You’ll develop a more complex Android game reminiscent of Flappy Bird, applying everything you've learned about game design and development concepts. 10. **Monitoring Your DragonBoard™ 410c**: In this final module, you’ll create an advanced NDK application that turns your board into a web server. This not only solidifies your knowledge of the DragonBoard but introduces you to the data encoding in JSON, and server connections in Java and C. #### Why You Should Take This Course This course is perfectly tailored for anyone looking to expand their skill set in IoT, whether you are a complete beginner or have prior experience. The practical projects progressively build your capabilities, ensuring you don’t just learn theory but also apply what you've absorbed effectively. The use of a well-structured series of modules allows you to master each concept before moving on, creating a strong foundation for further study within the specialization. Additionally, the course takes a hands-on approach, allowing you to work with actual hardware and software tools, which helps solidify your life-long learning skills. By the end of the course, you will have the knowledge and confidence to tackle more advanced projects in IoT, app development, and even game development—not to mention a new appreciation of what you can build with IoT technologies. #### Conclusion In short, **"Internet of Things: Setting Up Your DragonBoard™ Development Platform"** is a stellar introduction to IoT development that combines learning with practical experience. Whether you're looking to pivot your career towards technology or enhance your existing knowledge base, this course will equip you with the essential skills you need to succeed. Don't hesitate; jump on the IoT bandwagon today and start creating the future!

Syllabus

Introduction

Welcome to the Internet of Things! Before diving into this course give us a chance to let you know what it is all about! We will walk you through a module by module outline that will give you highlights on the interesting aspects 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.

Board Bring up

The new and exciting DragonBoard™ 410c is now available! In this module you will get introduced to the new all-in-one board, get an overview of all its amazing features and find out how you can get one yourself. We will then walk you through the registration process, and how to get your board started up for the first time! By the end of this module you will know enough about the DragonBoard™ 410c to begin using it for the fun projects that are to come later in this course and in the rest of the courses in the Internet of Things specialization.

Setting up your Developing Environment

In order to easily communicate with your DragonBoard™ 410c it is essential to set up a developing environment. In this lesson we will talk about Android Studio as our preferred IDE (Integrated Development Environment), we will show you how and where to download it as well as walk you through the installation process on both Mac/Linux and Windows. As an Android developer you will need a variety of tools, these tools come bundled with the Android Studio download and are referred to as the SDK (Software Developer Kit). This lesson will cover accessing the SDK and utilizing the various tools it has to offer. ADB (Android Debug Bridge) and Fastboot are among the tools we will be using most throughout this course. It is with these tools that you will be able to access your board at all levels and make crucial changes needed for development.

Changing your Operating System

The DragonBoard™ 410c is capable of running a variety of different operating systems, that being said you are free to chose the operating system that you find is best fit for you. Now, we understand that there is a diverse user base for this board and would like to cover as much as possible in this lesson so everyone can enjoy it! Whether you are a Windows user or a Mac user, or prefer Android over Ubuntu, there is a video or two here for you! In this lesson we will help you choose an operating system to best fit for your needs, we will then cover the download, flashing and installation process for all currently available operating systems. Because of the diverse nature of this board we will teach you multiple ways to flash your new operating system and provide a pro's and con's list for the different methods. By the end of this lesson switching between operating system will be easy and exciting for users of all skill levels.

Rescuing your Bricked Board

No one expects to damage their new DragonBoard™ 410c, but sometimes accidents happen. This module is dedicated to helping you not only prevent these accidents from happening, but also to fixing any problems should your board become damaged in any way. Here we will go over the difference between a soft brick and a hard brick and why they are two things you want to avoid.

Creating your First Application

Welcome to Module 6! In this module we will be creating your first Android App to port to the DragonBoard™ 410c. This “Network Test” App will give you a teaser for the programmatic feats you will be able to accomplish with the DragonBoard™! You will learn about the different GPS and Location Services available on Android and how to access Bluetooth and Wi-fi Data. This module will briefly go over the importance of the Android Manifest and asking the Users for the proper permissions. Lastly, we’ll spice up our application by playing around with Intents and enabling the application to facilitate the above connectivity and network tests. This may sound like a lot, but don’t worry! We will help you get on your feet and by the end of this module, you’ll have coded a neat little application.

Native Development Kit (NDK)

In Module 7, will give you a general introduction and brief overview of Android Studio’s Native Development Kit (NDK). The NDK allows us users to program Android applications using C/C++. The NDK utilizes the Java Native Interface (JNI) to facilitate code and interaction between Java and C/C++. This tool was created for users who either have existing C/C++ libraries or plan to use libraries only available in C/C++. Android Studio has a specific build and compilation process catered specifically for NDK Applications that we will explain and cover in this Module. Once we have a better understanding of the NDK, we will create a straightforward “Hello World!” application.

CALIT2 Bird Application

Who doesn’t love a good game to pass time? In this Module, we will create a more advanced and interactive Android Application / Game! We will be creating our version of FlappyBird--CalliBird or Calit2Bird, as we like to call it. We will cover the basics of the game by defining certain parameters. First, we have what we call our “Actors”. You can think of “Actors” as any part of the game that appears on the screen (the obstacles and the bird). In the game, we also define our own Location system and a Map class that will handle the different movements in the game. Next we define our game processor which is the backbone of the game. Game Processor ensures your score is constantly updated, delegates the movements to the Map class, and detects collisions, to name a few. Lastly, we will cover the importance of interfaces and its application to this Android App. Interfaces will enable us to 1. play CalliBird / Calit2Bird using any form of input we want (using touch, a sensor, a controller, etc.) and 2. render the game in any display we have (a screen, an led block, etc.). There is a lot of freedom with this game so you will be able to spice it up and make it your own!

Monitoring your DragonBoard™ 410c

Congratulations! You’ve made it to the last module of Course 2! In this Module we will cover a more advanced NDK Application. This application is a bit more challenging than prior applications because it is coded in both Java and C. Regardless of the rigour, we know you’ll be able to accomplish this feat! As for the application, we will be turning our DragonBoard™ 410c into a web server! This web server will detail information regarding the DragonBoard™ 410c’s connectivity, GPIOs, and any other statuses you may want to add. We will pull the information from the DragonBoard™ and encode it in a JSON format using Java, then use C to establish a server connection and send the data out. We will walk you through our code and thought processes so that you can gain a better understanding of how to use the NDK to run Android Applications as well as a taste of what the Internet of Things is all about.

Overview

Do you want to develop skills to prototype mobile-enabled products using state-of-the-art technologies? In this course you will build a hardware and software development environment to guide your journey through the Internet of Things specialization courses. We will use the DragonBoard™ 410c single board computer (SBC). This is the first in a series of courses where you will learn both the theory and get the hands-on development practice needed to prototype Internet of Things products. This c

Skills

Reviews

very helpful to learn this course and ahead this will more help

Very good course, it has a decent mix of theory and practice to dive into the board's specifics.

Really have been a very helpful course. Many things I got out of this course.\n\nMost importantly being able to work with gradle is enough :)

Great content, the guys although young, nailed the subject. Hope the next course is as good as this.

course will give you lots of information about dragonboard from basics ,also introduce to android studio and application .which is interesting to learn