subject

Coursera: The Arduino Platform and C Programming

 with  Ian Harris
The Arduino is an open-source computer hardware/software platform for building digital devices and interactive objects that can sense and control the physical world around them. In this class you will learn how the Arduino platform works in terms of the physical board and libraries and the IDE (integrated development environment). You will also learn about shields, which are smaller boards that plug into the main Arduino board to perform other functions such as sensing light, heat, GPS tracking, or providing a user interface display. The course will also cover programming the Arduino using C code and accessing the pins on the board via the software to control external devices. Please note that this course does not include discussion forums.

Upon completing this course, you will be able to:
1. Outline the composition of the Arduino development board
2. Describe what it means to program the board's firmware
3. Read board schematics
4. Install Arduino IDE
5. Describe what "shields" are and how they are used
6. Specify the role of libraries in the use of shields
7. Compile and run a program
8. Name C Variables and Types
9. Name common C operators
10. Use conditionals and loops
11. Explain functions, their definition and invocation
12. Explain the implications of global variables
13. Undertake the Arduino build process
14. Describe the role of the tools behind the IDE
15. Describe how to invoke functions in classes
16. Explain the structure of an Arduino sketch
17. Access the pins of the Arduino
18. Differentiate between digital and analog pin
19. Debug embedded software
20. Explain the importance of controllability and observability in the debugging process
21. Describe common debugging architectures for embedded systems
22. Explain how the UART Serial communication protocol works
23. Describe how the Arduino Serial library performs serial communication

Syllabus

Arduino Environment
This module provides an introduction to the Arduino environment which is composed of three things: the Arduino board, the Arduino IDE, and the Arduino-compatible shields together with their libraries. We first investigate the board, discussing all of its main components, inputs, and outputs. We discuss how each component is used and we examine the board schematic to see how they are connected. We then discuss the Arduino Integrated Development Environment (IDE) which is used primarily to write, compile, and upload code. We survey the interface of the IDE and discuss how to install and use it. We also examine the use of shields to extend the functionality of an Arduino-based system. We discuss how shield libraries provide a useful abstraction to facilitate programming.

C Programming
This module covers the basics of the C programming language which will be used to write code for the Arduino. The course first covers basic syntax, variables, and types. Most of the basic C operators are presented. Conditional statements (if, switch) and loops (while, for) are described. The concept of functions is presented together with how to define and call functions. Creation and use of global variables is explained.

Arduino Programs
This module describes the composition of an Arduino program, or sketch, and the process by which it is compiled and uploaded. The Arduino IDE is a user interface for the software tools which actually compile and upload the program. We outline the use of these tools in the build process. We describe the basic structure of a sketch, including the use of the setup() and loop() functions. The main interface of an Arduino is through its pins, so we describe how to access those pins from a sketch.

Module 4
This module is an introduction on debugging embedded software on an Arduino. We discuss the basic debugging requirements: controllability and observability. The debugging environment available for an Arduino UNO is limited, so we describe how to use the UART communication protocol to gain controllability and observability. We present the use of the Serial library to communicate with the Arduino through the serial monitor.

12 Student
reviews
Cost Free Online Course (Audit)
Provider Coursera
Language English
Certificates Paid Certificate Available
Calendar 4 weeks long
Sign up for free? Learn how

Disclosure: To support our site, Class Central may be compensated by some course providers.

+ Add to My Courses
FAQ View All
What are MOOCs?
MOOCs stand for Massive Open Online Courses. These are free online courses from universities around the world (eg. Stanford Harvard MIT) offered to anyone with an internet connection.
How do I register?
To register for a course, click on "Go to Class" button on the course page. This will take you to the providers website where you can register for the course.
How do these MOOCs or free online courses work?
MOOCs are designed for an online audience, teaching primarily through short (5-20 min.) pre recorded video lectures, that you watch on weekly schedule when convenient for you.  They also have student discussion forums, homework/assignments, and online quizzes or exams.

12 reviews for Coursera's The Arduino Platform and C Programming

