Seongwoon Ko Ankith Cherala Jinliang Wei Kelton Stefan.

Slides:



Advertisements
Similar presentations
Chung-Ta King National Tsing Hua University
Advertisements

Seongwoon Ko Kelton Stefan Jinliang Wei Ankith Cherala Patent Liability Analysis.
ECE 447 Fall 2009 Lecture 9: TI MSP430 Interrupts & Low Power Modes.
Introduction of Holtek HT-46 series MCU
Servos The material presented is taken from a variety of sources including:
Available at: – Program Optical Quad Encoders in Autonomous Mode Program optical quad encoders in autonomous mode.
ECE 372 – Microcontroller Design Parallel IO Ports - Interrupts
CSC Timers Since this is a microcontroller it mainly finds itself in embedded devices Quite often embedded devices need to synchronize events The.
A look at interrupts What are interrupts and why are they needed in an embedded system? Equally as important – how are these ideas handled on the Blackfin.
A look at interrupts What are interrupts and why are they needed.
DMX512 Programmable Theater Lighting Controller Jeff Sand and Kris Kopel Advisor: Dr. Don Schertz May 8, 2001.
Timers and Interrupts Shivendu Bhushan Summer Camp ‘13.
The 8051 Microcontroller and Embedded Systems
T IMERS - 2. O UTPUT U NIT Each capture/compare block contains an output unit. The output unit is used to generate output signals such as PWM signals.
Software Three Main Functions Records/Monitors Zero Detection Points Gives our PWM a starting point Data used to dynamically adjust carrier frequency Detects.
328eForth for Arduino Uno C. H. Ting February 16, 2012 SVFIG.
Peripherals and their Control An overview of industrially available “peripheral devices” that use “pulse-width modulation” for information passing. Review.
3/11/2002CSE Input/Output Input/Output Control Datapath Memory Processor Input Output Memory Input Output Network Control Datapath Processor.
1 I-Logix Professional Services Specialist Rhapsody IDF (Interrupt Driven Framework) CPU External Code RTOS OXF Framework Rhapsody Generated.
Program ultrasonic range sensor in autonomous mode
Programming Concepts Part B Ping Hsu. Functions A function is a way to organize the program so that: – frequently used sets of instructions or – a set.
ARM Timers.
A Simple Tour of the MSP430. Light LEDs in C LEDs can be connected in two standard ways. Active high circuit, the LED illuminates if the pin is driven.
Revised: Aug 1, ECE 263 Embedded System Design Lessons 23, 24 - Exceptions - Resets and Interrupts.
AMMAR HAJ HAMAD IZZAT AL KUKHON SUPERVISOR : DR. LUAI MALHIS Self-Driven Car.
ENTC-489 Embedded Real Time Software Development Embedded Real Time Software Development Week 10 Real Time System Design.
MCU: Interrupts and Timers Ganesh Pitchiah. What’s an MCU ?
Typical Microcontroller Purposes
CHAPTER 3 TOP LEVEL VIEW OF COMPUTER FUNCTION AND INTERCONNECTION
ECE 477 Design Review Team 14  Spring 2011 Paste a photo of team members here, annotated with names of team members. Jinliang Wei, Kelton Stefan, Ankith.
1-1 Embedded Network Interface (ENI) API Concepts Shared RAM vs. FIFO modes ENI API’s.
Page 1 D&C EBV Seminar June 2003 Motor Demo C868 Chevillot/Jansen June 2003 N e v e r s t o p t h i n k i n g. Infineon C868 Hands On Training CAPCOM6.
1 Lab 5: Controls and feedback. 2 Lab 5: Control and Feedback This embedded system uses the Photo sensor to detect the light intensity of the environment.
Seraj Dosenbach Greg Lammers Beau Morrison Ananya Panja.
Autonomous Helicopter James LydenEE 496Harris Okazaki.
Microprocessors 1 MCS-51 Interrupts.
Virtual Imaging Peripheral for Enhanced Reality Aaron Garrett, Ryan Hannah, Justin Huffaker, Brendon McCool.
Team 6 DOODLE DRIVE Alexander Curtis Peachanok Lertkajornkitti | Jun Pan | Edward Kidarsa |
Chapter 2 Basic Principle of PLC PLC Configuration &Function   Basic Configuration  CPU  Memory  Programming Interface  Communication.
Josh Marchi, Jeff King, Paul Rosenberger, Dan Chambers – Software Design Considerations –
Team 5: DEATH Software Design Overview. Software Path Main/Startup Function –Initialize Peripherals –Setup RTI to call main program loop –Put processor.
6-1 Infineon 167 Interrupts The C167CS provides 56 separate interrupt sources that may be assigned to 16 priority levels. The C167CS uses a vectored interrupt.
MicroC/OS-II S O T R.  MicroC/OS-II (commonly termed as µC/OS- II or uC/OS-II), is the acronym for Micro-Controller Operating Systems Version 2.  It.
Network and Systems Laboratory nslab.ee.ntu.edu.tw.
Chapter 5 - Interrupts.
TIMERS AND INTERRUPTS AVI SINGH KEVIN JOSE PIYUSH AWASTHI.
Embedded Systems Design 1 Lecture Set 8 MCS-51 Interrupts.
ChibiOS/RT Demo A free embedded RTOS
SOFTWARE NARRATIVE PRESENTED BY: JUSTIN LINDLEY Team # 15: Acoustic Storm Interweaving the impressive visual power of electricity and the visceral emotion.
EE/CS-352: Embedded Microcontroller Systems Part V The 8051 Assembly Language Interrupts.
MICROPROCESSOR DETAILS 1 Updated April 2011 ©Paul R. Godin prgodin gmail.com.
ECE477 Senior Design Android street car Team 12 Libo Dong 1.
SGDRS Software System Design Justin A. King WWU EET Senior project 2013.
Software Narrative Autonomous Targeting Vehicle (ATV) Daniel Barrett Sebastian Hening Sandunmalee Abeyratne Anthony Myers.
DEPARTMENT OF ELECTRONICS ENGINEERING V-SEMESTER MICROPROCESSOR & MICROCONTROLLER 1 CHAPTER NO microcontroller & programming.
Why are Timer Functions Important?
Application Case Study Security Camera Controller
Timer and Interrupts.
UNIT – Microcontroller.
Software Design Team KANG Group 1.
Servos The material presented is taken from a variety of sources including:
Servos The material presented is taken from a variety of sources including:
PROMGRAMING YOUR ROBOT
Ethan Hall Michael Kelton Greg Wegman Vashisht Lakhmani
CSCI1600: Embedded and Real Time Software
Presenter.
Lecture 9: TI MSP430 Interrupts & Low Power Modes
SELF BALANCING BIPED ROBOT
TCSP – Software Design.
CSCI1600: Embedded and Real Time Software
Presentation transcript:

