Presentation is loading. Please wait.

Presentation is loading. Please wait.

Robotics Research Laboratory Louisiana State University.

Similar presentations


Presentation on theme: "Robotics Research Laboratory Louisiana State University."— Presentation transcript:

1 Robotics Research Laboratory Louisiana State University

2  What is the definition of a robot for computer scientist?  Give an example for a robot in common household and why  Give an example for not a robot in common household and why * * * * Mark are example questions for midterm

3  AVR-C : variable type  AVR-C : condition/Loop uint8_t: 1 Byte  0 ~ 255 uint16_t: 2 Bytes  0 ~ 65535 uint32_t: 4 Bytes  0 ~ 2 32 - 1 char: 1 Byte int: 2 Byte  -32768 ~ 32767 double: 4 Bytes float: 4 Bytes *: pointer char[], int[], double[], … : Array, also multi- dimensional array if ( ) {} if ( ) {} else {} switch () { case: … case: … … } for ( ; ; ) { } while ( ) { } do { } while () What is size of uint8_t? What is value range of uint8_t? * *

4  AVR-C : basic structure #include  a library provided by avrc-compiler #include “yourLibrary.h”  your library void yourFuctions(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(void){}  functions What does InitHardware do? Who is providing #include liblary ? * * How to provide your library *

5  LED (Light Emitting Diode)  3x3 LED matrix + - COL3 ROW1 ROW2 ROW3 OFFON OFF ON OFF ON 1 2 3 4 5 6 7 8 9 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? + + *

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

7 65473210 DDRA: 0x0F in in in in out out out out PINA : 0x36 (48) - + -- - + ++ LED4 LED3 LED2 LED1 Button4 Button3 Button1 Button2 Button 1,2 : Released, Button 3, 4 : Pressed LED 1,4 : OFF, LED 2,3 : ON PIN 0 ~ 3 : Output (LED), PIN 4 ~ 7 : Input (Button) PORTA: 0xF6 1 1 1 1 0 1 1 0 Pull-up for input by Microcontroller PIN1,2 are high(on) PIN 0,4 are low(off) 0 0 1 1 0 1 1 0 GND Pull-down PINA6,7 by Button3,4 pressed What is value of PINA If putton3,4 are pressed? * What is value of PORTA for only LED2,3 ON? * What is value of DDRA for (Output:pin0 ~ 3) (input: pin 4 ~ 7) ? * 0 0001111

8  PWM control 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 ~ 65535 (pulse width), PINE3 us_spin(200); } PWM initialization What does it mean? * What does it happen when the value of count increase? *

9  MOSFET based H-bridge DC-Motor controller #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 10000 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) What does it happen in Motor? * What does it happen in Motor when the number is increased? *

10


Download ppt "Robotics Research Laboratory Louisiana State University."

Similar presentations


Ads by Google