How dow we build is a smart object? Ioannis Chatzigiannakis - - PowerPoint PPT Presentation

how dow we build is a smart object
SMART_READER_LITE
LIVE PREVIEW

How dow we build is a smart object? Ioannis Chatzigiannakis - - PowerPoint PPT Presentation

Smart Objects Open Source Hardware How dow we build is a smart object? Ioannis Chatzigiannakis Sapienza University of Rome Lecture 2 Product Development Lifecycle What should our smart object do? The Definition of User Experience (UX)


slide-1
SLIDE 1

Smart Objects

Open Source Hardware Ioannis Chatzigiannakis

Sapienza University of Rome

Lecture 2

How dow we build is a smart

  • bject?

Product Development Lifecycle

slide-2
SLIDE 2

What should our smart object do? What do the users expect from our smart object?

The Definition of User Experience (UX) “User experience” encompasses all aspects of the end-user’s interaction with the company, its services, and its products.

Don Norman and Jakob Nielsen

slide-3
SLIDE 3

The Definition of User Experience (UX)

◮ Meet the exact needs of the customer ◮ without fuss or bother ◮ Next comes simplicity and elegance: produce products that are a joy to own, a joy to use. ◮ . . . goes far beyond giving customers what they say they want ◮ . . . go beyond checklist of features

The Definition of User Experience (UX) “In order to achieve high-quality user experience in a company’s offerings there must be a seamless merging of the services of multiple disciplines, including engineering, marketing, graphical and industrial design, and interface design.”

Don Norman and Jakob Nielsen

How dow we build is a smart

  • bject?

UX Design Process

slide-4
SLIDE 4

Product Development Lifecycle The need for a prototyping process

◮ Need to interact with users. ◮ Tangible objects convey more than story boards & wireframes. ◮ Mock-ups are a first important step.

◮ Need for fast & low-cost mock-ups ◮ 3D printing

◮ How can we add some basic functionality ?

◮ Need for interactive mock-ups ◮ Developing hardware prototypes require electrical engineers ? ◮ Open Source Hardware.

Arduino UNO

slide-5
SLIDE 5

Arduino UNO Arduino UNO components

USB Plug:

  • 1. Power Arduino
  • 2. Exchange Data with PC
  • 3. Receive new program

External Power Supply:

  • 1. Recommended: 7 . . . 12

V

  • 2. Limit: 6 . . . 20 V

ATmega328P Microcontroller:

  • 1. 32KBytes FLASH

