Robotics Research Laboratory Louisiana State University.

Slides:



Advertisements
Similar presentations
More fun with Timer/Counters
Advertisements

Indian Institute of Technology Hyderabad ROBOTICS LINE FOLLOWER HARI KISHAN TANDEY – ES12B1008 DILIP KONDAPARTHI – ES12B1010 SAI KARTIK – CE12B1015.
MICRO-CONTROLLER: A microcontroller is the brain of the robot: These are: 1. Integrated Circuits (ICs) 2. Programmable.
Programming Microcontrollers B. Furman 19MAR2011.
Robotics Research Laboratory Louisiana State University.
Potentiometer Electric circuit Cell or Battery Resistor Switch Bulb Earth/Ground LED.
 | bit OR & bit AND ~ bit NOT ^ bit EXLUSIVE OR (XOR) > bit RIGHT SHIFT.
Timers in Hardware ECE152. Overview Why are timers important – Watchdog – Task switching – Accurate time of day Can use polling or interrupts.
Mark Neil - Microprocessor Course 1 Decoding and Using a 4x4 Keyboard.
Programming the ATmega16
Butterfly I/O Ports CS-212 Dick Steflik. I/O for our labs To get data into and out of our Butterfly its a little trickier than using printf and scanf.
Robotics Research Laboratory Louisiana State University.
An Embedded C Program 1 Mainly from textbook: Embedded C Programming and the Atmel AVR 2 nd Edition Barnett, Cox and O’Cull.
Embedded Programming and Robotics Lesson 2 C Programming Refresher C Programming1.
Robotics Research Laboratory Louisiana State University.
Robotics Research Laboratory Louisiana State University.
The Use of Microcontrollers
Arduino John Marcoux Christopher Lesch Thomas Dodge Unless otherwise noted, all information and pictures came from:
 C is general-purpose structured programming language or high level language.  It was developed by Dennis Ritchie in 1970s at Bell laboratories. 
16-Bit Timer/Counter 1 and 3 Counter/Timer 1,3 (TCNT1, TCNT3) are identical in function. Three separate comparison registers exist. Thus, three separate.
ECE 371- Unit 11 Timers and Counters (“Stop Watches and Alarm Clocks”)
Lab 1 - Microcontrollers Complete the program template below being sure to select the correct parameters to meet the requirements (see the Microcontroller.
A Few Words From Dilbert
MCU: Interrupts and Timers Ganesh Pitchiah. What’s an MCU ?
Robotics Research Laboratory Louisiana State University.
Advanced uC Session Speaker : Chiraag Juvekar Jan 13, 2011 Speaker : Chiraag Juvekar Jan 13, 2011.
AVR Programming: Interrupts September 17, What are interrupts? An asynchronous signal indicating the need for an event to be handled A synchronous.
AVR Programming: Digital I/O September 10, What is Digital I/O? Digital – A 1 or 0 Input – Data (a voltage) that the microcontroller is reading.
Timers and Interrupts Anurag Dwivedi. Let Us Revise.
Robotics Research Laboratory Louisiana State University.
Timers and Scheduled Interrupts
Application of Interrupt and Timer : Motor Position Control.
EMBEDDED SYSTEM & ROBOTICS. Introduction to robotics Robots are machines capable of carrying out a complex series of actions automatically. Robotics is.
Microcontrollers, Microcomputers, and Microprocessors
UNIT 7 - INTRODUCTION TO I/O INTERFACING. TWO MAJOR TYPES OF I/O INTERFACING ISOLATED I/O - DEDICATED I/O INSTRUCTIONS ARE USED TO ACCESS I/O DEVICES.
Arduino Mega Arduino Mega 2560 Arduino Mega 2560.
Timer 1 and 2 operation, PWM Principles. Timer 1 Operation.
Mark Neil - Microprocessor Course 1 Decoding and Using a 4x4 Keyboard.
Embedded Systems Lecture 4 January 20, 2016.
Embedded systems and sensors 1 Part 2 Interaction technology Lennart Herlaar.
MICROCONTROLLER INTERFACING WITH STEPPER MOTOR MADE BY: Pruthvirajsinh Jadeja ( ) COLLEGE:DIET BRANCH:EC.
Introduction to AVR Name : 1) Abhishek Yadav ) Prakash Giri ) Kheni Niral ) Bhadresh Langadiya Branch.
Atmega328p Introduction for Digital and PWM Output Brion L Fuller II Robotics Club.
WHY PARALLEL PORT? The simplest computer controlled robot Requires only basic programming skills in C to start off with Can take inputs from your robot.
DEPARTMENT OF ELECTRONICS ENGINEERING V-SEMESTER MICROPROCESSOR & MICROCONTROLLER 1 CHAPTER NO microcontroller & programming.
Mobile and Vehicular Network Lab 2016 WNFA LAB1 Chung-Lin Chan VLC:CamCom.
Microprocessors A practical approach..
Pulse Width Modulation Instructor Dr Matthew Khi Yi Kyaw.
INTERFACING HARDWARE WITH MICROCONTROLLER GUIDED BY: Prof. ASIF SIR 1. AKSHAY KIRAN 2. DEEP PARIKH 3. JIGAR PATEL 4. TILAK PATEL ,05,D2D06,09.
16-Bit Timer/Counter 1 and 3
Timers and Scheduled Interrupts
Servos Elementary Robotics with Servos
Outline Introduction to Arduino UNO Programming environment setup GPIO
Val Manes Department of Math & Computer Science
Microcontroller basics
COMP2121: Microprocessors and Interfacing
AVR Addressing Modes Subject: Microcontoller & Interfacing
The Arduino Microcontroller: Atmel AVR Atmega 328
Session 3,4.
Timer/Counter Modified from Dr. Lam Phung’s Slides.
16-bit Timer/Counter1 Features
IoT Programming the Particle Photon.
CS-4540 Robotics - Lab 05 Switch inputs to the Arduino Uno
DC motor and PWM.
Decoding and Using a 4x4 Keyboard
Wave Generation and Input Capturing
Presentation transcript:

