Crazy about Arduino: Your End-to-End Workshop - Level 1
4.3 (25 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
2,753 students enrolled
Wishlisted Wishlist

Please confirm that you want to add Crazy about Arduino: Your End-to-End Workshop - Level 1 to your Wishlist.

Add to Wishlist

Crazy about Arduino: Your End-to-End Workshop - Level 1

Learn how to build creative projects with the amazing Arduino development platform
4.3 (25 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
2,753 students enrolled
Created by Idan Gabrieli
Last updated 5/2017
English
English
Curiosity Sale
Current price: $10 Original price: $100 Discount: 90% off
30-Day Money-Back Guarantee
Includes:
  • 3 hours on-demand video
  • 2 Articles
  • 11 Supplemental Resources
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
What Will I Learn?
  • Understand the Arduino Eco-System
  • Utilize the digital and analog interfaces
  • Develop sketch using the the Arduino IDE
  • Design and review circuits using Fritzing
  • Wire “Things” together
  • Build a project with switches, LEDs, resistors and motion sensor
  • Learn and use the C language syntax
View Curriculum
Requirements
  • Basic electronics background (The Theory Behind Electronics - A Beginners Guide)
  • Arduino IDE (Free)
  • Fritzing (Free)
  • Basic Electronics Components (Arduino Starter Kit)
Description

“What we can do with Arduino is only limited by our imagination!”

The best way to understand if this course is really for you is by asking yourself few basic questions:

  • Do you like building “things” by yourself?
  • Are you looking for ways to easily combine software and hardware components?
  • Did you ever wondered how electronics devices are really working?
  • Do you have some creative idea and you just looking for ways to easily prototype it ?
  • Would you be excited to monitor and control the physical world with a software program that you created ?
  • Would you like to join the growing worldwide wave of Internet of Things Makers ?


If the answer is “YES” for most of the questions above than you just landed in the right place. Arduino is probably one of the most amazing development and prototyping platform today with endless possibilities for Do-It-Yourself Makers looking for ways to express their creative mind and technical capabilities. 

It is really up to us, we can build simple and fun projects to very complex autonomous systems that can interact with users and help us to better bridge between the physical and the digital worlds. 

This course is a starting point as part of a larger comprehensive training program divided to levels that are all about Arduino and the eco-system around it. Each course covers specific group of subjects to let you develop and grow your skills in a step-by-step pace while enjoying the long journey.

Are you ready to start being “Crazy” about Arduino....?  ;-)

******************************************************************************************************

Who is the target audience?
  • Anyone that is willing to get crazy about Arduino
  • Technology Innovators
  • Entrepreneurs
  • Electronics Makers
  • Students looking for ways to join the IoT wave
Students Who Viewed This Course Also Viewed
Curriculum For This Course
68 Lectures
03:08:46
+
Getting Started
6 Lectures 17:21

Welcome !

"Crazy about Arduino: Your End-to-End Workshop " is a new training program aiming to boost the innovation around the emerging opportunities coming with the wave of Internet Of Things, while using the Arduino development platform. 

The training program is divided to several courses\levels, where each course is aiming to teach group of subjects  related to Arduino in a fun and easy way. It is recommended to follow the program in the suggest sequence.

This course is Level 1 in the "Crazy about Arduino" program.

Preview 00:50

Important Recommendation!
00:08

Arduino is an amazing easy to use development platform that bridge the physical world with the digital world. 

In this chapter we will learn WHAT is Arduino and WHAT we can do with it ?

Preview 04:48

What kind of applications we can build with Arduino ? well, there are really endless applications we can build with Arduino.

Believe it or not, it is really limited by our imagination.... creative people around the world are creating innovative projects with Arduino. 

Endless Applications for Makers !
02:26

We will need some specific free software tools and of course some small amount of hardware components.

Preview 03:03

Before starting we need some specific software tools and some small amount of hardware components.

So what do you say, are you ready to start ?!

Are You Ready ? Hardware Checklist
06:06
+
Exploring the Arduino Platform
7 Lectures 32:24

In this section we will start to explore the Arduino features, functionalities and building blocks.

Preview 01:01

Reviewing the Arduino Uno R3 board:

  • Microcontroller
  • Universal Serial Bus (USB) connector
  • External power
  • Reset button
  • Light-Emitting Diodes (LEDs), labeled L, RX, TX, and ON
  • Power connections 
  • Analog input
  • Digital input and output 
The Arduino Uno Board
07:19

There are many types of Arduino boards available in the market, each with its own design, size and features that can be used to support different applications. 

Other Arduino Boards
02:36

Each Arduino board has set of functionalities and based on some project’s requirements more options may be needed. In that case two main expansion options are available: Shields or Modules.

Expansion Shields & Modules
06:09

The developing platform for Arduino is called Arduino IDE and it is including: code editor, simple mechanism to verify and load programs, monitor the serial port, manage libraries and more. The software we create is called “Sketch” and the language syntax is similar to C & C++.

Arduino IDE
05:41

Video demonstration of the Arduino Uno board, including an high level overview. 

High Level Board Overview
05:45

In the previous two chapters we saw the Arduino IDE software tool and the Arduino Uno board. Now it is time to combine between them, meaning write some simple sketch, upload it to the board and see some result !

Running Our First Program !
03:53

Test your Knowledge : The Arduino Platform
8 questions
+
Introduction to Arduino Programming
17 Lectures 35:34

Writing an Ardunio software requires a little bit background in programming, if you already have it than it is going to be like piece of cake for you... and if you don’t.....don’t worry we will do it in step by step. 

Preview 00:58

"Sketching in code" is all about trying things, letting our creative mind to flow, put less focus in that stage on making our code a perfect piece of art....  and more important build a step-by-step framework around your project.

"Big things have small beginnings"....

Sketching in Code
02:34

Every sketch we will write or use is usually based on the following basic structure: variables declaration, setup function, loop function and custom functions. 

Basic Sketch Structure
01:04

In almost all programs, we will probably need to store values, do some calculation, try to access specific pins numbers in Arduino and more. For that we can declare storage location that are called variables.

Variables Declaration - Why ?
02:03

While declaring a variable, we need to define the variable data type. The Arduino programming language support different very useful data types such as: Boolean, Byte, Char, Integer and more. 

Variables Declaration - Data Types
05:00

Some of the names that we may chose may not be the most readable names...., which is why many programmers have adopted certain naming guidelines or conventions. 

Variables Declaration - Naming Convention
01:26

The location of a variable declaration in a sketch actually determines where that variable can be used, or what is known as the variable scope. We have two types of variable scope: global variable and local variable

Variable Scope
02:19

setup() is the first function the Arduino program reads, and it runs only once. The second function, loop(), makes it possible for our sketch to run continuously, and it will begins just after the last statement in the setup() function has finished executing.

Setup and Loop Functions
01:30

In programming it is common practice is to divide big tasks to smaller tasks using functions. A function is a block of code that performs a specific task  that is repeating in program. Now instead of writing the same code all over again we can just call the function name... isn't that great ;-) ?

Custom Functions
02:27

An operator is a symbol that tells the compiler to perform specific mathematical or logical functions:

  • Arithmetic Operators
  • Relational Operators
  • Logical Operators
  • Bitwise Operators
  • Assignment Operators
  • Misc Operators
Operators
00:46

Control statements enable us to specify the flow of our program. Using them we can make decisions in specific locations, or to perform tasks repeatedly or to jump from one section of code to another one. 

There are two kinds of statements available in Arduino for controlling program flow: 

  • Conditional statements
  • Iterative statements 
Control Statements
01:06

if-else statement decides whether to execute another statement or decides which of two statements to execute.

If (You are Crazy about Arduino == TRUE) {

 keepLearning(nextChapter);

}

Control Statements: if-else
02:29

The switch statement is more complicated version of the if statement as it can execute one or more blocks of code, depending on a range of conditions.

Control Statements: switch
01:39

For loop is an iterative statement that allows to repeatedly execute lines of code in a loop a specified number of times.

Control Statements: for loop
02:47

The while statement or while loop, is used to continuously execute a statement so long as specific condition remains true.

Control Statements: while/do loop
02:11

One of the greatest thing in Arduino development environment is that it provide us an easy access to a very large amount of off-the-shelf ready to use functions that are grouped to libraries

Why to re-invent the wheel ? we better invest in developing the next generation autonomous car.....

Using Libraries
03:19

Comments are used to document what’s going on in a program for anyone reading the code and should be used any time we wish to explain what a program or a specific function is supposed to do.

Comments in Code
01:56

Test your Knowledge : Arduino Programming
9 questions
+
Learning by Doing
3 Lectures 08:59

Learning by doing is probably the best way to really understand something while enjoying the process and the outcome of the final project. 

Preview 00:49

In the next sections we are going to build our first Arduino project. The project is divided to several steps enabling us to learn each main subject by itself.  

It will be great! if you will build it also in parallel to the course. 

Our Arduino Project
01:48

In order to build a circuit, we have to connect circuit components together and a great tool for this purpose is the solderless breadboard. A breadboard is a simple prototyping plastic base board that easily allows us to wire up simple circuits without having to solder together parts to a custom printed circuit board. 

Breadboard
06:22
+
Step 1 - LEDs Test and Animation Wave
11 Lectures 35:03

Short introduction to what we are planning to build in Step one.

Preview 00:57

"Think before you do something" :-)

