Overview of Arduino IoT
Platforms
राजेश एम ् / RAJESH M
वैज्ञा नक / अ भयंता ‘D' / Scientist/Engineer ‘D‘
राष्ट्रीय इलेक्ट्रॉ नकी एवं सूचना प्रौद्यो गकी संस्थान (रा.इ.सू.प्रौ.सं.)/ National Institute of Electronics and
Information Technology (NIELIT)
इलेक्ट्रॉ नकी एवं सूचना प्रौद्यो गकी मंत्रालय/ Ministry of Electronics and Information Technology ( भारत
सरकार/ Government of India
कालीकट/ Calicut
एन ऐ टी कैं पस प . ओ ./ NIT Campus PO,
कालीकट / Calicut - 673601.
इ-मेल : rajesh.m@nielit.gov.in
दूरभाष: 0495-2287266 (Ext-219)
मोबाइल न.: +919447217649
Agenda
● Arduino platform overview
● Arduino hardware platforms
● Arduino Software platforms
● Embedded Systems - Programming Languages
● Familiarizing Arduino
Arduino Platform features
● Arduino Hardware
○ Arduino has over the years released over 100 hardware products: boards, shields, carriers,
kits and other accessories. In this page, you will find an overview of all active Arduino
hardware, including the Nano, MKR and Classic families.
○ https://www.arduino.cc/en/hardware
● Arduino Software
○ Arduino IDE
○ Supports Windows, Linux & MAC OS Platforms
○ The new major release of the Arduino IDE is faster and even more powerful! In addition to a
more modern editor and a more responsive interface it features autocompletion, code
navigation, and even a live debugger.
○ https://www.arduino.cc/en/software
Arduino Uno Baseboard- Classic Arduino Family
Features
● ATmega328 - Microcontroller
● GPIO
● UART
● I2C
● SPI
● ADC
● Timer
● http://ww1.microchip.com/downloads/en/DeviceDoc/ATmega48A-PA-88A-PA-168A-PA-328-P-DS-D
S40002061A.pdf
Why Peripherals for IoT?
● Sensors Interfacing
○ Analog - ADC
○ Digital - GPIO
● Actuators
○ Relay
● Serial
○ Connectivity
● Timer
○ Real time applications
Arduino IDE
● Install the IDE
○ Arduino IDE 2.0.3 Latest release
Programming Languages for Microcontrollers
● Assembly Language Programming
● C
● C++
● Python
● RUST
Embedded C/C++
● Data Types, Variables, Keywords
● Operators
● Arrays, pointers
● Structure
● Functions
● Class
C programming
#include<stdio.h>
int main()
printf(“Welcome to the world of C\n”);
return 0;
}
Assembly Language Programming
AREA CODE, READONLY
START:
MOV R0,#21
ADDs R0,R1,R2
BACK: JNE BACK
Compilation
● On PC we can install compilers (TC, BCC, GCC…)
○ Example: gcc hello.c
○ ./a.out
● Using IDE
○ Eclipse
○ Visual studio
C programming stages
C programming for Embedded Targets
● Embedded C?
○ Is it different from Generic C?
○ Why new compiler for Microcontrollers ?
Embedded C
● There is only one ‘C’ but need to work for different platforms
● Embedded C is a set of language extensions for the C programming language
by the C Standards Committee to address commonality issues that exist
between C extensions for different embedded systems.
● Major differences
○ Memory specific pointers
○ Platform specific intrinsic or extrinsic library functions
○ Types Defined Macros
How to Compile - Embedded C
● Cross Compilers
○ arm-linux-gcc
○ riscv-linux-gcc
○ gcc-ar
Integrated Development Environment - IDE
● Arduino IDE
● Keil
● Code Composer Studio
● ADS
● IAR Workbench
The First Program
● Start the Arduino IDE
○ Open tools
Examples
THANK YOU
You can find us at:
21
www.nielit.gov.in/calicut
rajesh.m@nielit.gov.in
11/24/2020 NIELIT CALICUT