(program)

  • 2. 1KBytes EEPROM
  • 3. 2KBytes Internal SRAM
  • 4. Clock: 16MHz (≃ 20

Input/Output:

  • 1. 14 Digital I/O
  • 2. 6 PWM Digital
  • 3. 6 Analog Inputs

Sense-Think-Act Paradigm

Sense-Think-Act is a popular interaction paradigm

  • 1. Sense – observe the environment
  • 2. Think – based on the observasion, make a decision
  • 3. Act – based on the decision, perform some action(s)

Sense-Think-Act: Physical Computing

Almost all systems that use physical computing will have a combination of the following

  • 1. Sense → Input – signal/informing going into the boards

◮ Buttons Switches, Light Sensors, Flex Sensors, Humidity Sensors, Temperature Sensors . . . ◮ Internet Services (next semester)

  • 2. Think → Processing – processing of input, internal

processing, decision making

  • 3. Act → Output – signal/information going out of the boards

◮ LEDs, DC motor, servo motor, a piezo buzzer, relay, an RGB LED . . . ◮ Internet Services (next semester)

slide-6
SLIDE 6

External Components for Sensing and Acting External Components for Sensing and Acting External Components for Sensing and Acting Prototyping Circuits Solderless Breadboard

One of the most useful tool. ◮ A breadboard is easier than soldering ◮ A lot of those little holes are connected, which ones? ◮ Sometimes breadboards break Each row (horiz.) of 5 holes are connected. Vertical columns called power bus are connected vertically

slide-7
SLIDE 7

A Simple Example Type of External Components Analog vs Digital Input/Output

Microcontrollers are digital devices ◮ ON or OFF ◮ Digital signals are discrete ◮ Analog signals are anything that can be a full range of values. ◮ Discrete NOT continuous

Converting Analog value to Digital

slide-8
SLIDE 8

ADC – Analog to Digital Converter

  • 1. contains 6 pins for ADC
  • 2. 10-bit analog to digital converter
  • 3. Maps input voltages 0 . . . 5 volts → number between 0

. . . 1023

A Smart Dekstop Lamp

◮ Motion-controlled Lamp ◮ User is approaching – turn on lights. ◮ No user present – turn off lights. ◮ How do we sense if user is present?

◮ Multiple ways ◮ One possible way: Ultrasonic Sensor (Cost: 4 e)

◮ How do we switch on/off the lamp?

◮ Multiple ways ◮ One possible way: Relay (Cost: 2 e)

A Smart Dekstop Lamp: A simplified schema

◮ The ultrasonic sensor measures the distance to the closest

  • bject

◮ Arduino reads the measurement ◮ If the distance is small enough, Arduino switches the relay on ◮ The relay lets the current flow and the lamp switch on ◮ If the distance is large, Arduino switches the relay off ◮ The relay interrupts the current flow and the lamp switches off

Many possibilities

◮ Change Relay → Servo ◮ Multiple Relays ◮ Multiple Ultrasonic Sensors ◮ . . .

slide-9
SLIDE 9

Different Arduino Boards Open Source Hardware

Reference Designs ARE PROVIDED "AS IS" AND "WITH ALL FAULTS. Arduino SA DISCLAIMS ALL OTHER WARRANTIES, EXPRESS OR IMPLIED, REGARDING PRODUCTS, INCLUDING BUT NOT LIMITED TO, ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE Arduino SA may make changes to specifications and product descriptions at any time, without notice. The Customer must not rely on the absence or characteristics of any features or instructions marked "reserved" or "undefined." Arduino SA reserves these for future definition and shall have no responsibility whatsoever for conflicts or incompatibilities arising from future changes to them. The product information on the Web Site or Materials is subject to change without notice. Do not finalize a design with this info ARDUINO and other Arduino brands and logos and Trademarks of Arduino SA. All Arduino SA Trademarks cannot be used without owner's formal permission This file is licensed under : CC-SA-BY-NC ATMEGA328P-PU 3x2 M +5V GND +5V +5V GND GND 8x1F-H8.5 10x1F-H8.5 6x1F-H8.5 GND +5V 100n GND 47u 47u GND GND GND GND GREEN GND +5V YELLOW YELLOW M7 USB-B_TH GND NCP1117ST50T3G 100n GND MF-MSMF050-2 500mA +5V +5V 100n GND YELLOW GND FDN340P +5V GND GND +5V 100n +5V ATMEGA16U2-MU(R) GND 100n 3x2 M +5V GND GND CG0603MLC-05E CG0603MLC-05E BLM21 1M 1K 1K 1K 1K GND 10K 10K 10K 10K 100n 1u 1K 1K 1K 1K 22R 22R 22R 22R 1u 1M 22p 22p GND 2x2 M - NM GND LMV358IDGKR LMV358IDGKR TS42031-160R-TR-7260 CSTCE16M0V53-R0 16MHZ 8x1F-H8.5 CD1206-S01575 CD1206-S01575 16MHz GND 10uH +5V 100n ZU4 (ADC5)PC5 28 (ADC4)PC4 27 (ADC3)PC3 26 (ADC2)PC2 25 (ADC1)PC1 24 (ADC0)PC0) 23 (SCK)PB5 19 (MISO)PB4 18 (MOSI)PB3 17 (SS)PB2 16 (OC1)PB1 15 (ICP)PB0 14 (AIN1)PD7 13 (AIN0)PD6 12 (T1)PD5 11 (T0)PD4 6 (INT1)PD3 5 (INT0)PD2 4 (TXD)PD1 3 (RXD)PD0 2 GND 8 VCC 7 AVCC 20 AREF 21 XTAL1 9 XTAL2 10 RESET 1 AGND 22 ICSP 1 2 3 4 5 6 IOL 1 2 3 4 5 6 7 8 IOH 1 2 3 4 5 6 7 8 9 10 AD 1 2 3 4 5 6 C2 PC1 PC2 ON RX TX D1 1 1 2 2 3 3 X2 1 2 3 4 P$1 P$1 P$2 P$2 1 IN 3 OUT 4 2 U1 C4 F1 C7 L T1 C1 U3 (AIN0/INT1)PD1 7 (AIN2/PCINT11)PC2 5 (CTS/HWB/AIN6/TO/INT7)PD7 13 (INT4/ICP1/CLK0)PC7 22 (INT5/AIN3)PD4 10 (OC0B/INT0)PD0 6 (OC1A/PCINT8)PC6 23 (PCINT5)PB5 19 (PCINT6)PB6 20 (PCINT7/OC0A/OC1C)PB7 21 (PCINT9/OC1B)PC5 25 (PCINT10)PC4 26 (PD0/MISO/PCINT3)PB3 17 (PDI/MOSI/PCINT2)PB2 16 (RTS/AIN5/INT6)PD6 12 (RXD1/AIN1/INT2)PD2 8 (SCLK/PCINT1)PB1 15 (SS/PCINT0)PB0 14 (T1/PCINT4)PB4 18 (TXD1/INT3)PD3 9 (XCK/AIN4/PCINT12)PD5 11 AVCC 32 D+ 29 D- 30 GND 3 PAD 33 RESET(PC1/DW) 24 UCAP 27 UGND 28 UVCC 31 VCC 4 XTAL1 1 XTAL2(PC0) 2 C5 ICSP1 1 2 3 4 5 6 Z1 Z2 GROUND 2 1 L1 RESET-EN 2 1 R2 1 8 RN2A 2 7RN2B RN2C 3 6 RN2D 4 5 RN1A 1 8 RN1B 2 7 RN1C 3 6 RN1D 4 5 C6 C8 RN4A 1 8 RN4B 2 7 RN4C 3 6 RN4D 4 5 RN3A 1 8 RN3B 2 7 RN3C 3 6 RN3D 4 5 C3 R1 C9 C11 JP2 1 2 3 4 U5A 2 3 1 U5B 6 5 7 8 4 RESET 1 2 3 4 5 IN 1 ON/OFF 3 NC/FB 4 OUT 5 GND 2 POWER 1 2 3 4 5 6 7 8 D2 D3 Y1 2 1 L2 C10 +5V +5V GND AREF AREF RESET RESET VIN VIN VIN M8RXD M8RXD M8TXD M8TXD SCK SCK PWRIN D- D+ +3V3 +3V3 +3V3 MISO MOSI SS SS DTR GATE_CMD CMP USBVCC USBVCC USBVCC XTAL2 XTAL1 TP_VUCAP RD- RD- RD+ RD+ RESET2 RESET2 MISO2 MISO2 MOSI2 MOSI2 SCK2 SCK2 USHIELD UGND UGND XUSB XT2 XT1 XT1 RXLED TXLED AD0 AD1 AD2 AD3 AD4/SDA AD4/SDA AD5/SCL AD5/SCL IO2 IO1 IO0 IO3 IO4 IO5 IO6 IO7 IO8 IO9 PB4 PB5 PB6 PB7 L13 AVCC + + X1 POWERSUPPLY_DC21MMX

USB

ORIGIN GND_TP TP_PWRIN TP_VIN TP_5V TP_3V3 TP_RESET TP_A0 TP_A1 TP_A2 TP_A3 TP_A4 TP_A5 TP_0 TP_1 TP_2 TP_3 TP_4 TP_5 TP_6 TP_7 TP_8 TP_9 TP_10 TP_11 TP_12 TP_13 TP_AREF TP_SDA TP_SCL TP_XT1 TP_XT2 TP_ONL TP_RX TP_TX TP_TXL TP_RXL TP_DTR TP_USBVCC TP_VUCAP TP_XT3 TP_XT4 TP_PB4 TP_PB5 TP_PB6 TP_PB7 TP_MISO2 TP_RESET2 TP_MOSI2 TP_SCK2 TP_XUSB TP_D- TP_D+ TP_USH TP_UGND TP_GATE TP_LCMD TP_LL TP_CMP GND_TP1 TP_5V1

A B C D E 1 2 3 4 5 6 7 8 A B C D E 1 2 3 4 5 6 7 8

io 0 io 0 io 0 io 0 io 0 io 0 io 0 io 0 io 0 io 0 io 0 io 0 io 0 io 0 io 0 io 0 io 0 io 0 io 0 io 0 pwr 0 pwr 0 pwr 0 pas 0 io 0 io 0 in 0 pwr 0 pas 0 pas 0 pas 0 pas 0 pas 0 pas 0 sup 0 sup 0 sup 0 sup 0 sup 0 sup 0 pas 0 pas 0 pas 0 pas 0 pas 0 pas 0 pas 0 pas 0 pas 0 pas 0 pas 0 pas 0 pas 0 pas 0 pas 0 pas 0 pas 0 pas 0 pas 0 pas 0 pas 0 pas 0 pas 0 pas 0 sup 0 sup 0 pas 1 pas 1 sup 0 pas 0 pas 0 pas 0 pas 0 sup 0 sup 0 sup 0 sup 0 pas 0 pas 0 sup 0 sup 0 pas 0 pas 0 pas 0 pas 0 pas 0 pas 0 pwr 0 pwr 0 pwr 0 io 0 io 0 io 0 io 0 io 0 io 0 sup 0 in 0 in 0 pas 0 pas 0 pas 1 pas 1 sup 0 pas 1 pas 1 sup 0 sup 0 pas 1 pas 1 sup 0 pas 0 pas 0 sup 0 pas 0 pas 0 pas 0 sup 0 sup 0 sup 0 sup 0 pas 1 pas 1 sup 0 io 0 io 0 io 0 io 0 io 0 io 0 io 0 io 0 io 0 io 0 io 0 io 0 io 0 io 0 io 0 io 0 io 0 io 0 io 0 io 0 io 0 pwr 0 io 0 io 0 pwr 0 pwr 0 in 0 pas 0 pwr 0 pwr 0 pwr 0 io 0 io 0 sup 0 pas 1 pas 1 pas 0 pas 0 pas 0 pas 0 pas 0 pas 0 sup 0 sup 0 sup 0 pas 1 pas 1 pas 1 pas 1 pas 1 pas 1 pas 1 pas 1 pas 1 pas 1 pas 1 pas 1 pas 1 pas 1 pas 1 pas 1 pas 1 pas 1 pas 1 pas 1 sup 0 pas 1 pas 1 pas 1 pas 1 pas 1 pas 1 pas 1 pas 1 pas 1 pas 1 pas 1 pas 1 pas 1 pas 1 pas 1 pas 1 pas 1 pas 1 pas 1 pas 1 pas 1 pas 1 pas 1 pas 1 pas 1 pas 1 pas 1 pas 1 pas 1 pas 1 pas 1 pas 1 pas 1 pas 1 pas 1 pas 1 sup 0 pas 0 pas 0 pas 0 pas 0 sup 0 in 0 in 0
  • ut 0
in 0 in 0
  • ut 0
V+ V- pwr 0 pwr 0 pas 2 pas 2 pas 1 pas 1 pwr 0 pas 0 pas 0 pas 0 in 0 in 0 pas 0 pas 0 pwr 0 pas 0 pas 0 pas 0 pas 0 pas 0 pas 0 pas 0 pas 0 pas 0 pas 0 pas 0 pas 0 pas 1 pas 1 pas 0 pas 0 sup 0 pas 0 pas 0 pas 0 pas 0 pas 0 pas 0 pas 0 pas 0 pas 0 pas 0 pas 0 pas 0 pas 0 pas 0 pas 0 pas 0 pas 0 pas 0 pas 0 pas 0 pas 0 pas 0 pas 0 pas 0 pas 0 pas 0 pas 0 pas 0 pas 0 pas 0 pas 0 pas 0 pas 0 pas 0 pas 0 pas 0 pas 0 pas 0 pas 0 pas 0 pas 0 pas 0 pas 0 pas 0 pas 0 pas 0 pas 0 pas 0 pas 0 pas 0 pas 0 pas 0 pas 0 pas 0 pas 0 pas 0 pas 0 pas 0 pas 0 pas 1 pas 1 sup 0 pas 1 pas 1 1 2 3 4 5 6 7 8 9 10 11 12 13

Arduino(TM) UNO Rev3

USB boot En SDA SCL

MicroBit

◮ designed by the BBC for use in computer education in the UK ◮ teach broad audience how to program ◮ targeting schools & K-12

MicroBit - Components

slide-10
SLIDE 10

MicroBit - Micro Code Environment MicroBit – Details

Micro USB Plug ◮ Power ◮ Program nRF51822 ARM Cortex-M0:

  • 1. 256KBytes FLASH

(program)

  • 2. 16KBytes Internal SRAM
  • 3. Clock: 16MHz
  • 4. Bluetooth LE

3-axis accelerometer sensor 25 LEDs in a 55 array Input/Output:

  • 1. 17 Digital I/O
  • 2. 3 PWM Digital
  • 3. 6 Analog Inputs
  • 4. SPI
  • 5. I2C
  • 6. 2 Buttons

Cost: 27 e

LilyPad Arduino LilyPad Arduino – Components

slide-11
SLIDE 11

LilyPad Arduino – Details

FTDI connector ◮ USB Plug LiPo charger/power Supply ATmega168 Microcontroller:

  • 1. 16KBytes FLASH

(program)

  • 2. 1KBytes Internal SRAM
  • 3. Clock: 32MHz

Input/Output:

  • 1. 14 Digital I/O
  • 2. 6 PWM Digital
  • 3. 6 Analog Inputs

Cost: 18 e

Arduino/Genuino 101 Arduino/Genuino 101 – Components Arduino/Genuino 101 – Details

USB Plug External Power Supply: ◮ Similar to Arduino Uno Intel Curie Microcontroller:

  • 1. 196KBytes FLASH

(program)

  • 2. 24KBytes Internal SRAM
  • 3. Clock: 32MHz
  • 4. Bluetooth LE
  • 5. 6-axis

accelerometer/gyro

  • 6. Neural Network Pattern

Matching Engine Input/Output:

  • 1. 14 Digital I/O
  • 2. 4 PWM Digital
  • 3. 6 Analog Inputs

Cost: 40$

slide-12
SLIDE 12

NodeMCU ESP8266 NodeMCU ESP8266 – Components NodeMCU ESP8266 – Details

Micro USB Plug LiPo charger/power supply Tensilica L106 32-bit RISC Microcontroller:

  • 1. 32KBytes FLASH

(program)

  • 2. 128KBytes Internal

SRAM

  • 3. Clock: 80MHz
  • 4. 802.11 b/g/n WiFi

Input/Output:

  • 1. 16 Digital I/O
  • 2. SPI
  • 3. I2C

Cost: 2$

Spark Core/Photon

slide-13
SLIDE 13

Spark Core/Photon – Components Spark Core/Photon – Details

Micro USB Plug STM32F205 120Mhz ARM Cortex M3:

  • 1. 1MBytes FLASH

(program)

  • 2. 128KBytes Internal

SRAM

  • 3. Clock: 120Mhz
  • 4. 802.11 b/g/n WiFi

Device Cloud

  • 1. Over the Air Update
  • 2. Device Management
  • 3. Fully Managed

Connectivity Input/Output:

  • 1. 18 Digital I/O
  • 2. 9 PWM Digital
  • 3. 8 Analog Input
  • 4. SPI
  • 5. I2C

Cost: 19$

Seeeduino LoraWAN Seeeduino LoraWAN – Components

slide-14
SLIDE 14

Seeeduino LoraWAN – Details

Micro USB Plug JST2.0 Lipo battery input ATSAMD21G18 32-Bit ARM Cortex M0+:

  • 1. 256KBytes FLASH

(program)

  • 2. 32KBytes Internal SRAM
  • 3. Clock: 48Mhz

LoRaWAN GPS Receiver Input/Output:

  • 1. 20 Digital I/O
  • 2. 1 PWM Digital
  • 3. 6 Analog Input
  • 4. 4 Grove Connectors

Cost: 49$

Raspberry Pi Raspberry Pi – Components Raspberry Pi – Details

Broadcom BCM2837 4 × ARM Cortex-A53:

  • 1. 1GB SDRAM
  • 2. Clock: 1.2GHz

Storage: microSD Networking

  • 1. 10/100 Ethernet
  • 2. 2.4GHz 802.11n
  • 3. Bluetooth LE

GPU: Broadcom VideoCore IV @ 400 MHz Input/Output:

  • 1. 40 GPIO
  • 2. HDMI
  • 3. Audio
  • 4. 4 USB

Cost: 36e

slide-15
SLIDE 15

Assignment #1

◮ Preparatory step for your prototype ◮ Browse the web to learn about Arduino project ◮ Make a list of all the capabilities you encounter

◮ e.g., can sense light, can rotate wheel, can switch light on, etc. ◮ useful → you will learn about available features

◮ Think of a Smart Product

◮ In terms of Sense-Think-Act ◮ What Input/Sensors do you need? ◮ What Output/Actuators you could use?

Further Reading

  • 1. Usability 101: Introduction to Usability

https://www.nngroup.com/articles/usability-101-introduction-to-usability/

  • 2. Geoffrey Moore: Crossing the Chasm
  • 3. Make: Magazine

https://makezine.com/

  • 4. Instructables

https://www.instructables.com/

  • 5. Hackster

https://www.hackster.io/

  • 6. Adafruit

https://www.adafruit.com/

  • 7. Seeedstudio

https://www.seeedstudio.com/

  • 8. Sparkfun

https://www.sparkfun.com/

  • 9. Getting Started with the Arduino/Genuino 101

https://www.arduino.cc/en/Guide/Arduino101