Write a review
8 out of 8 people found the following review useful
2 years ago
Ken Sellers completed this course, spending 2 hours a week on it and found the course difficulty to be very easy.
As I was taking this class, I often wondered who the target audience was. Although the class has no listed prerequisites, I noticed a lot of engineering jargon being used without ever defining what it meant. I'm not sure that non-technical people would get much out of the lectures. On the other hand, the lectures we Read More
As I was taking this class, I often wondered who the target audience was. Although the class has no listed prerequisites, I noticed a lot of engineering jargon being used without ever defining what it meant. I'm not sure that non-technical people would get much out of the lectures. On the other hand, the lectures were mostly at a superficial level, so I'm not sure that technical people would get much out of them either. The only topic that got a (somewhat) deep dive was serial communication, and it wasn't clear why; users of the Arduino don't need to understand it any more or less than any other aspect of how an Arduino works.

There were other issues. The programs we wrote had to be pasted into a submission form that removed all the carriage returns when you hit Save; I had to manually fix my program each time. Perhaps most frustratingly, you could follow the assignment instructions to the letter, but after you submitted you might find out that the grading criteria included other requirements. In one case people asked about it, and it turned out that the grading criteria were wrong, but they were never updated. My sense was that not much effort went into the creation of this course.
Was this review helpful to you? YES | NO
10 months ago
Jc completed this course, spending 5 hours a week on it and found the course difficulty to be medium.
How difficult was the course-well, C Programming could hardly considered as an intro, you will write a Fibonacci code, difficult. Some details of the board were interesting, nevertheless I am doubting the use of them. I suggest you search the internet, watch videos, read docs=more useful knowledge in less time. Do not Read More
How difficult was the course-well, C Programming could hardly considered as an intro, you will write a Fibonacci code, difficult. Some details of the board were interesting, nevertheless I am doubting the use of them. I suggest you search the internet, watch videos, read docs=more useful knowledge in less time. Do not buy the stuff recommended. I got a kit long before, a cheap one. I finished that and enrolled, just because I had already that board. As for the debugging part: No practice at all-it would have been very interesting and important.
Was this review helpful to you? YES | NO
a year ago
Lindsey Mcwilliams partially completed this course, spending 3 hours a week on it and found the course difficulty to be very easy.
These courses are designed to make you pay for the class to get access to all of the materials. I'm interested in learning and not in getting a certificate. You can only watch four videos per week without paying, and there are about nine videos per week. The introductory videos count against the four and are worthless. Read More
These courses are designed to make you pay for the class to get access to all of the materials. I'm interested in learning and not in getting a certificate. You can only watch four videos per week without paying, and there are about nine videos per week. The introductory videos count against the four and are worthless. The readings (and video lecture content as best I can tell) are taken from other websites; the class makes it easier to find useful websites.
Was this review helpful to you? YES | NO
0 out of 1 people found the following review useful
2 years ago
Takis Papadopoulos completed this course.
Too easy, no clear teaching objectives. It is a complete waste of time (and money if you go for the certificate)
Was this review helpful to you? YES | NO
2 months ago
profile picture
Ellie Ireland completed this course, spending 2 hours a week on it and found the course difficulty to be easy.
This course was great for me because I had no experience with the Arduino. It moved at a steady pace that wasn't too fast or slow for a beginner.
Was this review helpful to you? YES | NO
0 out of 1 people found the following review useful
2 years ago
Panagiotis Bouklis completed this course, spending 2 hours a week on it and found the course difficulty to be easy.
Was this review helpful to you? YES | NO
0 out of 3 people found the following review useful
2 years ago
Marco Neves completed this course.
Very interesting for the ones that want to start a training in Arduino plataform. No previous experience required. The course is selfpaced so you can define your own pace of learning.
Was this review helpful to you? YES | NO
a year ago
Israfil completed this course.
Was this review helpful to you? YES | NO
2 years ago
Mario completed this course.
Was this review helpful to you? YES | NO
2 years ago
Colin Khein completed this course.
Was this review helpful to you? YES | NO
10 months ago
profile picture
Vanessa Guapo completed this course.
Was this review helpful to you? YES | NO
2 years ago
Harsh Bhasin completed this course.
Was this review helpful to you? YES | NO

Class Central

Get personalized course recommendations, track subjects and courses with reminders, and more.

Sign up for free