CS4062 Masters in Interactive Media - Third Arduino Lecture - March 11th 2009 - University of Limerick. This lecture presents an introduction to motors, LEDs and Arduino with examples. This was aimed at a digital media / music technology masters student audience.
Embedded system course projects - Arduino CourseElaf A.Saeed
• Arduino IDE.
• P1-Arduino with led.
• P2-Arduino with push button.
• P3-Arduino with potentiometer.
• P4-Arduino with PWM.
• P5-Arduino with LCD.
• P6-Arduino with PIR.
• P7-Arduino with DHT11
• P8-Arduino with LM35.
• P9-Arduino with gas sensor.
• P10-Arduino with dc motor.
• P11-Arduino with Servo Motor.
• P12-Arduino with Bluetooth.
• P13-Arduino with ultrasonic.
• P14-Arduino with IR sensor.
--------------------------------------------------------
Email: elafe1888@gmail.com
linkden: www.linkedin.com/in/elaf-a-saeed-97bbb6150
facebook: https://www.facebook.com/profile.php?id=100004305557442
github: https://github.com/ElafAhmedSaeed
youtube: https://youtube.com/channel/UCE_RiXkyqREUdLAiZcbBqSg
slideshare: https://www.slideshare.net/ElafASaeed
Slideplayer: https://slideplayer.com/search/?q=Elaf+A.Saeed
Google Scholar: https://scholar.google.com/citations?user=VIpVZKkAAAAJ&hl=ar&gmla=AJsN-F7PIgAjWJ44Hzb18fwPqJaaUmG0XzbLdzx09
Arduino Workshop 3rd session
In this session, you will find
- What are the PWM pins and how it works?
- What is the serial monitor?
- What are the sensors?
- Start building a home automation system.
- Start using some sensors (LDR for light intensity - LM35 for temperature - PIR for personal infrared) on the home automation system.
The introduction to Arduino labs at Malmö University. These slides have been handed down since the beginning of Arduino. They have more authors then i can remember and should by no means be considered mine.
Embedded system course projects - Arduino CourseElaf A.Saeed
• Arduino IDE.
• P1-Arduino with led.
• P2-Arduino with push button.
• P3-Arduino with potentiometer.
• P4-Arduino with PWM.
• P5-Arduino with LCD.
• P6-Arduino with PIR.
• P7-Arduino with DHT11
• P8-Arduino with LM35.
• P9-Arduino with gas sensor.
• P10-Arduino with dc motor.
• P11-Arduino with Servo Motor.
• P12-Arduino with Bluetooth.
• P13-Arduino with ultrasonic.
• P14-Arduino with IR sensor.
--------------------------------------------------------
Email: elafe1888@gmail.com
linkden: www.linkedin.com/in/elaf-a-saeed-97bbb6150
facebook: https://www.facebook.com/profile.php?id=100004305557442
github: https://github.com/ElafAhmedSaeed
youtube: https://youtube.com/channel/UCE_RiXkyqREUdLAiZcbBqSg
slideshare: https://www.slideshare.net/ElafASaeed
Slideplayer: https://slideplayer.com/search/?q=Elaf+A.Saeed
Google Scholar: https://scholar.google.com/citations?user=VIpVZKkAAAAJ&hl=ar&gmla=AJsN-F7PIgAjWJ44Hzb18fwPqJaaUmG0XzbLdzx09
Arduino Workshop 3rd session
In this session, you will find
- What are the PWM pins and how it works?
- What is the serial monitor?
- What are the sensors?
- Start building a home automation system.
- Start using some sensors (LDR for light intensity - LM35 for temperature - PIR for personal infrared) on the home automation system.
The introduction to Arduino labs at Malmö University. These slides have been handed down since the beginning of Arduino. They have more authors then i can remember and should by no means be considered mine.
Intro to Arduino Class taught at CRASHspace by Quin (Qtechknow). Originally taught on August 11, 2012 at Crashspace, in LA. This revision patches the diagrams and fixes the code! Thanks to SparkFun who shared all of their original slides with me!
Arduino is an open- source computer hardware and software company, project and user community that designs and manufactures microcontroller-based kits for building systems consisting of digital devices, interactive objects that can sense and control in the physical world.
I have prepared this presentation when I was studying at Western Region Campus. I along with some of my friends conducted training for junior students on Arduino. Its day-1 presentation.
Arduino Lecture 4 - Interactive Media CS4062 Semester 2 2009Eoin Brazil
CS4062 Masters in Interactive Media - Fourth Arduino Lecture - March 18th 2009 - University of Limerick. This lecture presents a short review and introduction to programming concepts relevant to Arduino. This was aimed at a digital media / music technology masters student audience.
Intro to Arduino Class taught at CRASHspace by Quin (Qtechknow). Originally taught on August 11, 2012 at Crashspace, in LA. This revision patches the diagrams and fixes the code! Thanks to SparkFun who shared all of their original slides with me!
Arduino is an open- source computer hardware and software company, project and user community that designs and manufactures microcontroller-based kits for building systems consisting of digital devices, interactive objects that can sense and control in the physical world.
I have prepared this presentation when I was studying at Western Region Campus. I along with some of my friends conducted training for junior students on Arduino. Its day-1 presentation.
Arduino Lecture 4 - Interactive Media CS4062 Semester 2 2009Eoin Brazil
CS4062 Masters in Interactive Media - Fourth Arduino Lecture - March 18th 2009 - University of Limerick. This lecture presents a short review and introduction to programming concepts relevant to Arduino. This was aimed at a digital media / music technology masters student audience.
Serial 8 Channel AC 230V SSR and Dimmer Bluetooth InterfaceRaghav Shetty
The board can be used in application where dimming of 110-220v AC power is required like dimming of bulb or fan.The board can be control with Serial data from any microcontroller 0-100% dimming or ON/OFF control Main power(230v) completely isolated from microcontroller.
The board can be used in applications where dimming of 110-220V AC power is required like dimming of bulb or fan. The input can be simple 4 bit high/low signal from microcontroller working at 3V or 5V which is isolated with the use of opto-couplers. Total of 16 levels of power control can be set from totally off(0%) to full on(100%) as per input control levels.
Arduino Lecture 3 - Interactive Media CS4062 Semester 2 2009Eoin Brazil
CS4062 Masters in Interactive Media - Third Arduino Lecture - March 11th 2009 - University of Limerick. This lecture presents an introduction to motors, LEDs and Arduino with examples. This was aimed at a digital media / music technology masters student audience.
Arduino Lecture 2 - Electronic, LEDs, Communications and DatasheetsEoin Brazil
Continuing the coverage of the Arduino platform with some electronics revisions, an introduction to some communication issues, and some pointers about datasheets. Part of the Interactive Media Master's program at the University of Limerick.
The Fab Lab Life Cycle; Report of the FAB10 workshops; Pieter van der Hijden ...Pieter van der Hijden
The Fab Lab Life Cycle; Report of the FAB10 Workshops; Pieter van der Hijden* & Beno Juarez** with help from Enrico Bassi, Klaas Hernamdt, Massimo Menichinelli, Dirk van Vreeswijk, Anna Waldman-Brown
* Fab Lab Paramaribo (Suriname) & Sofos Consultancy (Amsterdam, The Netherlands), ** Fab Lab Lima (Peru)
FAB10 - International Fab Lab Conference, Barcelona, Spain, 2-8 July 2014
Diseño y demostración de un dimmer digital, basado en la plataforma Arduino.
Dimmer con 100 niveles de atenuación, y capaz de escoger el sector o LED que uno desee encender.
Codigo donwload https://www.dropbox.com/s/04fisp5lzk9d25y/Dimmer_Sistemas_Digitales.ino
A brief introduction to Arduino microcontroller platform hardware and programming for rapid prototyping, for more discussion and articles about different microcontroller platforms and tutorials please visit: http://elrayescampaign.blogspot.ca/
The Physical Web is a Speed Issue - Velocity 2015Scott Jenson
The web is trapped in the virtual world. We need a discovery service built into our phones so people can just 'walk up and use' anything. This is my keynote talk I gave at Velocity 2015
Pengontrol kecerahan lampu pijar menggunakan aplikasi android berbasis arduin...cahyaniafifah
Lampu pijar dinyalakan, diredupkan dan dicerahkan dengan mengatur dimmer switch. Potensio meter pada dimmer switch akan bergerak bersamaan dengan mini sevro dan dikontrol dengan aplikasi yang ada di android yang dihubungkan dengan arduino melalui bluetooth. Gerakan mekanik mini servo tersebut dapat diatur dengan aplikasi android yang telah kita buat.
Tecnologie didattiche.
Terza versione delle slide a supporto del corso per i docenti neo immessi in ruolo nel corrente anno scolastico della provincia di Torino.
Le tecnologie proposte non sono “la soluzione”, ma solo un punto di partenza dettato dalla mia esperienza e di quella dei tantissimi colleghi che ho incontrato nel mio cammino.
E’ uno starter kit e come tale deve essere inteso è da espandere e modificare secondo le necessità.
Ponendosi nelle condizioni del docente che non ha nessuna competenza tecnologica, nelle tre ore di corso l'obiettivo principale sarà quello di incominciare a conoscere gli strumenti di base per rendere più efficace il proprio lavoro ed essere in grado da solo di costruire un proprio Personal Learning Network che sfrutterà a sua volta per apprendere anche le tecnologie.
Dall'organizzazione del proprio lavoro all'uso di strumenti software.
Il corso, prevede anche una parte da svolgere on-line utilizzando Edmodo.
Electric cars are automobiles, which are powered by the electric engine and electric energy. The development of the electric vehicles is a very perspective and important process. Scientists and engineers managed to create electric engines which are no less effective than the ordinary engines used today. It is obvious that electric cars are more ecologically safe and require less energy for work. EVs provide fast acceleration by delivering power instantly to the wheels by providing high torque at low speeds; they give a feel of smooth and quick responsiveness (Technology).
Arduino Workshop Day 2 - Advance Arduino & DIYVishnu
Arduino Workshop Day 2 - IR, Ultrasonic & Temperature - Humidity Sensor Interfacing & Do It Yourself - Line Follower, Light Follower & Obstacle Avoider.
the servo motor by controlling the PWM signal and also control the speed and position of robot via Bluetooth or IOT.
Hexapod robot has static as well as dynamic stability which make it more stable.
Technology used: Servomotor, Arduino IDE, HC-05 Bluetooth, Arduino App
What will be quantization step size in numbers and in voltage for th.pdfSIGMATAX1
What will be quantization step size in numbers and in voltage for this Arduino Code? Using 5V
const int led1 = 2;
const int led2 = 3;
const int led3 = 4;
void setup() {
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
// initialize serial communication at 9600 bits per second:
Serial.begin(9600);
}
// the loop routine runs over and over again forever:
void loop() {
// read the input on analog pin 0:
int sensorValue = analogRead(A0);
int dataConv = sensorValue*(8.0/1024);
//write analog equvivalant data on led pins
switch(dataConv)
{
case 0: {
digitalWrite(led1,LOW);
digitalWrite(led2,LOW);
digitalWrite(led3,LOW);
break;
}
case 1: {
digitalWrite(led1,HIGH);
digitalWrite(led2,LOW);
digitalWrite(led3,LOW);
break;
}
case 2: {
digitalWrite(led1,LOW);
digitalWrite(led2,HIGH);
digitalWrite(led3,LOW);
break;
}
case 3: {
digitalWrite(led1,HIGH);
digitalWrite(led2,HIGH);
digitalWrite(led3,LOW);
break;
}
case 4: {
digitalWrite(led1,LOW);
digitalWrite(led2,LOW);
digitalWrite(led3,HIGH);
break;
}
case 5: {
digitalWrite(led1,HIGH);
digitalWrite(led2,LOW);
digitalWrite(led3,HIGH);
break;
}
case 6: {
digitalWrite(led1,LOW);
digitalWrite(led2,HIGH);
digitalWrite(led3,HIGH);
break;
}
case 7: {
digitalWrite(led1,HIGH);
digitalWrite(led2,HIGH);
digitalWrite(led3,HIGH);
break;
}
}
Serial.println(sensorValue); // print out the value you read:
Serial.println(dataConv);
delay(1000); // delay in between reads for stability
}
const int led1 = 2;
const int led2 = 3;
const int led3 = 4;
void setup() {
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
// initialize serial communication at 9600 bits per second:
Serial.begin(9600);
}
// the loop routine runs over and over again forever:
void loop() {
// read the input on analog pin 0:
int sensorValue = analogRead(A0);
int dataConv = sensorValue*(8.0/1024);
//write analog equvivalant data on led pins
switch(dataConv)
{
case 0: {
digitalWrite(led1,LOW);
digitalWrite(led2,LOW);
digitalWrite(led3,LOW);
break;
}
case 1: {
digitalWrite(led1,HIGH);
digitalWrite(led2,LOW);
digitalWrite(led3,LOW);
break;
}
case 2: {
digitalWrite(led1,LOW);
digitalWrite(led2,HIGH);
digitalWrite(led3,LOW);
break;
}
case 3: {
digitalWrite(led1,HIGH);
digitalWrite(led2,HIGH);
digitalWrite(led3,LOW);
break;
}
case 4: {
digitalWrite(led1,LOW);
digitalWrite(led2,LOW);
digitalWrite(led3,HIGH);
break;
}
case 5: {
digitalWrite(led1,HIGH);
digitalWrite(led2,LOW);
digitalWrite(led3,HIGH);
break;
}
case 6: {
digitalWrite(led1,LOW);
digitalWrite(led2,HIGH);
digitalWrite(led3,HIGH);
break;
}
case 7: {
digitalWrite(led1,HIGH);
digitalWrite(led2,HIGH);
digitalWrite(led3,HIGH);
break;
}
}
Serial.println(sensorValue); // print out the value you read:
Serial.println(dataConv);
delay(1000); // delay in between reads for stability
}
Solution
// Random LED Dots - from noise source
// Ed Nisley - KE4ANU - September 2015
//----------
// Pin assignments
const byte PIN_HEARTBEAT = 8; // DO - heartbeat LED
const byte PIN_SYNC = A3; // DO.
1. Interface a sensor/s, device/s with Arduino for data acquisition and display the data.
2. Interface Actuators with Arduino to Control motion to build an application.
3. Build a mechatronic system using Arduino, sensors, actuators and modules.
Ken will explore the application of React and React Native to hardware projects, and the lessons learned while building a remotely controlled robotic crossbow.
It covers several topics: basics, drivers and shields, GPIO, compilers and IDEs, hradware protocols I2C, SPI, UART. The presentation also provides several examples: DC motor control, stepper motor control, reading analog data ADC, what is DMA and a music equalizer (both software and hardware).
Pragmatic Analytics - Case Studies of High Performance Computing for Better B...Eoin Brazil
SCIENCE FOUNDATION IRELAND DIGITAL CONTENT WORKSHOP
Monday, July 25th 2011, Guinness Storehouse, Dublin
Session 4 - Data Analytics, Mining and Visualisation
Dr Eoin Brazil, Senior Software Developer and Tech Transfer Manager, Irish Centre for High End Computing (NUIG)
Pragmatic Analytics - Case Studies of High Performance Computing for Better Business and Big Data.
Introduction to Machine Learning using R - Dublin R User Group - Oct 2013Eoin Brazil
An introduction to machine learning using R as long talk for Dublin R User Group 8th Oct 2013 with full scripts, slides and data on GH at https://github.com/braz/DublinR-ML-treesandforests/
Bringing HPC to tackle your business problemsEoin Brazil
A short overview on how HPC can help tackle your business problems and where ICHEC can help you enhance your competitiveness by utilising high-performance computing.
Fat Nodes & GPGPUs - Red-shifting your infrastructure without breaking the bu...Eoin Brazil
A short overview on how GPGPUs and Fat Nodes can provide an approach to deal with exponential growth demands in computing that is found not just in major companies such as Google or YouTube but in many major Irish companies as well.
This hardware/software approach can accelerate your processing infrastructure whilst reducing its costs (CapEx and OpEx) and size.
Mixing Interaction, Sonification, Rendering and Design - The art of creating ...Eoin Brazil
This talk will focus on acoustic rendering, the rendering of scenarios and contexts from the viewpoint of sonic interaction design. Sonic interaction design sits at the crossroads between interaction design, auditory display, acoustics, interactive arts, and ubiquitous computing. The area focuses on the exploration and exploitation of sound to communicate meaning, information, and aesthetical / emotional qualities in interactive contexts. The practise and study of sonic rendering within the interaction loop between users and artefacts or environments for both functional and artistic applications will be discussed. Examples of sonic interventions and of sonic interactive installations are discussed to illustrate how human centric and experiential aspects within the interaction loop. This will show how interaction design techniques and acoustic production are used to create engaging sonic experiences. Case studies covered will include work in museum installations, auditory displays designed for public spaces, and artistic interventions. The talk will show how sonification and sonic interaction design supplements the related areas of sound production and of gestural interfaces. An overview of the techniques and methods will show how this occurs in practise.
What is Sonic Interaction Design ?
Examples include aesthetic and sonic quality assessment in product and interaction design: workshops and interaction with projects (e.g., SOb, CLOSED, COST SID).
Creative exploration of context and opportunities for interactive sound artefacts and for acoustic interventions.
Where does Sonic Interaction Design inform Acoustic Rendering ?
Room acoustics and Site sound - sound within a space or interface.
Context and Scenario, how these inform the rendering (how it is acoustically rendered, what is rendered, how will the rendering be interpreted)
Examples includes installations and interventions from various locations including various museums, airports, train stations, and galleries. Related work in products sound design will also be covered.
Arduino Lecture 2 - Interactive Media CS4062 Semester 2 2009Eoin Brazil
CS4062 Masters in Interactive Media - Second Arduino Lecture - March 6th 2009 - University of Limerick. This lecture presents an introduction to communications and the Arduino with examples. This was aimed at a digital media / music technology masters student audience.
Arduino Lecture 3 - Making Things Move and AVR programmingEoin Brazil
Further following up the Arduino set of lectures with topics on Motors, PWM, Trade-offs, and finally an example of directly programming an AVR chip. Part of the Interactive Media Master's program at the University of Limerick.
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Jeffrey Haguewood
Sidekick Solutions uses Bonterra Impact Management (fka Social Solutions Apricot) and automation solutions to integrate data for business workflows.
We believe integration and automation are essential to user experience and the promise of efficient work through technology. Automation is the critical ingredient to realizing that full vision. We develop integration products and services for Bonterra Case Management software to support the deployment of automations for a variety of use cases.
This video focuses on the notifications, alerts, and approval requests using Slack for Bonterra Impact Management. The solutions covered in this webinar can also be deployed for Microsoft Teams.
Interested in deploying notification automations for Bonterra Impact Management? Contact us at sales@sidekicksolutionsllc.com to discuss next steps.
Search and Society: Reimagining Information Access for Radical FuturesBhaskar Mitra
The field of Information retrieval (IR) is currently undergoing a transformative shift, at least partly due to the emerging applications of generative AI to information access. In this talk, we will deliberate on the sociotechnical implications of generative AI for information access. We will argue that there is both a critical necessity and an exciting opportunity for the IR community to re-center our research agendas on societal needs while dismantling the artificial separation between the work on fairness, accountability, transparency, and ethics in IR and the rest of IR research. Instead of adopting a reactionary strategy of trying to mitigate potential social harms from emerging technologies, the community should aim to proactively set the research agenda for the kinds of systems we should build inspired by diverse explicitly stated sociotechnical imaginaries. The sociotechnical imaginaries that underpin the design and development of information access technologies needs to be explicitly articulated, and we need to develop theories of change in context of these diverse perspectives. Our guiding future imaginaries must be informed by other academic fields, such as democratic theory and critical theory, and should be co-developed with social science scholars, legal scholars, civil rights and social justice activists, and artists, among others.
Connector Corner: Automate dynamic content and events by pushing a buttonDianaGray10
Here is something new! In our next Connector Corner webinar, we will demonstrate how you can use a single workflow to:
Create a campaign using Mailchimp with merge tags/fields
Send an interactive Slack channel message (using buttons)
Have the message received by managers and peers along with a test email for review
But there’s more:
In a second workflow supporting the same use case, you’ll see:
Your campaign sent to target colleagues for approval
If the “Approve” button is clicked, a Jira/Zendesk ticket is created for the marketing design team
But—if the “Reject” button is pushed, colleagues will be alerted via Slack message
Join us to learn more about this new, human-in-the-loop capability, brought to you by Integration Service connectors.
And...
Speakers:
Akshay Agnihotri, Product Manager
Charlie Greenberg, Host
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...UiPathCommunity
💥 Speed, accuracy, and scaling – discover the superpowers of GenAI in action with UiPath Document Understanding and Communications Mining™:
See how to accelerate model training and optimize model performance with active learning
Learn about the latest enhancements to out-of-the-box document processing – with little to no training required
Get an exclusive demo of the new family of UiPath LLMs – GenAI models specialized for processing different types of documents and messages
This is a hands-on session specifically designed for automation developers and AI enthusiasts seeking to enhance their knowledge in leveraging the latest intelligent document processing capabilities offered by UiPath.
Speakers:
👨🏫 Andras Palfi, Senior Product Manager, UiPath
👩🏫 Lenka Dulovicova, Product Program Manager, UiPath
DevOps and Testing slides at DASA ConnectKari Kakkonen
My and Rik Marselis slides at 30.5.2024 DASA Connect conference. We discuss about what is testing, then what is agile testing and finally what is Testing in DevOps. Finally we had lovely workshop with the participants trying to find out different ways to think about quality and testing in different parts of the DevOps infinity loop.
UiPath Test Automation using UiPath Test Suite series, part 3DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 3. In this session, we will cover desktop automation along with UI automation.
Topics covered:
UI automation Introduction,
UI automation Sample
Desktop automation flow
Pradeep Chinnala, Senior Consultant Automation Developer @WonderBotz and UiPath MVP
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
Accelerate your Kubernetes clusters with Varnish CachingThijs Feryn
A presentation about the usage and availability of Varnish on Kubernetes. This talk explores the capabilities of Varnish caching and shows how to use the Varnish Helm chart to deploy it to Kubernetes.
This presentation was delivered at K8SUG Singapore. See https://feryn.eu/presentations/accelerate-your-kubernetes-clusters-with-varnish-caching-k8sug-singapore-28-2024 for more details.
Let's dive deeper into the world of ODC! Ricardo Alves (OutSystems) will join us to tell all about the new Data Fabric. After that, Sezen de Bruijn (OutSystems) will get into the details on how to best design a sturdy architecture within ODC.
GraphRAG is All You need? LLM & Knowledge GraphGuy Korland
Guy Korland, CEO and Co-founder of FalkorDB, will review two articles on the integration of language models with knowledge graphs.
1. Unifying Large Language Models and Knowledge Graphs: A Roadmap.
https://arxiv.org/abs/2306.08302
2. Microsoft Research's GraphRAG paper and a review paper on various uses of knowledge graphs:
https://www.microsoft.com/en-us/research/blog/graphrag-unlocking-llm-discovery-on-narrative-private-data/
2. Servos and Motors
Motion
linear or
rotary Stepper Servo
conversion
issues
Types
DC
Gearhead DC Motor
Servo
Stepper
Gearhead
3. DC Motor
2 Connections
Continual spin, given current & voltage
Reversing current, reverses the direction
Increasing the voltage, spins faster,
decreasing the voltage, slows the spin
High speed but low torque
Gearbox can add torque but at the expense
of speed
8. Gearhead Motor
DC Motor with gearbox
Not fast but provide more torque
Servo Motor Gearhead
Gearhead motor with position feedback
Feedback is often from potentiometer
Pulsing the motor moves it to particular
position within 180 degree range
Can’t move 360 degrees but can be
Servo
positioned precisely within the 180 degree
range
9. Stepper Motor
Precise positioning &
360 degrees range
Move in discrete steps around a circle
A 200 step motor would move 1.8 degrees
per step around the full 360 degrees
Continuous rotation in either direction
Good torque
Complex to connect
10. Solenoids and
Actuators
Microactuators
Linear
Motion Actuator
Pull or Push
Types
Solenoid
Solenoid
Actuator
Microactuator
11. Motor Characteristics
gears or direct
rated voltage
current (efficiency) - stall / running
speed - spin / rpm, rps, Hz
torque
size, shaft diameter, shaft length
position resolution (Servos & Steppers)
12. Advanced Mediation
Lisa McElligott, 2000
interactive confessional box
used real confessional box
confessor was computer
program
interacted using a voice interface.
scripted interactions with
random noises to add to
immersion
suspension of disbelief
realism
13. Weave Mirror
Daniel Rozin,
Weave Mirror,
2007
Mechanical mirror
Any person standing in front of one of
these pieces is instantly reflected on its
surface. Side and back
views
Uses video cameras, motors and
computers to achieve mirroring
Sound aspect - soothing sound
17. PWM
Analog input / output
Duration of the digital pulse of voltage
Microcontroller - HIGH 5V or LOW 0V
``Fake’’ it using PWM
Duty cycle, ratio from low to high to low cycle
LED dimming, DC Motor speed control, Piezo
speakers, RC Servo positioning
20. RC Servo Motor
Servo Motor
Connections on Arduino
Black wire would go to Grd pin
Red wire would go to 5V power pin
White wire would go to one of the digital
pins on the board
Colours can vary, Ground (black or
brown), Power (red), Control (orange, yellow
or white)
21. /*
* NewSerialServo
* --------------
* Servo control from the Serial port
*
* Alteration of the control interface to use < and > keys
* to slew the servo horn left and right. Works best with
* the Linux/Mac terminal quot;screenquot; program.
*
* Created 10 December 2007
* copyleft 2007 Brian D. Wendt
* http://principialabs.com/
*
* Adapted from code by Tom Igoe, http://itp.nyu.edu/physcomp/Labs/Servo
*/
/** Adjust these values for your servo and setup, if necessary **/
int servoPin = 2; // control pin for servo motor
int minPulse = 600; // minimum servo position
int maxPulse = 2400; // maximum servo position
int turnRate = 100; // servo turn rate increment (larger value, faster rate)
int refreshTime = 20; // time (ms) between pulses (50Hz)
/** The Arduino will calculate these values for you **/
continued
int centerServo; // center servo position
int pulseWidth; // servo pulse width
on next
int moveServo; // raw user input
long lastPulse = 0; // recorded time (ms) of the last pulse
slide
22. /*
Setup the necessary
* NewSerialServo
* --------------
* Servo control from the Serial port
control values and
*
* Alteration of the control interface to use < and > keys
* to slew the servo horn left and right. Works best with
variables to store
* the Linux/Mac terminal quot;screenquot; program.
*
* Created 10 December 2007
information
* copyleft 2007 Brian D. Wendt
* http://principialabs.com/
*
* Adapted from code by Tom Igoe, http://itp.nyu.edu/physcomp/Labs/Servo
*/
/** Adjust these values for your servo and setup, if necessary **/
int servoPin = 2; // control pin for servo motor
int minPulse = 600; // minimum servo position
int maxPulse = 2400; // maximum servo position
int turnRate = 100; // servo turn rate increment (larger value, faster rate)
int refreshTime = 20; // time (ms) between pulses (50Hz)
/** The Arduino will calculate these values for you **/
continued
int centerServo; // center servo position
int pulseWidth; // servo pulse width
on next
int moveServo; // raw user input
long lastPulse = 0; // recorded time (ms) of the last pulse
slide
23. // Main program setup
void setup() {
pinMode(servoPin, OUTPUT); // Set servo pin as an output pin
centerServo = maxPulse - ((maxPulse - minPulse)/2);
pulseWidth = centerServo; // Give the servo a starting point (or it floats)
Serial.begin(9600);
Serial.println(quot; Arduino Serial Servo Controlquot;);
Serial.println(quot;Press < or > to move, spacebar to centerquot;);
Serial.println();
}
void loop() {
// wait for serial input
if (Serial.available() > 0) {
// read the incoming byte:
moveServo = Serial.read();
// ASCII '<' is 44, ASCII '>' is 46 (comma and period, really)
if (moveServo == 44) { pulseWidth = pulseWidth - turnRate; }
if (moveServo == 46) { pulseWidth = pulseWidth + turnRate; }
continued
if (moveServo == 32) { pulseWidth = centerServo; }
// stop servo pulse at min and max
on next
if (pulseWidth > maxPulse) { pulseWidth = maxPulse; }
if (pulseWidth < minPulse) { pulseWidth = minPulse; }
}
slide
24. // Main program setup
void setup() {
pinMode(servoPin, OUTPUT); // Set servo pin as an output pin
centerServo = maxPulse - ((maxPulse - minPulse)/2);
pulseWidth = centerServo; // Give the servo a starting point (or it floats)
Serial.begin(9600);
Setup servo its
Serial.println(quot; Arduino Serial Servo Controlquot;);
Serial.println(quot;Press < or > to move, spacebar to centerquot;);
pin, its pulse, and
Serial.println();
}
its position. Setup
void loop() {
// wait for serial input
serial connection
if (Serial.available() > 0) {
// read the incoming byte:
moveServo = Serial.read();
for control
// ASCII '<' is 44, ASCII '>' is 46 (comma and period, really)
if (moveServo == 44) { pulseWidth = pulseWidth - turnRate; }
if (moveServo == 46) { pulseWidth = pulseWidth + turnRate; }
continued
if (moveServo == 32) { pulseWidth = centerServo; }
// stop servo pulse at min and max
on next
if (pulseWidth > maxPulse) { pulseWidth = maxPulse; }
if (pulseWidth < minPulse) { pulseWidth = minPulse; }
}
slide
25. // Main program setup
void setup() {
pinMode(servoPin, OUTPUT); // Set servo pin as an output pin
centerServo = maxPulse - ((maxPulse - minPulse)/2);
pulseWidth = centerServo; // Give the servo a starting point (or it floats)
Serial.begin(9600);
Serial.println(quot; Arduino Serial Servo Controlquot;);
Serial.println(quot;Press < or > to move, spacebar to centerquot;);
Serial.println();
The serial input controls the
}
servo by the ‘<‘ or ‘>’ and keep
void loop() {
// wait for serial input
if (Serial.available() > 0) {
its speed within the safe range
// read the incoming byte:
moveServo = Serial.read();
// ASCII '<' is 44, ASCII '>' is 46 (comma and period, really)
if (moveServo == 44) { pulseWidth = pulseWidth - turnRate; }
if (moveServo == 46) { pulseWidth = pulseWidth + turnRate; }
continued
if (moveServo == 32) { pulseWidth = centerServo; }
// stop servo pulse at min and max
on next
if (pulseWidth > maxPulse) { pulseWidth = maxPulse; }
if (pulseWidth < minPulse) { pulseWidth = minPulse; }
}
slide
26. // pulse the servo every 20 ms (refreshTime) with current pulseWidth
// this will hold the servo's position if unchanged, or move it if changed
if (millis() - lastPulse >= refreshTime) {
digitalWrite(servoPin, HIGH); // start the pulse
delayMicroseconds(pulseWidth); // pulse width
digitalWrite(servoPin, LOW); // stop the pulse
lastPulse = millis(); // save the time of the last pulse
}
}
// END of Main program
27. Pulse the servo every 20ms, this is where the
desired change actually happens and its based
on the previous serial input
// pulse the servo every 20 ms (refreshTime) with current pulseWidth
// this will hold the servo's position if unchanged, or move it if changed
if (millis() - lastPulse >= refreshTime) {
digitalWrite(servoPin, HIGH); // start the pulse
delayMicroseconds(pulseWidth); // pulse width
digitalWrite(servoPin, LOW); // stop the pulse
lastPulse = millis(); // save the time of the last pulse
}
}
// END of Main program
28. Switches
Types and contacts
Knives and toggles Knive (SPST)
Single pole = control of one circuit
Double pole = two circuits controlled at
once
Single throw = one path for circuit
Double throw = two paths for circuit
Toggle (SPDT)
Foot, tape / mat, roller,
hair trigger, tilt, magnetic /
reed
29. High and Low
Practical switching
Arduino looks for 0V (low) to 5V (high)
Digital inputs float between these values
Resistor “pulls” input to ground (0 volts)
Pressing switch “pushes” input to 5 volts
Switch pressed = HIGH, not pressed = LOW
setup(): pinMode(myPin,INPUT)
loop(): digitalRead(myPin)
31. Embodiment using
Animatronics
Stefan Marti
2005, Autonomous
Interactive
Intermediaries
2005, Physical
Embodiments for Mobile
Communication Agents
32. Kinematics
Gears and mechanical
models
Geometry of pure motion without
reference to force or mass
Cornell University Library, Kinematic
Examples from
Models for Design Digital Library
www.flying-pig.co.uk
(KMODDL)
Tutorials, models, e-books, e.g. Linkages
Chapter 3 in Building Robot Drive
Trains
33. PWM Tutorials
ITP Servo tutorial
Principial Labs Arduino Servo
Driving a Unipolar Stepper Motor
Driving a Bipolar Stepper Motor ITP Servo lab, uses
a potentiometer to
Making an RC Servo wall following car control the servo.
34. Arduino Library
Software Servo Library
attach(int) Turn a pin into a servo driver.
detach() Release a pin from servo driving.
write(int) Set the angle of the servo in degrees, 0 to 180.
read() return that value set with the last write().
attached() return 1 if the servo is currently attached.
refresh() must call once every 50ms to keep servos updated, won't call more than
every 20ms
setMinimumPulse(uint16_t) set the duration of the 0 degree pulse in
microseconds. (default minimum value is 544 microseconds)
setMaximumPulse(uint16_t) set the duration of the 180 degree pulse in
microseconds. (default maximum pluse value is 2400 microsconds)
Need to first send position with write() before you can receive any control signals
42. Diodes
LEDs, Zener, Schottky, Photo
Pass current in one direction
only
Forward voltage drop
e.g. forward voltage drop of 0.7 V in circuit where
input is 5V will have voltage of 4.3V on its far side
Rectification
Removal of negative voltages from signal, i.e. a
bridge rectifier
LED, 1.6V forward voltage drop, current limit 36mA, circuit
total voltage 5V.
VR = 5 - 1.6 = 3.4V
R = V / I = 3.4 / 0.036 = 94.44 Ohm (at least 100 Ohm)
P = V * I = 3.4 * 0.036 = 0.1224 W (at least 0.125W)
50. /* Two LEDs, tied to pin b0 and to b1 which correspond to physical pins 5 and 6 on ATTINY13 are turned
on for 100ms and then off for 200ms
*/
#include <avr/io.h>
#define F_CPU 1000000 // set to 1 MHz as delay.h needs F_CPU
#include <util/delay.h>
#include quot;pin_macros.hquot; // Leah Buechley's pin macros for AVRs - very useful
int main(void)
{ // Set Port B pins for 3 and 4 as outputs
b0_output; //initialize LED pin
b1_output; //initialize LED pin
b0_high; //LED is off
b1_high; //LED is off
DDRB = 0x18; // In binary this is 0001 1000 (note that is bit 3 and 4)
for ( ; 1==1 ; ) // loop while 1 equals 1 - forever - C style loop
{
// Set Port B pins for 3 and 4 as HIGH (i.e. turn the LEDs on)
b0_low; //LED is on
b1_low; //LED is on
_delay_loop_2(65535);
b0_high; //LED is off
b1_high; //LED is off
_delay_loop_2(65535);
}
return 1;
}
51. /* Two LEDs, tied to pin b0 and to b1 which correspond to physical pins 5 and 6 on ATTINY13 are turned
on for 100ms and then off for 200ms
*/
#include <avr/io.h>
Include the
#define F_CPU 1000000 // set to 1 MHz as delay.h needs F_CPU
#include <util/delay.h>
#include quot;pin_macros.hquot; // Leah Buechley's pin macros for AVRs - very useful
libraries and set
int main(void)
the speed of chip
{ // Set Port B pins for 3 and 4 as outputs
b0_output; //initialize LED pin
b1_output; //initialize LED pin
b0_high; //LED is off
b1_high; //LED is off
DDRB = 0x18; // In binary this is 0001 1000 (note that is bit 3 and 4)
for ( ; 1==1 ; ) // loop while 1 equals 1 - forever - C style loop
{
// Set Port B pins for 3 and 4 as HIGH (i.e. turn the LEDs on)
b0_low; //LED is on
b1_low; //LED is on
_delay_loop_2(65535);
b0_high; //LED is off
b1_high; //LED is off
_delay_loop_2(65535);
}
return 1;
}
52. /* Two LEDs, tied to pin b0 and to b1 which correspond to physical pins 5 and 6 on ATTINY13 are turned
on for 100ms and then off for 200ms
*/
#include <avr/io.h>
#define F_CPU 1000000 // set to 1 MHz as delay.h needs F_CPU
#include <util/delay.h>
#include quot;pin_macros.hquot; // Leah Buechley's pin macros for AVRs - very useful
Setup LED pins, Data
int main(void)
{ // Set Port B pins for 3 and 4 as outputs
Direction Register and
b0_output; //initialize LED pin
b1_output; //initialize LED pin
turn LEDS off.
b0_high; //LED is off
b1_high; //LED is off
DDRB = 0x18; // In binary this is 0001 1000 (note that is bit 3 and 4)
for ( ; 1==1 ; ) // loop while 1 equals 1 - forever - C style loop
{
// Set Port B pins for 3 and 4 as HIGH (i.e. turn the LEDs on)
b0_low; //LED is on
b1_low; //LED is on
_delay_loop_2(65535);
b0_high; //LED is off
b1_high; //LED is off
_delay_loop_2(65535);
}
return 1;
}
53. /* Two LEDs, tied to pin b0 and to b1 which correspond to physical pins 5 and 6 on ATTINY13 are turned
on for 100ms and then off for 200ms
*/
#include <avr/io.h>
#define F_CPU 1000000 // set to 1 MHz as delay.h needs F_CPU
#include <util/delay.h>
#include quot;pin_macros.hquot; // Leah Buechley's pin macros for AVRs - very useful
Loop - Turn the pins
int main(void)
{ // Set Port B pins for 3 and 4 as outputs
on, wait for 262ms, and
b0_output; //initialize LED pin
b1_output; //initialize LED pin
turn off. Repeat.
b0_high; //LED is off
b1_high; //LED is off
DDRB = 0x18; // In binary this is 0001 1000 (note that is bit 3 and 4)
for ( ; 1==1 ; ) // loop while 1 equals 1 - forever - C style loop
{
// Set Port B pins for 3 and 4 as HIGH (i.e. turn the LEDs on)
b0_low; //LED is on
b1_low; //LED is on
_delay_loop_2(65535);
b0_high; //LED is off
b1_high; //LED is off
_delay_loop_2(65535);
}
return 1;
}
54. # Makefile for sample_led_program for ATtiny13 chip
# Note: to use makefile with a different chip change all
# mmcu statements (-mmcu=attiny13) to reflect new chip
# also change the part option (-p t13) for the avrdude install command
# default target when quot;makequot; is run w/o arguments
all: sample_led_program.rom
# compile sample_led_program.c into sample_led_program.o
sample_led_program.o: sample_led_program.c
avr-gcc -c -g -O0 -Wall -mmcu=attiny13 sample_led_program.c -o sample_led_program.o
# link up sample_led_program.o into sample_led_program.elf
sample_led_program.elf: sample_led_program.o
avr-gcc sample_led_program.o -Wall,-nm,-Map=sample_led_program.map,--cref -
mmcu=attiny13 -o sample_led_program.elf
# copy ROM (FLASH) object out of sample_led_program.elf into sample_led_program.rom
sample_led_program.rom: sample_led_program.elf
avr-objcopy -O ihex sample_led_program.elf sample_led_program.rom
# command to program chip (invoked by running quot;make installquot;)
install:
avrdude -c usbtiny -p t13 -e -U flash:w:sample_led_program.rom
# command to clean up junk (no source files) (invoked by quot;make cleanquot;)
clean:
rm -f *.o *.rom *.elf *.map *~
55. # Makefile for sample_led_program for ATtiny13 chip
# Note: to use makefile with a different chip change all
# mmcu statements (-mmcu=attiny13) to reflect new chip
# also change the part option (-p t13) for the avrdude install command
When Make is run,
# default target when quot;makequot; is run w/o arguments
all: sample_led_program.rom
needs a target
# compile sample_led_program.c into sample_led_program.o
sample_led_program.o: sample_led_program.c
avr-gcc -c -g -O0 -Wall -mmcu=attiny13 sample_led_program.c -o sample_led_program.o
# link up sample_led_program.o into sample_led_program.elf
sample_led_program.elf: sample_led_program.o
avr-gcc sample_led_program.o -Wall,-nm,-Map=sample_led_program.map,--cref -
mmcu=attiny13 -o sample_led_program.elf
# copy ROM (FLASH) object out of sample_led_program.elf into sample_led_program.rom
sample_led_program.rom: sample_led_program.elf
avr-objcopy -O ihex sample_led_program.elf sample_led_program.rom
# command to program chip (invoked by running quot;make installquot;)
install:
avrdude -c usbtiny -p t13 -e -U flash:w:sample_led_program.rom
# command to clean up junk (no source files) (invoked by quot;make cleanquot;)
clean:
rm -f *.o *.rom *.elf *.map *~
56. # Makefile for sample_led_program for ATtiny13 chip
# Note: to use makefile with a different chip change all
# mmcu statements (-mmcu=attiny13) to reflect new chip
# also change the part option (-p t13) for the avrdude install command
Use avr-gcc to compile
# default target when quot;makequot; is run w/o arguments
all: sample_led_program.rom
‘c’ program
# compile sample_led_program.c into sample_led_program.o
sample_led_program.o: sample_led_program.c
avr-gcc -c -g -O0 -Wall -mmcu=attiny13 sample_led_program.c -o sample_led_program.o
# link up sample_led_program.o into sample_led_program.elf
sample_led_program.elf: sample_led_program.o
avr-gcc sample_led_program.o -Wall,-nm,-Map=sample_led_program.map,--cref -
mmcu=attiny13 -o sample_led_program.elf
# copy ROM (FLASH) object out of sample_led_program.elf into sample_led_program.rom
sample_led_program.rom: sample_led_program.elf
avr-objcopy -O ihex sample_led_program.elf sample_led_program.rom
# command to program chip (invoked by running quot;make installquot;)
install:
avrdude -c usbtiny -p t13 -e -U flash:w:sample_led_program.rom
# command to clean up junk (no source files) (invoked by quot;make cleanquot;)
clean:
rm -f *.o *.rom *.elf *.map *~
57. # Makefile for sample_led_program for ATtiny13 chip
# Note: to use makefile with a different chip change all
# mmcu statements (-mmcu=attiny13) to reflect new chip
# also change the part option (-p t13) for the avrdude install command
Use avr-gcc on `o’ obj
# default target when quot;makequot; is run w/o arguments
all: sample_led_program.rom
file to create `elf’ file
# compile sample_led_program.c into sample_led_program.o
sample_led_program.o: sample_led_program.c
avr-gcc -c -g -O0 -Wall -mmcu=attiny13 sample_led_program.c -o sample_led_program.o
# link up sample_led_program.o into sample_led_program.elf
sample_led_program.elf: sample_led_program.o
avr-gcc sample_led_program.o -Wall,-nm,-Map=sample_led_program.map,--cref -
mmcu=attiny13 -o sample_led_program.elf
# copy ROM (FLASH) object out of sample_led_program.elf into sample_led_program.rom
sample_led_program.rom: sample_led_program.elf
avr-objcopy -O ihex sample_led_program.elf sample_led_program.rom
# command to program chip (invoked by running quot;make installquot;)
install:
avrdude -c usbtiny -p t13 -e -U flash:w:sample_led_program.rom
# command to clean up junk (no source files) (invoked by quot;make cleanquot;)
clean:
rm -f *.o *.rom *.elf *.map *~
58. # Makefile for sample_led_program for ATtiny13 chip
# Note: to use makefile with a different chip change all
# mmcu statements (-mmcu=attiny13) to reflect new chip
# also change the part option (-p t13) for the avrdude install command
Use avr-objcopy to
# default target when quot;makequot; is run w/o arguments
create rom from elf file
all: sample_led_program.rom
# compile sample_led_program.c into sample_led_program.o
sample_led_program.o: sample_led_program.c
avr-gcc -c -g -O0 -Wall -mmcu=attiny13 sample_led_program.c -o sample_led_program.o
# link up sample_led_program.o into sample_led_program.elf
sample_led_program.elf: sample_led_program.o
avr-gcc sample_led_program.o -Wall,-nm,-Map=sample_led_program.map,--cref -
mmcu=attiny13 -o sample_led_program.elf
# copy ROM (FLASH) object out of sample_led_program.elf into sample_led_program.rom
sample_led_program.rom: sample_led_program.elf
avr-objcopy -O ihex sample_led_program.elf sample_led_program.rom
# command to program chip (invoked by running quot;make installquot;)
install:
avrdude -c usbtiny -p t13 -e -U flash:w:sample_led_program.rom
# command to clean up junk (no source files) (invoked by quot;make cleanquot;)
clean:
rm -f *.o *.rom *.elf *.map *~
59. # Makefile for sample_led_program for ATtiny13 chip
# Note: to use makefile with a different chip change all
# mmcu statements (-mmcu=attiny13) to reflect new chip
# also change the part option (-p t13) for the avrdude install command
Use avrdube and a
# default target when quot;makequot; is run w/o arguments
usbtiny to copy to the
all: sample_led_program.rom
# compile sample_led_program.c into sample_led_program.o
ATtiny13 chip
sample_led_program.o: sample_led_program.c
avr-gcc -c -g -O0 -Wall -mmcu=attiny13 sample_led_program.c -o sample_led_program.o
# link up sample_led_program.o into sample_led_program.elf
sample_led_program.elf: sample_led_program.o
avr-gcc sample_led_program.o -Wall,-nm,-Map=sample_led_program.map,--cref -
mmcu=attiny13 -o sample_led_program.elf
# copy ROM (FLASH) object out of sample_led_program.elf into sample_led_program.rom
sample_led_program.rom: sample_led_program.elf
avr-objcopy -O ihex sample_led_program.elf sample_led_program.rom
# command to program chip (invoked by running quot;make installquot;)
install:
avrdude -c usbtiny -p t13 -e -U flash:w:sample_led_program.rom
# command to clean up junk (no source files) (invoked by quot;make cleanquot;)
clean:
rm -f *.o *.rom *.elf *.map *~
60. # Makefile for sample_led_program for ATtiny13 chip
# Note: to use makefile with a different chip change all
# mmcu statements (-mmcu=attiny13) to reflect new chip
# also change the part option (-p t13) for the avrdude install command
Clean up the files
# default target when quot;makequot; is run w/o arguments
all: sample_led_program.rom
created
# compile sample_led_program.c into sample_led_program.o
sample_led_program.o: sample_led_program.c
avr-gcc -c -g -O0 -Wall -mmcu=attiny13 sample_led_program.c -o sample_led_program.o
# link up sample_led_program.o into sample_led_program.elf
sample_led_program.elf: sample_led_program.o
avr-gcc sample_led_program.o -Wall,-nm,-Map=sample_led_program.map,--cref -
mmcu=attiny13 -o sample_led_program.elf
# copy ROM (FLASH) object out of sample_led_program.elf into sample_led_program.rom
sample_led_program.rom: sample_led_program.elf
avr-objcopy -O ihex sample_led_program.elf sample_led_program.rom
# command to program chip (invoked by running quot;make installquot;)
install:
avrdude -c usbtiny -p t13 -e -U flash:w:sample_led_program.rom
# command to clean up junk (no source files) (invoked by quot;make cleanquot;)
clean:
rm -f *.o *.rom *.elf *.map *~
64. Run avrdude, it reads
the rom, writes it to
the chip and verifies
this process
65. Things To Remember
Safety first, last, and always
do not take another person’s work about the state of a piece of equipment, always
check yourself and make sure its safe for you to work
use the right tool for the job
treat each tool with respect and rack them back in their correct place when they are
not in use, don’t leave a dangerous tool loose when it can harm somebody else
don’t leave your safety glasses on the bench or in your pocket
don’t work on a live circuit, turn the power off first
don’t solder in an enclosed area without proper ventilation
read the datasheet first and double check it to be sure
get twice or three times the number of parts that you need for your circuit, you will
make mistakes and sometimes you will have to throw an almost finished piece away
66. Data Sheets
Manufacturer’s details for particular electronic product
typical device performance
minimum and maximum requirements and characteristics
device tolerances, what you can do without harming it
suggestions for applications, uses, or just hints
You don’t need to understand everything only need to
focus on the parts that are of interest to your current
problem
67. Features
• High Performance, Low Power AVR® 8-Bit Microcontroller
• Advanced RISC Architecture
– 120 Powerful Instructions – Most Single Clock Cycle Execution
– 32 x 8 General Purpose Working Registers
– Fully Static Operation
– Up to 20 MIPS Througput at 20 MHz
• High Endurance Non-volatile Memory segments
– 1K Bytes of In-System Self-programmable Flash program memory
– 64 Bytes EEPROM
8-bit
– 64K Bytes Internal SRAM
– Write/Erase cyles: 10,000 Flash/100,000 EEPROM
Microcontroller
– Data retention: 20 years at 85°C/100 years at 25°C(1)
– Optional Boot Code Section with Independent Lock Bits
with 1K Bytes
In-System Programming by On-chip Boot Program
True Read-While-Write Operation
– Programming Lock for Software Security
In-System
• Peripheral Features
– One 8-bit Timer/Counter with Prescaler and Two PWM Channels
Programmable
– 4-channel, 10-bit ADC with Internal Voltage Reference
Example:
– Programmable Watchdog Timer with Separate On-chip Oscillator
Flash
– On-chip Analog Comparator
• Special Microcontroller Features
– debugWIRE On-chip Debug System
– In-System Programmable via SPI Port
ATtiny13V
– External and Internal Interrupt Sources
Models
– Low Power Idle, ADC Noise Reduction, and Power-down Modes
ATtiny13
– Enhanced Power-on Reset Circuit
– Programmable Brown-out Detection Circuit
ATtiny13
– Internal Calibrated Oscillator
• I/O and Packages
Summary
– 8-pin PDIP/SOIC: Six Programmable I/O Lines
– 20-pad MLF: Six Programmable I/O Lines
• Operating Voltage:
– 1.8 - 5.5V for ATtiny13V
If it is the short summary
– 2.7 - 5.5V for ATtiny13
• Speed Grade
or longer full datasheet
– ATtiny13V: 0 - 4 MHz @ 1.8 - 5.5V, 0 - 10 MHz @ 2.7 - 5.5V
– ATtiny13: 0 - 10 MHz @ 2.7 - 5.5V, 0 - 20 MHz @ 4.5 - 5.5V
• Industrial Temperature Range
• Low Power Consumption
– Active Mode:
1 MHz, 1.8V: 240µA
– Power-down Mode:
< 0.1µA at 1.8V
One page overview of models and capabilities
Date
Rev. 2535HS–AVR–10/07
68. Pin Configurations Figure 1. Pinout ATtiny13
PDIP or SOIC are
8-PDIP/SOIC
the only two
(PCINT5/RESET/ADC0/dW) PB5 1 8 VCC
package types (PCINT3/CLKI/ADC3) PB3 2 7 PB2 (SCK/ADC1/T0/PCINT2)
we'll use. The (PCINT4/ADC2) PB4 3 6 PB1 (MISO/AIN1/OC0B/INT0/PCINT1)
GND 4 5 PB0 (MOSI/AIN0/OC0A/PCINT0)
other types require
SMD soldering. 20-QFN/MLF
NC
NC
NC
NC
NC
20
19
18
17
16
(PCINT5/RESET/ADC0/dW) PB5 1 15 VCC
(PCINT3/CLKI/ADC3) PB3 2 14 PB2 (SCK/ADC1/T0/PCINT2)
NC 3 13 NC
NC 4 12 PB1 (MISO/AIN1/OC0B/INT0/PCINT1)
Example:
(PCINT4/ADC2) PB4 5 11 PB0 (MOSI/AIN0/OC0A/PCINT0)
10
6
7
8
9
NC
NC
GND
NC
NC
NOTE: Bottom pad should be soldered to ground.
NC: Not Connect
ATtiny13
10-QFN/MLF
(PCINT5/RESET/ADC0/dW) PB5 1 10 VCC
(PCINT3/CLKI/ADC3) PB3 2 9 PB2 (SCK/ADC1/T0/PCINT2)
NC 3 8 NC
(PCINT4/ADC2) PB4 4 7 PB1 (MISO/AIN1/OC0B/INT0/PCINT1)
GND 5 6 PB0 (MOSI/AIN0/OC0A/PCINT0)
NOTE: Bottom pad should be soldered to ground.
NC: Not Connect
Overview The ATtiny13 is a low-power CMOS 8-bit microcontroller based on the AVR enhanced
RISC architecture. By executing powerful instructions in a single clock cycle, the
ATtiny13 achieves throughputs approaching 1 MIPS per MHz allowing the system
designer to optimize power consumption versus processing speed.
Date
ATtiny13
2
2535HS–AVR–10/07
69. Interrupt system to continue functioning. The Power-down mode saves the register con-
tents, disabling all chip functions until the next Interrupt or Hardware Reset. The ADC
Noise Reduction mode stops the CPU and all I/O modules except ADC, to minimize
switching noise during ADC conversions.
The device is manufactured using Atmel’s high density non-volatile memory technology.
The On-chip ISP Flash allows the Program memory to be re-programmed In-System
through an SPI serial interface, by a conventional non-volatile memory programmer or
by an On-chip boot code running on the AVR core.
The ATtiny13 AVR is supported with a full suite of program and system development
tools including: C Compilers, Macro Assemblers, Program Debugger/Simulators, In-Cir-
cuit Emulators, and Evaluation kits.
Pin Descriptions
Descriptions of the pins
shown in the previous
VCC Digital supply voltage.
diagram with comments
GND Ground.
Example:
Port B (PB5..PB0) Port B is a 6-bit bi-directional I/O port with internal pull-up resistors (selected for each
bit). The Port B output buffers have symmetrical drive characteristics with both high sink
and source capability. As inputs, Port B pins that are externally pulled low will source
current if the pull-up resistors are activated. The Port B pins are tri-stated when a reset
condition becomes active, even if the clock is not running.
Port B also serves the functions of various special features of the ATtiny13 as listed on
page 51.
ATtiny13
RESET Reset input. A low level on this pin for longer than the minimum pulse length will gener-
ate a reset, even if the clock is not running. The minimum pulse length is given in Table
12 on page 31. Shorter pulses are not guaranteed to generate a reset.
Note: 1.
Data Retention Reliability Qualification results show that the projected data retention failure rate is much
less than 1 PPM over 20 years at 85°C or 100 years at 25!C.
About Code This documentation contains simple code examples that briefly show how to use various
parts of the device. These code examples assume that the part specific header file is
Examples
included before compilation. Be aware that not all C compiler vendors include bit defini-
tions in the header files and interrupt handling in C is compiler dependent. Please
confirm with the C compiler documentation for more details.
ATtiny13
4
2535HS–AVR–10/07
70. Electrical Characteristics
Absolute Maximum Ratings*
*NOTICE: Stresses beyond those listed under “Absolute
Operating Temperature.................................. -55!C to +125!C
Maximum Ratings” may cause permanent dam-
age to the device. This is a stress rating only and
Storage Temperature ..................................... -65°C to +150°C
functional operation of the device at these or
other conditions beyond those indicated in the
Voltage on any Pin except RESET
operational sections of this specification is not
with respect to Ground ................................-0.5V to VCC+0.5V
implied. Exposure to absolute maximum rating
conditions for extended periods may affect
Voltage on RESET with respect to Ground......-0.5V to +13.0V
device reliability.
Maximum Operating Voltage ............................................ 6.0V
Descriptions of the what
DC Current per I/O Pin ............................................... 40.0 mA
maximum ratings for device are.
DC Current VCC and GND Pins................................ 200.0 mA
Running at these or beyond will
DC Characteristics damage the device
Example:
T = -40!C to 85!C, V = 1.8V to 5.5V (unless otherwise noted)(1)
A CC
Symbol Parameter Condition Min. Typ. Max. Units
VCC = 1.8V - 2.4V 0.2VCC
Input Low Voltage except
VIL -0.5 V
RESET pin VCC = 2.4V - 5.5V 0.3VCC
0.7VCC(3)
VCC = 1.8V - 2.4V
Input High-voltage except
VIH VCC +0.5 V
0.6VCC(3)
RESET pin VCC = 2.4V - 5.5V
ATtiny13
Input Low-voltage
VIL1 VCC = 1.8V - 5.5 -0.5 0.1VCC V
CLKI pin
0.8VCC(3)
Input High-voltage VCC = 1.8V - 2.4V
VIH1 VCC +0.5 V
0.7VCC(3)
CLKI pin VCC = 2.4V - 5.5V
Input Low-voltage
VIL2 VCC = 1.8V - 5.5 -0.5 0.2VCC V
RESET pin
Input High-voltage
0.9VCC(3)
VIH2 VCC = 1.8V - 5.5 VCC +0.5 V
RESET pin
Input Low-voltage VCC = 1.8V - 2.4V
VIL3 -0.5 0.2VCC V
RESET pin VCC = 2.4V - 5.5V
0.7VCC(3)
Input High-voltage VCC = 1.8V - 2.4V
VIH3 VCC +0.5 V
0.6VCC(3)
RESET pin VCC = 2.4V - 5.5V
Output Low Voltage(4) IOL = 20 mA, VCC = 5V 0.7 V
VOL
(PB1 and PB0) IOL = 10 mA, VCC = 3V 0.5 V
Output Low Voltage(4) IOL = 10 mA, VCC = 5V 0.7 V
VOL1
(PB5, PB4, PB3 and PB2) IOL = 5 mA, VCC = 3V 0.5 V
IOL =TBD mA, VCC =
Output Low Voltage(4) TBDV V
VOL2
(PB5, Reset used as I/O) IOL =TBD mA, VCC = V
TBDV
Output High-voltage(5) IOH = -20 mA, VCC = 5V 4.2 V
VOH
( PB1 and PB0) IOH = -10 mA, VCC = 3V 2.5 V
ATtiny13
120
2535H–AVR–10/07
71. ATtiny13
TA = -40quot;C to 85quot;C, VCC = 1.8V to 5.5V (unless otherwise noted)(1) (Continued)
Symbol Parameter Condition Min. Typ. Max. Units
(5)
Output High-voltage IOH = -10 mA, VCC = 5V 4.2 V
VOH1
(PB4, PB3 and PB2) IOH = -5 mA, VCC = 3V 2.5 V
IOH = - TBD mA, VCC =
Output High-voltage(5) TBDV V
VOH2
(PB5, Reset used as I/O) IOH = - TBD mA, VCC = V
TBDV
Some chips have internal resistors
Vcc = 5.5V, pin low
Input Leakage
IIL 1 µA
which you can use for inputs, here
Current I/O Pin (absolute value)
Vcc = 5.5V, pin high
Input Leakage
is where you can find their value
IIH 1 µA
Current I/O Pin (absolute value)
RRST Reset Pull-up Resistor 30 80 k!
Rpu I/O Pin Pull-up Resistor 20 50 k!
Active 1MHz, VCC = 2V 0.35 mA
Active 4MHz, VCC = 3V 1.8 mA
Example:
Active 8MHz, VCC = 5V 6 mA
Power Supply Current
Idle 1MHz, VCC = 2V 0.08 0.2 mA
ICC
Idle 4MHz, VCC = 3V 0.41 1 mA
Idle 8MHz, VCC = 5V 1.6 3 mA
WDT enabled, VCC = 3V <5 10 µA
Power-down mode
ATtiny13
WDT disabled, VCC = 3V < 0.5 2 µA
Analog Comparator Input VCC = 5V
VACIO < 10 40 mV
Offset Voltage Vin = VCC/2
Analog Comparator Input VCC = 5V
IACLK -50 50 nA
Leakage Current Vin = VCC/2
Analog Comparator VCC = 2.7V 750
tACPD ns
Propagation Delay VCC = 4.0V 500
Notes: 1. All DC Characteristics contained in this data sheet are based on simulation and characterization of other AVR microcontrol-
lers manufactured in the same process technology. These values are representing design targets, and will be updated after
characterization of actual silicon.
2. “Max” means the highest value where the pin is guaranteed to be read as low.
3. “Min” means the lowest value where the pin is guaranteed to be read as high.
4. Although each I/O port can sink more than the test conditions (20 mA at VCC = 5V, 10 mA at VCC = 3V for PB5, PB1:0, 10 mA
at VCC = 5V, 5 mA at VCC = 3V for PB4:2) under steady state conditions (non-transient), the following must be observed:
1] The sum of all IOL, for all ports, should not exceed 60 mA.
If IOL exceeds the test condition, VOL may exceed the related specification. Pins are not guaranteed to sink current greater
than the listed test condition.
5. Although each I/O port can source more than the test conditions (20 mA at VCC = 5V, 10 mA at VCC = 3V for PB5, PB1:0, 10
mA at VCC = 5V, 5 mA at VCC = 3V for PB4:2) under steady state conditions (non-transient), the following must be observed:
1] The sum of all IOH, for all ports, should not exceed 60 mA.
If IOH exceeds the test condition, VOH may exceed the related specification. Pins are not guaranteed to source current
greater than the listed test condition.
121
2535H–AVR–10/07