Introduction to Device Programming for IoT: C Edition

Chris Howd, Matt Dixon, Microsoft

Want to become a part of the growing IoT developer community? This course teaches you how to write C-language software that controls input and output from sensors and electrical components connected to Raspberry Pi and Arduino-compatible embedded devices.

We all know that smart devices play a big role in our day-to-day lives, and that more devices pop up every day. Have you considered that there needs to be a developer behind the scenes for every one of those devices? If you’re ready to change the world by converting the envisioned gadgets of tomorrow into digital reality, join this course and take your first steps toward programming for the Internet of Things.

Learn the basics of embedded device programming by implementing various projects on Raspberry Pi and MXChip AZ3166 devices (the AZ3166 is Arduino-software compatible). Learn how to write the software that controls the hardware (temperature sensors, photo cells, and more), and get started making a difference with procedural programming.

Begin with an intro to embedded programming, exploring embedded device types and the inputs and outputs for devices and sensors. Then work your way through a series of hands-on lab projects that teach you how to develop the hardware/software interface, help you to understand C programming for embedded devices, and explore basic data management for a resource-constrained device. From there, dive into embedded solutions that use your own circuit designs to solve real-world problems.

After completing this course, students will be able to develop embedded device systems that capture and process data from analog and digital sensors commonly found in IoT solutions.

NOTE: The lab project work in this course is based on the hardware found in the Microsoft IoT Pack for Raspberry Pi and the MXChip IoT DevKit.You may want to purchase in advance of starting the course.

What will you learn

  • Describe the characteristics of an embedded device 
  • Configure the development environment for an embedded device
  • Create a simple program that accesses GPIO pins
  • Implement features of the C programming language in a constrained resource environment
  • Configure I/O libraries and take pinout readings 
  • Develop a simple embedded device application
  • Explain how to construct simple circuits using common electrical components
  • Describe the sensor and device resources available in the marketplace
  • Implement sensors within an application using SPI and I2C
  • Explain how to develop a solution that uses multiple sensors
  • Build the circuit for a solution  
  • Develop a software/hardware solution for a common scenario

Dates:
  • 1 October 2019
Course properties:
  • Free:
  • Paid:
  • Certificate:
  • MOOC:
  • Video:
  • Audio:
  • Email-course:
  • Language: English Gb

Reviews

No reviews yet. Want to be the first?

Register to leave a review

Show?id=n3eliycplgk&bids=695438
NVIDIA
More on this topic:
72abaeb3-0856-4e89-906a-8b6eef402a1f-153a590f7f3c.small Introduction to C++
Get a brief introduction to the C++ language from the experts at Microsoft....
More from 'Computer Science':
C2750912-8e29-426f-91b8-c03b0dd9ee8f-d3ce8d3f0f02.small Autonomous Mobile Robots
Basic concepts and algorithms for locomotion, perception, and intelligent navigation...
776db6bd-54a0-4625-ba3d-1204fb922859-1df9ac41ffdf.small HTML5 Coding Essentials and Best Practices
Learn how to write Web pages and Web sites by mastering HTML5 coding techniques...
798930ae-2d16-45f2-8306-734fc7f5a22b-0d7af0d752c8.small Databases: OLAP and Recursion
The On-Line Analytical Processing section of this course introduces star schemas...
B01ee61e-1ac1-4a07-b5f4-348a4b4868d6-934315464fc2.small Databases: Semistructured Data
This course includes the following components: XML Data; JSON Data; XPath and...
7575d263-e153-4acc-b972-dfcf8edd9b0c-43dbae799606.small Databases: Advanced Topics in SQL
This course includes the following components: Indexes and Transactions; Constraints...
More from 'edX':
C2750912-8e29-426f-91b8-c03b0dd9ee8f-d3ce8d3f0f02.small Autonomous Mobile Robots
Basic concepts and algorithms for locomotion, perception, and intelligent navigation...
73397b09-f425-4c17-9f8c-b6377dd3da37-4a135f73b38e.small The New World of Arnold Schönberg's Piano Music
This course will introduce you to the solo piano works of Arnold Schönberg ...
Dcbce6da-643b-4e20-a996-de702a8d3b66-dec49be1974e.small Developmental Psychology: A Journey of Growth in Relationships
To what extent are we truly aware of the decisive influence of our relationships...
776db6bd-54a0-4625-ba3d-1204fb922859-1df9ac41ffdf.small HTML5 Coding Essentials and Best Practices
Learn how to write Web pages and Web sites by mastering HTML5 coding techniques...
0c44b6a7-1953-42ed-aa91-acbcbfdb3174-a31eed73a6a9.small Comparative Democratic Development Part I: Conditions of Democracy
Conditions of Democracy is the first course in a two-part series intended as...

© 2013-2019