Sketching with Hardware

Day 2












GIF by Robin Davey, http://robindavey.co.uk/

Course Overview

1Monday Fundamentals, Keyboard Hacking, Experiments
2Tuesday Arduino, Project Topic
3Wednesday Brainstorming Day
4Thursday Own Project
5Friday Own Project
  Saturday
  Sunday
6Monday Own Project
7Tuesday Final Presentation, Wrap Up

Day 2

09:00 Arduino Introduction
10:00 Analog IO
11:00 Sketching Circuits
12:00 Break
13:00 More Sensors
14:00 Whatever you like
15:00 Introduction to our Topic
16:00 Brainstorming Ideas

"Hello, Computer!"

II



Quelle: UTEXAS

Arduino


Image Source: ArduinoArts

Arduino — Connected


Image Source: SirLeech

Arduino provides (some) power

Arduino provides (some) power

Arduino Basics

void setup() {
	// Execute these lines ONCE ON BOOT
}


void loop() {
	// Execute these lines ALL THE TIME
}

Serial Console

void setup() {
	Serial.begin(115200);
}

void loop() {
	Serial.println("Hello world!");
}

Digital Input/Output

Digital Output: LED

int LED_PIN = 12;

void setup() {
	pinMode(LED_PIN, OUTPUT);
}
void loop() {
	digitalWrite(LED_PIN, HIGH);
	delay(500);
	digitalWrite(LED_PIN, LOW);
	delay(500);
}

Digital Input: Button

int BUTTON_PIN = 2;
void setup() {
	Serial.begin(115200);
	pinMode(BUTTON_PIN, INPUT);	// Make pin an input
}
void loop() {
	int value = digitalRead(BUTTON_PIN);	// Read what's on that pin
	Serial.println(value);
}

Digital Input: Button

"It does not work!" ☹

→ Residual voltage keeps the pin HIGH!

→ We need to force it LOW somehow!

Digital Input: Pull Up/Down

Keep the Pin HIGH, drag it LOW with the button

int BUTTON_PIN = 2;
void setup() {
	Serial.begin(115200);
	pinMode(BUTTON_PIN, INPUT);	// Make pin an input
	digitalWrite(BUTTON_PIN, HIGH);	// Activate internal pull-up resistor
}
void loop() {
	int value = digitalRead(BUTTON_PIN);	// Read what's on that pin
	Serial.println(value);
}

Analog Input/Output

Arduino Analog Input

int potPin = A0;

void setup() {
	Serial.begin(115200);
}

void loop() {
	int value = analogRead(potPin);	// Read A0
	Serial.println(value);
}

Analog Output

PWM — Pulse Width Modulation

Analog Output

PWM — Pulse Width Modulation

Analog Output: RGB LED

photo credits © todbot.com

Pins: R G − − B B
GND = Cathode = −

Movement!

Analog Output: Servo

  • PWM freq is 50 Hz (i.e. every 20 ms)
  • Pulse width ranges from 1 to 2 ms
  • 1 ms = full anti-clockwise position
  • 2 ms = full clockwise position

Analog Output: Servo

Analog Output: Servo

Servo Guide

Check out the Servo Guide (SwH 2017A)!

"Servos, Oida!"

Digital Output

High Load!

Digital Output

Transistor / MOSFET

Digital Output

Transistor / MOSFET

Digital Output

Transistor / MOSFET

Digital Output

Transistor / MOSFET



Tutorial: How to design a transistor circuit (Youtube)
(Hint: Use an all-in-one motor driver instead)

More Actuators

  • Motors
  • Servos, Steppers
  • Speakers
  • Solenoids
  • LEDs (RGB)
  • Piezos

More Sensors

  • Light
  • Temperature
  • Distance (Infra Red, Ultra Sonic)
  • Magnetic Sensors (Reed, Hall-Effect)

Shields, Hats, ICs

  • Motor Drivers (e.g. Pololu)
  • Displays (OLED, TFT etc.)
  • Sound Modules
  • WiFi Modules (e.g. ESP8266)
  • Bluetooth (e.g. HC05)

Shapes & Sizes

  • Arduino Uno & Co.
  • Arduino MEGA
  • ATtiny based
  • ESP8266 / ESP32
  • STM32 based
  • ARM Cortex based
  • Raspberry Pi [Zero]

Topic ...

Topic:

Home

Automation Automation

Naught-☺-mation

Gadgets that don't play by the rules






Image Source: Useless Duck Company

Topic: Home Naught-o-mation


  • Build a gadget!
  • Make it pretty and potentially useful!
  • Add that certain twist
  • Over-engineer it!
  • Make it "smart" — in a bad way ☻
  • Connect it to the internet for no reason at all!
  • Aim for tragedy / comedy / art rather than usefulness



Image Source: Useless Duck Company

Some Inspiration

Enhance!

Re-Purpose!

Change Context!

Make Things Move!

Incorporate Toys!

Inspiration: Sh**ty Robots


Components You May Use

  • Microcontroller: Arduino UNO/MEGA/MEGA ADK
  • Buttons, Sliders, Sensors
  • Motors, Servos, Speaker(s)
  • Smart phone, Bluetooth, WiFi, …

Recommended Search Terms

  • Upcycling
  • Arduino
  • DIY
  • Maker Scene
  • Internet of Things
  • "Sh**ty Robots" / "Internet of Sh*t"

Brainstorming!



















GIF by Robin Davey, http://robindavey.co.uk/

Brainstorming!




  • Project Name
  • Main Idea
  • Features
  • Sensors? Actuators?
  • Software? Complexity? Costs?
  • Plan B?


Raus an die frische Luft!

Image Source: Heinrich Kopp: Kinderreigen

Homework: Elaborate.


  • Present your final ideas tomorrow.
  • Don't forget to document everything!

End of Day 2