Robotics Research Laboratory Louisiana State University

 What is the definition of a robot for computer scientist?  Explain why a common toaster is not a robot  In what way the reasons for this are similar to those for a simple light-switch not being a robot?

 uint8_t: 1 Byte  0 ~ 255( = )  uint16_t: 2 Bytes  0 ~ 65535( = 2 16 – 1)  uint32_t: 4 Bytes  0 ~  char: 1 Byte  int: 2 Byte  ~ 32767(-2 15 ~ )  double: 4 Bytes  float: 4 Bytes  *: pointer-indicator  int[], int[][], … : Arrays; similarly for char, double, etc.

 if ( … ) { … } if ( … ) { … } else { … }  switch ( … ) { case 0: … ; break; case 1: … ; break; … case 7: …; break; }  for ( … ; … ; … ) { … }  while ( … ) { … }  do { … } while ( … )

#include  a library provided by avrc-compiler #include “yourLibrary.h”  your library void yourFuction(void);  Declare prototype functions first int main(){  main of the program InitHardware();  initialize hardware while (1) {  One main while loop yourFunction();  call the declared function } void yourFuction(){ … }  functions

 LED (Light Emitting Diode)  3x3 LED matrix + - COL3 ROW1 ROW2 ROW3 OFFON OFF ON OFF ON COL1COL2 What happen in LED with below connection? + - What combination of outputs on cols/rows can make only led5 ON? What happen in LED with below connection? + - LED ON What happen in LED with below connection? + +

Hexa-decimalBinaryDecimal 0x00b x10b x20b x30b x40b x50b x60b x70b x80b x90b xA0b xB0b xC0b xD0b xE0b xF0b x6C0b

 PORT: collection of 8 pins for communication between microprocessor and other devices  PORT control register ◦ PINx : to read the values of the pins in PORTx,  pins:  if (PINx == 0x31)... ◦ PORTx : to assign v alues to the pins in PORTx, PORTx = 0x31  PINx = 0x31  is meaningless ◦ DDRx : Controls the Input/Output specification of pins in PORTx ( 0  intput, 1  output)

DDRA: 0x0F in in in in out out out out PINA : 0x36 (48) LED4 LED3 LED2 LED1 Button4 Button3 Button1 Button2 PIN 0 ~ 3 : Output (LED), PIN 4 ~ 7 : Input (Button) PORTA: 0xF GND

ICR3 = 40000u;// input capture register TCNT3 = 0;// interrupt flag register // Set the WGM mode & prescalar TCCR3A = ( 1 << WGM31 ) | ( 0 << WGM30 ) |// timer control register ( 1 << COM3A1 ) | ( 1 << COM3B1 ) | ( 1 << COM3C1 ); TCCR3B = ( 1 << WGM33 ) | ( 1 << WGM32 ) | // timer control register TIMER3_CLOCK_SEL_DIV_8; DDRE |= (( 1 << 3 ) | ( 1 << 4 ) | ( 1 << 5 ));// I/O control register uint16_t count = 0; while (1){ OCR3A = count++;// 0 ~ (pulse width), PINE3 us_spin(200); }

#define MOTOR_IN1_PIN 0 #define MOTOR_IN1_MASK (1 << MOTOR_IN1_PIN) #define MOTOR_IN1_DDRDDRF #define MOTOR_IN1_PORTPORTF #define MOTOR_IN2_PIN 1 #define MOTOR_IN2_MASK (1 << MOTOR_IN2_PIN) #define MOTOR_IN2_DDRDDRF #define MOTOR_IN2_PORTPORTF #define MOTOR_STANBY_PIN 1 #define MOTOR_STANBY_MASK (1 << MOTOR_STANBY_PIN) #define MOTOR_STANBY_DDRDDRF #define MOTOR_STANBY_PORTPORTF #define MOTOR_PWMOCR3A pwm_init();  PWM initialization DDRF = 0xFF  all pins in PORTF are outputs PORTF = 0x00  pull down for all outputs MOTOR_PWM = 10000;  pwm signal is MOTOR_STANBY_PORT |= MOTOR_STANBY_MASK;  STBY : high MOTOR_STANBY_PORT |= (MOTOR_IN1_MASK | MOTOR_IN1_MASK );  IN1 : high, IN2 : high (Short brake) MOTOR_STANBY_PORT &= ~ (MOTOR_IN1_MASK | MOTOR_IN1_MASK );  IN1 : low, IN2 : low (Short brake) MOTOR_STANBY_PORT |= MOTOR_IN1_MASK; MOTOR_STANBY_PORT &= ~MOTOR_IN1_MASK;  IN1 : high, IN2 : low (CCW) MOTOR_STANBY_PORT &= ~MOTOR_IN1_MASK; MOTOR_STANBY_PORT |= MOTOR_IN1_MASK;  IN1 : low, IN2 : high (CW)