Seongwoon Ko Ankith Cherala Jinliang Wei Kelton Stefan

 Design Considerations  Main Function Flow Chart  Code Modules  Hierarchical Arrangement of Code Modules  Biped Control GUI

 14 KB RAM, 512 KB Flash – large enough  Language: Embedded C ◦ Compiler takes care of where to put variables and code.  Explicitly Put into Flash (declared as const) ◦ Look-up tables for trigonometric functions ◦ Vector arrays of foot positions for static sub- actions (later)

 8 PWM channels to control 8 servos  Problem: not fully utilize the duty resolution ◦ Servo refresh period: 25 ms ◦ Pulse width 0.6 ms ~ 2.4 ms controls 0 ~ 180 degrees of turning ◦ Only use 7.2 % of the duty register resolution ◦ Not accurate enough

 Solution: ◦ Set PWM period to 2.5 ms ◦ 1 servo refresh period consists of 10 PWM periods ◦ Set PWM duty register only for the first period, set others to 0 (timer is used)

 Connected to WiFly card for communicating with control GUI  Interrupt-driven receive ◦ Not know when user will send command  Program-driven write ◦ Send status message to user periodically

 Connected to accelerometer for measuring external force.  Micro as master, accelerometer as slave  Interrupt-driven ◦ Needs to take immediate action for external force for balancing

 1 ATD channel connected to ultrasonic range finder to detect obstacles  Program-driven ◦ Checks output periodically ◦ Biped walks slowly, so enough time to avoid obstacles

 Accumulate timer tickets to trigger the following actions: ◦ Set and reset PWM duty register ◦ Read output from ultrasonic range finder ◦ Send status message to PC

 User-Control Mode ◦ Read control message, act accordingly ◦ Assume no need to self-balance or avoid obstacle – user should take care of it  Auto-Navigation Mode ◦ Read environment data, walk freely while avoiding obstacles and balancing itself

 State Machine + Interrupt Driven + Pooling Loop  Two States: ◦ User-control state ◦ Auto-navigation state  Interrupts: WiFly, accelerometer, timer  Interrupts service routines set flags, infinite main loop checks flags and acts accordingly

 Four Main Actions: Walk, Turn, Stop, Balance  Each action done by doing sub-actions ◦ Walk: lift left foot -> bent for balancing -> move left foot to front -> …  Static sub-actions and Dynamic sub-actions  Variables to store foot positions and states  Periodically adjust itself

 Static sub-action: pre-defined array of foot positions and orientations (stored in flash)  Static sub-actions performed under default conditions (no significant external force other than gravity)  When a static sub-action is done, modify foot position and foot position state  If needs to change to another action, move to another sub-action based on current foot position state

 Dynamic sub-action: calculate next foot position and orientation based on current foot position and environment information (acceleration, …)  Significant external force -> Switch from static sub-action to dynamic sub-action  When possible -> switch back to static sub- action  How to calculate next foot position? – not yet know

Timer Accelerometer(SPI) WiFly Card(SCI)

o Balance itself under significant external force (dynamic sub- actions). o In SPI ISR, SPI interrupt is also handled but simply change acceleration value. o Return with each servos at their positions before interrupt – to resume appropriate static sub- action

 Read message from WiFly card and push it to message queue – possibly pending messages  Increment msgCnt by 1  Note: SCI interrupt is disabled/ignored when serving SPI interrupt

Preliminary Flowchart

 PWM-Servo Control module ◦ Control the servo to turn to given an angle  Inverse-Kinematics module ◦ Given a foot position and orientation, calculate servo angles  Next-Sub-Action module ◦ Based on the action to perform and current feet positions, determine next sub-action to perform

 Dynamic-Next-Position module ◦ Based on environment information and current foot positions, find next foot positions to balance itself  SCI-WiFly module ◦ Provides functions initializing SCI port 1, sending messages to and receiving messages from WiFly card  MsgParser module ◦ Parse messages received from WiFly card and set appropriate global variables.

 SPI-Accelerometer module SPI initialization; SPI interrupt service routine  ADC–Obstacle module ◦ ATD channel initialization; Read and set obstacle distance and modify other variables if needed  Timer module ◦ Timer initialization; Timer interrupt service routine  Status LED module