Before running into building the hardware and writing our software, let's review the main building blocks that are needed in this specific step. 

Project Building Blocks
00:40

LEDs are one of the most-used components in many projects and as you probably know, LED stands for light-emitting diode. Like all diodes components, LEDs allow current to flow in only one direction.

LEDs are polarized components, meaning we need to carefully connect them in the right direction!

Wiring LEDs
02:24

Reading digital inputs will help us to interact our Arduino with the external environment in real-time. In our case we are going to use very simple digital sensors that are called push buttons.

To read the status of a button, we first need to define a specific digital I/O pin as an input and use digitalRead(pin) function, where pin is the digital pin number to read. 

One thing that is important to add to this circuit is something that is called pull up or pull down resistors. 

Reading Digital Inputs
01:24

The main usage of pull down resistor is to set the default state of the input pin to 0v. 10kΩ is a fairly common pull down resistor value.

Pull Up/Down Resistors
04:04

Let's review the circuit design for this step using the Fritzing tool. Don't forget that you can download the files templates from the relevant chapter.

Circuit Design
02:41

Let's review the hardware setup relevant to this step and the behavior of the system

Project Review: Step-1A
03:31

The Sketch is the software code that we uploaded into the Arduino board. Let's understand the logic and program flow we used in this step.  

Don't forget that you can download the sketch files from this chapter !

