1 / 20

Robotics on the Blackfin Processor

Robotics on the Blackfin Processor. Dr. Fred Martin Assistant Professor, Computer Science University of Massachusetts Lowell. Presentation Overview. History/Motivations for Educational Robot Controllers The Blackfin Handy Board: Hardware Design

ember
Download Presentation

Robotics on the Blackfin Processor

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Robotics on the Blackfin Processor Dr. Fred Martin Assistant Professor, Computer Science University of Massachusetts Lowell

  2. Presentation Overview • History/Motivations for Educational Robot Controllers • The Blackfin Handy Board: Hardware Design • The Blackfin Handy Board: Software Environments • Classroom Support Materials • Demonstration

  3. The Original Handy Board • Developed for MIT LEGO Robot Competition, starting in 1991 • Goal: Give students everything they need to start building robots • Uses 2 MHz Motorola HC11 • 32K bytes of RAM • 4 motor outputs • 7 analog, 9 digital sensor inputs • Built-in battery pack & LCD screen • “Interactive C” language • Open-source design • Over 10,000 in use Helped shape a new product category:Educational/classroom mobile robot controllers

  4. Design Category: Robot Controllers & CPUs • Many options, with various levels of integration • Original Handy Board, LEGO RCX, and XBC/Gameboy provide sensor/motor I/O • Blackfin HB has powerful processor and significant robotics support integrated into one design Degree of Robotics Support -->

  5. Design Goals for Blackfin Handy Board • Highlight power and capabilities of the Blackfin DSP • Vision • Advanced software development • Keep integrated, hand-held design of original HB • Support wide range of sensor/motor I/O

  6. The Blackfin Handy Board

  7. Blackfin Handy Board: CPU and Memory • 600 MHz ADI BF ’537 • 64 MB SDRAM • 256 MB NAND flash • 1 MB boot flash

  8. Blackfin Handy Board: Robot Sub-System FPGA • Xilinx Spartan 3E series FPGA • “Board Support Package” includes • motor PWM, sensor sampling • CMOS camera PPI pass-thru • LCD driver • end-user programmable

  9. Blackfin Handy Board: Motor Output • DC motor output • 4 channels bi-directional control • 1A, 12v per motor • locked antiphase & sign-magnitude PWM • back-EMF velocity sensing • motor status LEDs • Servo motor control • 8 outputs • 5A, +5v motor power supply

  10. Blackfin Handy Board: Sensor Input • three ADI 12-bit A/Ds with 8-1 mux, continuously sampling at 48 kHz • 12 external analog inputs • 10 digital inputs • 8 digital outputs • two i2c connectors • integral 2-axis accelerometer

  11. Blackfin Handy Board: PPI Camera Port • Blackfin PPI port for CMOS cameras (e.g. Omnivision) • FPGA pass-thru (or image processing)

  12. Blackfin Handy Board: Integrated Power Sub-System • Battery/Charge • Built-in 12v (10 AA cell) 2000 mAh battery pack • Smart-charge circuit (rapid, trickle, thermal cut-off) • Charge and run simultaneously • Battery level sensor to Blackfin • Power Regulation • 5A, +5v supply for servo motors & external devices • 3.3v, 1.8v supplies for Blackfin & FPGA • high-efficient switching regulators

  13. Blackfin Handy Board: Communications • Debug Agent • Built-in USB 1.1 emulator • JTAG connector for external emulator RS232 Serial 10/100 BT Ethernet

  14. Blackfin Handy Board: Human I/O DAC w/amp & speaker 16x4 LCD screen User knob 2 buttons & 4 LEDs

  15. Blackfin Handy Board: Software Environments • ADI Visual DSP++ • C/C++ IDDE • High-performance C compiler • VDK Kernel for threads • LWIP TCP/IP stack • gcc & uClinux • Compile standalone apps with gcc • Run uClinux kernel and compile apps that use kernel services • uBoot monitor • LabVIEW Embedded for ADI Blackfin

  16. Academic Support Materials • Freely available courseware based on use of LabVIEW Embedded being developed; expected January 2007 • Robotic Explorations text (2001) will be updated based on new Blackfin Handy Board design

  17. Recap: Stuff You Can Plug Directly into the Blackfin HB • Sensors: • Resistive devices (photocell, switch, thermistor) • Voltage sources (IR transistors, IR distance sensors, any 0-5v source) • Ultrasonic ranging sensors • Modulated sensors (e.g., 40 kHz IR) • i2c devices • Audio sources • Motors • 4 smallish DC motors (12v, 1A) • 8 servo motors • Big DC motors using ESCs in servo outputs (Electronic Speed Controllers) • Vision • Omnivision camera modules

  18. Demonstration • Wall-following using infrared distance sensors • Multithreaded control program with separate priorities for side-mounted and front-mounted sensors • Using VDSP++ and the VDK kernel

  19. void sideSensorThread_RunFunction(void **inPtr) { int side_et = 0; priority = 2; while (1) { side_et = analog(ETSIDE); // Get distance on LEFT if (side_et > 400) // Too Close to wall { clear_led(1); clear_led(2); clear_led(3); set_led(1); // Turn Away pivot_right(75, priority); } else if (side_et < 350) { clear_led(1); clear_led(2); clear_led(3); set_led(3); // Turn Toward pivot_left(75, priority); } else // On Line { clear_led(1); clear_led(2); clear_led(3); set_led(2); // Go Straight motor(2, 100, priority); motor(1, 100, priority); } } } Wall-Following Robot VDK Code Void frontSensorThread_RunFunction(void **inPtr) { int FL_et = 0; // Front Left ET int FR_et = 0; // Front Right ET unsigned int loopCount = 0; priority = 3; while (1) { FL_et = analog(ETFL); FR_et = analog(ETFR); // Detect Front Obstacle while ( (FL_et > 350) || (FR_et > 350) ) { set_led(4); // Left Obstacle if ( FL_et > FR_et + 50 ) {pivot_right(75, priority);} // Right Obstacle else if ( FR_et > FL_et + 50 ) { pivot_left(75, priority); } // Forward Obstacle else { motor(1, 0, priority); motor(2, 0, priority); } FL_et = analog(ETFL); FR_et = analog(ETFR); } clear_led(4); } }

  20. More Information • Schematic design, PCB art, FPGA code, and Blackfin software libraries to be distributed with open-source license • Blackfin Handy Boards publicly available Q4 2006 • See http://www.cs.uml.edu/blackfin/ for latest and to sign up for mailing list • See LabVIEW Embedded Vision Tracking demo here in the booth

More Related