Robotics Research Laboratory Louisiana State University
Lecture Time - 3:10 ~ 5:00 PM, Tuesday Class Room (Lecture & Lab) ◦ 168 Coates ( Microcomputer Lab ) Office hours ◦ Dr. Kundu: 287 Coates Hall, 2:00 ~ 3:00 PM Tuesday ◦ JongHoon Kim : 168C Coates Hall (RRL), 5:00 ~ 6:00 PM Tuesday Class Home Page ◦
Homework – 10% Mid-Term – 20% Individual Project – 30% Team Project – 40% A >= 85 B >= 70 C >= 60
How to program on Microcontroller How to handle digital input/output How to control actuators How to interact with sensors How to communicate with controllers, robots, pc How to design mobile robots Introduce the basic concept in Robotics
1. Introduction 2. Robot Controller (AVRC Basic) 3. Digital In/Out (Button, LED) 4. Pulse Width Modulation (PWM Control) 5. Motion Controller – DC Motor 6. Motion Controller - Servo Motor 7. Analog to Digital ( ADC basic ) 8. Sensor – IR Sensor, Sonar 9. Mobile Robot Design ( Mechanical, Electrical, and Programming ) 10. Laser Cutting 11. Robot assembling 12. Manual Controlling 13. Autonomous Robot
Line Follower Robot, SeaPerch
Robotic Explorations: A Hands-On Introduction to Engineering ◦ Fred G. Martin Robot Builder's Bonanza, 4th Edition ◦ Gordon McComb Embedded C Programming and the Atmel AVR ◦ Richard H. Barnett Robot Programming : A Practical Guide to Behavior-Based Robotics ◦ Joseph L. Jones
Robotics 1 (Wheel based robot) ◦ Map Generation ◦ Optimizing Path Robotics 2 (Leg-based robot) ◦ Motion Planning ◦ Balancing Advanced Robotics ( UAV, Humanoid) ◦ Image Processing ◦ Voice Recognition ◦ Precise localization ◦ Advanced motion controlling
There is no one definition of robot which satisfies everyone and many people have their own In general, robots tend to do some or all of the following: move around, operate a mechanical limb, sense and manipulate their environment, and exhibit intelligent behavior — especially behavior which mimics humans or other animals
For Mechanical Scientist For Electrical Scientist For Computer Scientist Mechanical machineMechanical machine which is guided by mechanical inputs Greece, 3rd century BC Electrical dishwasher Electro-mechanical machineElectro-mechanical machine which is guided by electronic inputs Electro-mechanical machineElectro-mechanical machine which is guided by computer and electronic programming
Fixed Mobile ◦ Ground Robot Wheel based Leg based ◦ Underground ◦ On Air ◦ On Water ◦ Underwater
AVR-Stamp AVR-Stamp Board AVR-Programmer Breadboard LED potential meter Buzzer Button AVR Stamp Slot Voltage Requlator Transceiver for MAX232
#include "Hardware.h" #include "Timer.h" void WaitForTimerRollover(void); int main(void) { InitHardware(); while (1){ WaitForTimerRollover(); TOGGLE_PIN(BUZZER); } void WaitForTimerRollover() { tick_t curTickCount = gTickCount; while (gTickCount == curTickCount) { } }
#include "Hardware.h" #include "Timer.h" void WaitForTimerRollover(void); int main(void) { InitHardware(); int lightFreqType = 0; while (1) { if (0 == lightFreqType) { WaitForTimerRollover(); WaitForTimerRollover(); WaitForTimerRollover(); lightFreqType = 1; } else if (1 == lightFreqType) { WaitForTimerRollover(); WaitForTimerRollover(); WaitForTimerRollover(); lightFreqType = 2; } else { WaitForTimerRollover();WaitForTimerRollover(); WaitForTimerRollover(); WaitForTimerRollover(); lightFreqType = 0; } TOGGLE_PIN(BUZZER); } void WaitForTimerRollover() { tick_t curTickCount = gTickCount; while (gTickCount == curTickCount) { } }
Make ◦ Build compiling environment with Makefile, Rules.mk, and avr-mem.sh ◦ Create required object files ◦ Compile the code to make a binary code (.hex) Sending the binary code with bootloader ◦ avrdude –c stk500v2 –p m128 –P /dev/ttyACM0 –e –F –U flash:w:light-control.hex
#include "Hardware.h" #include "Timer.h" void WaitForTimerRollover( int ) ; int main(void) { InitHardware(); int lightFreqType = 0; while (1){ if (0 == lightFreqType) { WaitForTimerRollover(5); lightFreqType = 1; } else if (1 == lightFreqType) { WaitForTimerRollover(5); lightFreqType = 2; } else { WaitForTimerRollover(28); lightFreqType = 0; } TOGGLE_PIN(BUZZER); } void WaitForTimerRollover(int numUnits) { tick_t curTickCount; int i; for (i=0; i<numUnits; i++) { curTickCount = gTickCount; while (gTickCount == curTickCount) { } }
AVR-stamp board ◦ AVR-Stamp ◦ 4 x AA Battery Holder ◦ Small Breadboard ◦ Optical Switch (RPR220 * 4, H21A3 * 2 ) ◦ Registers (330 ohm * 4, 1.0 Komh * 4, 10 Komh * 4) ◦ Pololu AVR-Programmer ◦ Plastic Ball Caster Trio ◦ Dual Motor Driver ◦ Geared Motor ◦ Acrylic Sheet 24*18 ( Lowes or Homedepot )
Find one example that fits with the definition of robot and one example that does not a robot Choose the robots from common household/ everyday appliance or toy, etc and explain your answer ( robot/ not robot)