Sketching in Code: Step-1A
08:47

When working with buttons, we cannot just look for the value of the switch to changed from low to high as we need to handle a problem that is called switch bouncing.

Buttons are mechanical devices that operate much more slower than our Arduino system. In other words, when we push a button down, the signal we will read does not just go from low to high, it bounces up and down between those two states for a few milliseconds before it settles.  

Handling Switch Bouncing
04:11

The Sketch is the software code that we uploaded into the Arduino board. Let's understand the logic and program flow we used in this step.  

Don't forget that you can download the sketch files from this chapter !

Sketching in Code: Step-1B
04:54

Let's review the hardware setup relevant to this step and the behavior of the system

Project Review: Step-1B
01:30

Test your Knowledge : LEDs Test and Animation Wave
7 questions
+
Step 2 - Control LEDs Speed and Brightness
14 Lectures 38:23

Short introduction to what we are planning to build in Step two.

Introduction
01:05

"Think before you do something" :-)

Before running into building the hardware and writing our software, let's review the main building blocks that are needed in this specific step.

Project Building Blocks
00:40

In addition to fixed resistors there are also variable resistors or resistors that their resistance can be adjusted by physical rotation. One common type of variable resistor is the potentiometer. The potentiometer has three pin connections: one in the center pin and one on each side. When someone is turning the shaft of a variable resistor, it increases the resistance between one side and the center and decreases the resistance between the center and the opposite side.

The Variable Resistor
02:28

Let's review the circuit design for this step using the Fritzing tool. Don't forget that you can download the files templates from the relevant chapter.

Circuit Design
01:17

Reading analog inputs will help us to better interact our Arduino with the external environment around us, As many sensors are providing analog output when measuring some property, like distance, temperature, speed, light brightness and much more.  

Reading Analog Inputs
02:43

Serial communication is used by two digital devices to talk to each other and in our case the USB connection is the serial communication protocol. We already used it to upload our source code to the Arduino board. 

Now, we can use the Serial Monitor included in the Arduino programming environment to actually “see” the values that the Arduino is reading from such external sensors.

