Hello, everyone. I'm Professor James Won-Ki Hong from the Department of Computer Science and Engineering at POSTECH. Today I will introduce Arduino, which is probably the most popular IoT device development platform in the world. The Table of Contents for this lecture is as follows. First I will introduce what Arduino is. I will then introduce various versions of Arduino boards, as well as add-ons that you cannot touch to the board to do various things. I will then briefly introduce some Arduino projects. So, what is Arduino? Well, Arduino is an open source electronics platform, based on easy-to-use hardware and software. It is intended for anyone, beginners, as well as experts, making interactive things. Arduino is the most popular IoT device development platform. Arduino can sense the environment by receiving inputs from various sensors, and affect it's surroundings by controlling lights, motors, and other actuators. Arduino consists of an Arduino board hardware, plus IDE software. Arduino board is a microcontroller board used to sense and actuate. IDE, Integrated Development Environment, is a software tool that helps you write, compile, upload, code to the Arduino board. The core component of Arduino board is microcontroller. Well, what is a microcontroller? You can think of a small controller on a small chip. It contains a microprocessor, memory such as RAM, ROM, flash memory and various input and output ports as illustrated in the diagram on the left-bottom of this slide. It is usually embedded in a device to control the device. It is used in many embedded systems such as smartphones, toys, household appliances, mobile platforms, automobiles, cameras and so on. Companies such as Intel, Arm, Atmel, Samsung have been producing microcontrollers. Arduino programming language based on wiring is used to develop Arduino programs. In the next module, we will tell you more about this Arduino programming language. IDE is a cross platform application development tool written in Java, and includes a code editor with features such as cutting, pasting, searching, and replacing text. You can easily compile the code, upload the program to the board, and execute the program. We refer to this Arduino program developed using IDE as a sketch. To look at how Arduino works, first you have to connect the Arduino board to your PC using a USB cable. This is needed for a serial communication between the board and PC. USB A type is connected to PC, and USB B type is connected to the Arduino port. Now, you connect the sensors to the Arduino port, then you create a sketch on your PC. You then compile the sketch and upload it to the board. When the program runs on the Arduino board, sensors can collect data and send it to the PC. Arduino is an open-source hardware and software platform. Many of the projects made with Arduino board are open, and well documented. That means you can utilize a lot of existing codes, and extend them to suit your needs. The Arduino program language can be expanded through C++ libraries and AVR codes can be added to your Arduino code. In addition to the Windows Operating System it also supports Mac OS and Linux. Arduino can easily connect digital, as well as analog sensors. And actuators. That is, it can easily connect temperature sensors, GPS locator sensors. Accelerator sensors, and so on. It can also be connected to actuators such as LEDs, switches, and electrical motors. So why should we use Arduino? Well, the answer is very simple. It is because of ease of use. The platform is easy to use. And the program language that Arduino uses is very easy. It provides a simple structure and interface so that even beginners can learn quickly. As for the development environment of Arduino, the IDE is also very simple. In addition, you can easily find [COUGH] many information you need through YouTube videos, documents, and tutorials on the Internet. This is because many people are already using it and sharing their experiences and codes. Many types of shields can be added. Arduino shields are modular circuit boards that piggyback onto the Arduino board to perform extra functionality. Typical examples are Ethernet shield and Wi-Fi shield. Let's not forget about the price is very cheap. Arduino board is somewhere between 30 to $40 each. I think most people should be able to afford this. And the price compared to performance is very good. Therefore, it is most widely used around the world. Now, let's look at various flavors of Arduino. There are many different versions of Arduino board available. They are largely divided depending on the number of input/output channels, the form factor and the built-in processor. Uno, Leonardo, Due, Micro, Mini and Nano, LilyPad, Esplora, and Mega are some of the available flavors. In the following slides, we will explain each board in more detail. The most popular version is Arduino Uno. In my opinion, this Arduino board is the best one to get started in developing an interactive thing. Many people are working on various projects using the Uno version. And it is the most well documented of the whole Arduino family. Basically, it has a size of 68.6 millimeter in width and 53.4 millimeter in length, and it is slightly larger than a credit card. It weighs 25 grams, and it's very lightweight. The Uno version consists of microcontroller, 14 digital I/O pins, 6 analog inputs, A USB connection, and a power jack. Leonardo is a slightly upgraded version of Uno. It looks very similar to Uno, but has more than 20 digital I/O pins. And the biggest difference is that it allows users to do programming to control input devices like keyboard and mouse, and it has a built-in USB capability. Arduino Due has a faster processor and a larger number of pins than Uno. Arduino Due is the first Arduino board based on a 32-bit ARM core microcontroller. It has 54 digital I/O pins, and is suitable for larger Arduino projects. Arduino Micro is a very small version, as its name suggests. In addition to Micro, other small size versions such as Nano, Mini are also available. Micro version is the smallest board in the Arduino family. Because it has all the features of the Leonardo version, we also call it a small version of Leonardo. Arduino LilyPad is a version designed for wearable applications. It is used to add various effects or functions by attaching it to the clothes by using conductive thread and conductive fabric materials together. Arduino Esplora is also a derived version Leonardo, and used mainly for a game controller. It includes a joystick, slider, temperature sensor, accelerometer, microphone, and light sensor. It is designed for people who want to start a fun project about Arduino without having to learn electronics. Arduino Mega is most powerful board, as the name suggests. It has 54 pins so that you can operate many communication pins. Further, it has a larger amount of memory so that it can be used for large, complex projects. There exists many boards similar to the Arduino board. BeagleBoard and Maple made by LeafLabs. Orange board made by creators, kocoafab, a good examples of these. They are designed for a use similar to the Arduino board, with some performance differences. The biggest difference between these and Arduino is that Arduino is an open source, but the others are not. In this section, I will explain Arduino add-ons, which are shields, modules, sensors, and actuators. There are shields which are modules and actuators that are used to attach add-on to Arduino board. There are many kinds of Arduino shields. For example, GPS shield has a function to receive GPS location data. Power driver shield allows you to use a computer power supply for other, or other power source. LCD shield serves as displaying information through the screen. Touchscreen shield is a shield that provides touchscreen capability. Data logging shield that can easily store and load data. Sound shield allows sound or music to be played. Communication shields are used to provide communication capability between the Arduino board and externals entities, such as aggregators or gateways. XBee shield allows the Arduino board to communicate wirelessly using the XBee protocol. Ethernet shield allows wired communication using Ethernet. Wi-Fi shield enables wireless communications with a Wi-Fi-based stations and devices. Modules are functionally equivalent to shields. There exist various modules that can be added to the Arduino board. GPS module, Bluetooth module, RFID module, are examples of modules. The modules can be connected to the board using jump cables. It does not sit on the Arduino board, and you can easily access other pins without any physical or electrical endurance. However, a shield is something that sits on top of the Arduino board, and literally shields it. The right bottom images illustrates a XBee shield Sitting on top of an Arduino UNO board. The sensors that can be connected to the Arduino board as add-ons are really diverse. The gas sensor can be used to detect gas. You can also use an ultrasonic distance measuring sensor to measure the distance to an object. You can use the temperature and humidity sensor to measure the current temperature and humidity. You can measure the degree of bending, or degree of curve using the flex sensor. You can also use the sound sensor to detect ambient sounds and measure their strength. The photoresistor Is an illuminance sensor, it can change the value of resistance according to the amount of light. The brighter the surroundings, the higher the resistance value. On the contrary, the darker the surroundings, the lower the resistance. The Force sensitive sensor is a pressure sensor. It is used to measure how much pressure is currently being, Received. Piezo sensor is a vibration sensor. Hall effect sensor is a sensor whose voltage varies with the intensity of the magnetic field. Tilt sensor is a sensor that measures a tilt of object. When the tilt is detected, the circuit of the sensor flows electricity. Actuators can also be connected to Arduino. Actuators are used to perform some physical actions, such as turn on a switch, light, display info, and so on. The Arduino board receives data through the sensor, performs appropriate processing based on it, and gives commands to the actuator. LED is a physical actuator. It can be turned on or off. The LED according to the Arduino's command. Besides, it is also the actuators role that enable the display to show on the LCD screen. It is also actuator's role that makes the sound from the speaker, And, turn the motor. In this section, we'll introduce some interesting Arduino projects. Well, there are many diverse and exciting projects that use Arduino. Perhaps, thousands of them. RearEye is an Arduino project that provides an additional eye. An ultrasonic distance measuring sensor, Is attached to the LilyPad version. If you're going around attaching it to your pocket or backpack, you can measure the distance to nearby objects in real time. Next is a camera that moves along the movement of surroundings. At the bottom, there are sensors placed in various directions to detect a movement by. These sensors capture the movement of nearby people or things, and move cameras along the direction they move. Here are many other interesting and exciting projects. An LED Matrix can turn on and off the LED to suit the mood, and speed of the music. A flash control that turns on and off the LEDs of various colors. And, there is a project like Google Earth Walk that can project a screen of Google Map onto the road floor and walking to find the way in person. These references can be used to find other interesting Arduino projects. Let me wrap up this lecture on introduction to Arduino here. In the next lecture, I will introduce how to program Arduino boards to perform various interactions with sensors and actuators. Goodbye for now.