Utilizing the Serial Monitor
03:48

While using the build-in delay function, “speed” will be measured in milliseconds and the relation is opposite, more delay is less speed. In that case some range normalization or mapping will be needed. 

Setting the LEDs Speed
06:32

The Sketch is the software code that we uploaded into the Arduino board. Let's understand the logic and program flow we used in this step.  

Don't forget that you can download the sketch files from this chapter !

Sketching in Code: Step-2A
03:41

Let's review the hardware setup relevant to this step and the behavior of the system

Project Review: Step-2A
04:03

For setting the LED brightness level we need to output a voltage between 0v and 5v.  We can’t do it directly in Arduino but the good news is that we can “get very close”.... 

We can generate analog output values by using a method called PWM while using a function called analogWrite().  
Writing Analog Output
01:36

PWM (pulse-width modulation) can be used to create the illusion of an LED being ON at different levels of brightness by turning the LED ON and OFF very rapidly, at around 500 cycles per second. 

A little bit magic with PWM
04:10

Before using the AnalogWrite() function we need to do some value mapping.

Setting the LEDs Brightness
01:05

The Sketch is the software code that we uploaded into the Arduino board. Let's understand the logic and program flow we used in this step.  

Don't forget that you can download the sketch files from this chapter !

Sketching in Code: Step-2B
02:41

Let's review the hardware setup relevant to this step and the behavior of the system

Project Review: Step-2B
02:34

Test your Knowledge : Control LEDs Speed and Brightness
11 questions
+
Step 3 - Motion Detector
6 Lectures 15:06

Short introduction to what we are planning to build in Step three.

Introduction
01:00

"Think before you do something" :-)

Before running into building the hardware and writing our software, let's review the main building blocks that are needed in this specific step.

Project Building Blocks
00:39

In physics, motion is a change in position of an object with respect to time and its reference point. A PIR sensor is a converter that measure a physical quantity (infrared radiation )and convert it into signal (ON/OFF).

The PIR Motion Detector
04:43

Let's review the circuit design for this step using the Fritzing tool. Don't forget that you can download the files templates from the relevant chapter.

Circuit Design
00:46

The Sketch is the software code that we uploaded into the Arduino board. Let's understand the logic and program flow we used in this step.  

Don't forget that you can download the sketch files from this chapter !

Sketching in Code: Step-3
04:25

Let's review the hardware setup relevant to this step and the behavior of the system

Project Review: Step-3
03:33

Test your Knowledge : Motion Detector
5 questions
+
Course Summary
4 Lectures 05:57

You made it !!!  :-) 

Almost at the finish line...
00:34

Let’s see in high level the flow of topics with a short summary per each one and also some recommendations for your next step moving forward ! 

What did we covered so far ?
04:16


Thanks for watching the first course in the "Crazy about Arduino" learning program, I hope you enjoyed it while learning one or two things :-) 

Best regards and good luck !

What Next ? Level 2 !
01:02

Bonus Lecture: Crazy about Arduino - Level 2 and Level 3
00:05
About the Instructor
Idan Gabrieli
4.0 Average rating
219 Reviews
8,518 Students
7 Courses
Senior Sales Engineer and Digital Entrepreneur (BS.c, MBA)

Staying Relevant

Learning and developing new skills is a critical factor for staying relevant in today’s fast-changing markets. This is true to individuals, small businesses, companies and even for countries. 

We can use those new skills to improve our daily work, increase our income, start a new job or maybe a small business and in general, innovate in amazing new directions. Nothing should stop you from setting and achieving new goals.

Started as an Engineer...

I was on born in a small “startup nation” called Israel, learned engineering and got also an MBA. For the last 10 years I am working in the software industry in several leading worldwide hi-tech companies, helping to discover business opportunities, present and demonstrate products, promote constant technology innovation and tailor complex solutions for customers. It is a challenging full time role but I like it :-)

Professional Instructor at Udemy

For the past 4 years I am teaching students all over the world to expand their horizon by learning new skills based on my knowledge and experience. I truly believe that online learning platforms are here to stay as they opened an amazing opportunities for almost everyone to learn from others and in addition share their knowledge and experience. 

I am Here :-)

If you need any help or you have some question, please feel comfortable to contact me for assistance before and after joining my courses.