*banner
 

EECS 149

Contents
Home
Overview
Logistics
Technology

Lectures
Reading
Assignments
Lab & Project
Seminar

bSpace
Piazza

Reading
References
Resources

Course Development
Wiki
CVS


Labs and Projects

Contents:

  1. Logistics and Policies
  2. Lab Content and Schedule
  3. Course Project Guidelines
  4. Suggested Project Topics
  5. Documentation for hardware and software used in the lab.

The lab content of this course begins with some exercises designed for students to gain some familiarity with programming embedded systems at various levels of abstraction with varying amounts of infrastructure support. It then progresses to team projects. Teams of three to five students will be expected to develop a plan of action including a time line and defined division of responsibilities, and then execute a project that culminates in a demo session and a poster presentation. Project reports are due Friday, December 14 at noon (Pacific). Presentations will be held on Monday, December 10, 9am-12pm, 204 Cory.

Logistics and Policies

Lab Times: Tuesday 10-1, Wed 2-5 pm and Thu 4-7 pm, in 204 Cory

IMPORTANT: Please read these lab safety guidelines and lab policy.

Lab Grading:
Each lab will be graded according to the following rubric:
Pre-Lab - 10% - Should be done before lab, handed in when you get to lab.
Lab Checkout - 45% - You have one week to complete the lab and show the TA.
Lab Writeup - 45% - Writeups are due exactly one week after lab.

Late policy:
Late pre-labs may be handed in during lab for half credit, no pre-labs will be accepted after lab session.
Late Checkout and Lab writeups will be deducted 10% for each day late. Late checkout does not extend your writeup deadline. The writeup is due a week after the scheduled lab date for each lab. You must notify the GSI at least 4 days in advance for any emergency or situation to extend the deadlines.

Lab Writeup Guideline

Lab Content and Schedule

All Labs are taken from the lab guide, and updates will be made over the course of the semester.

Please prepare the prelab exercises before your lab session begins.

  • Lab 1 (August 28, 2012): Interfacing with the WiiMote
    Using LabVIEW, you will establish a Bluetooth connection to a Nintendo WiiMote and send commands to the remote to stream its accelerometer data back through the Bluetooth connection. The goal of the lab is to interface with an embedded system, calibrate and measure an accelerometer, and graph the results.

    Prelab Exercises: Section 3.1.3
    Lab Exercises: Section 3.1

  • Lab 2 (September 4, 2012): Embedded Development Tools
    Through the exercises in this lab, you will learn to use some common tools for programming embedded systems. The goal is to gain some familiarity with the tools by creating a basic "hello world" program using each of them. You will be introduced to the National Instruments sbRIO (Section 1.1 and 1.2), and you will learn how to program it using Wind River Workbench (Section 1.3), Xilinx SDK (Section 1.4), and LabVIEW (Section 1.5).

    Prelab Exercises: Section 1.2.3
    Lab Exercises: Section 1.2, Section 1.3, Section 1.4, and Section 1.5

  • Lab 3 (September 11, 2012): Generate Music and Program an ADC in MicroBlaze
    In this lab, you will program and debug "bare-iron" C code (code that executes in the absence of an operating system) and learn about the MicroBlaze soft-core processor. You will learn about interrupts and how to use them to generate music, and you will learn how to configure an analog-to-digital converter (ADC) to sample an analog input.

    Prelab Exercises: Section 2.1.4 and Section 2.2.4
    Lab Exercises: Section 2.1 and Section 2.2

  • Lab 4 (September 18, 2012): Cal Climber Navigation in C
    This lab will introduce you to the Cal Climber platform. You will program a state machine that reads sensors and drives a robot with a basic sense of orientation while avoiding obstacles. The programming will be done in C using Wind River Workbench.

    Prelab Exercises: Section 4.2.2
    Lab Exercises: Section 4.2

  • Lab 5 (September 25, 2012): Cal Climber Hill Climb in C
    Using your results from the previous lab, you will implement a state machine that instructs the robot to navigate to the top of an incline while avoiding cliffs and obstacles. You will use feedback from the accelerometer to differentiate between an incline and level ground.

    Prelab Exercises: Section 4.3.2
    Lab Exercises: Section 4.3

  • Lab 6 (October 2, 2012): Model-Based Cal Climber Navigation and Hill Climb
    In this lab, you will recreate the previous two labs using a model-based approach. You will design a control algorithm using Statecharts in LabVIEW, verify it using a 3D physics simulator, and deploy the solution to the Cal Climber.

    Prelab Exercises: Section 4.4.3 and Section 4.5.2
    Lab Exercises: Section 4.4 and Section 4.5

  • Lab 7 (October 9, 2012): Project Management
    Students will finalize project teams and project definitions, construct a plan for the project with specific milestones and assign responsibilities to project participants.

    Prelab Exercises: Section 5.1.2
    Lab Exercises: Section 5.1


Course Project Guidelines

Projects will be performed in teams of up to five students and should be selected from the list of suggested projects given below. In exceptional circumstances, student teams may propose projects that are not on this list. All projects should include nontrivial applications of two or more of the following key concepts in the course:

  • concurrency,
  • modeling of physical dynamics,
  • reliable real-time behavior,
  • modal behavior governed by FSMs coupled with formal analysis,
  • real-time networks,
  • simulation strategies, and
  • design methodologies for embedded systems design.
The project report (a poster presentation and demo) should make clear which of the above key concepts are being addressed and how. For example, a project that addresses the fourth and last bullet could focus on code generation from high-level modal models, and demonstrate a design environment based on LabVIEW or Ptolemy II for an embedded target.

Software platforms can be "bare iron," real-time operating systems, embedded tools like LabVIEW Embedded or Simulink/Stateflow with Real-Time Workshop, or standard operating systems such as Windows or Linux. Attention to design quality and reliability and trustworthiness of the end product is essential. For many of the projects, it is highly advised to identify a mentor (typically a graduate student) who provides familiarity with the relevant hardware and/or software.

A list of hardware available for student projects can be found here.

Project Charter
Each group should turn in a single 1-page charter for your project.
Recall that your charter should include:

  1. Overview
  2. Approach
  3. Objectives
  4. Major Deliverables
  5. Constraints
  6. Risk and Feasibility

Project Milestones and Schedule
Working backwards from the completion due date (For Fall 2012, this is December 14), determine when tasks need to be done to complete the project on time. Ensure you are allowing adequate time for debugging integrating disjoint components from several people can take a week or more.

Be sure to consider events such as Thanksgiving (11/22-11/23), Finals Week, etc.. Milestones should indicate which team member is responsible and be no more than one week apart. Be sure to include non-technical tasks such as practicing the presentation or writing the report. Also include a plan to meet with your mentor, preferably once a week (you may want to organize your milestones to land on these dates).

Do not hesitate to be painfully specific. Through the rest of the semester, you will be submitting milestone reports to track your progress in completing these milestones and discussing your milestones with your mentor. Certainly, the milestones could change during the course of the project as you learn and debug things.

Guidelines for Project Presentations:

  • This year's presentations will include slides and a demo. All presentations will be videotaped.
  • You will have 20 minutes for your presentation and demo (make sure to leave additional time for questions). It's very important to finish on time. Practice your presentation several times.
  • Topics to cover:
    1. Overview of the project and your approach
    2. Hardware/software platform and tools used
    3. Main technical challenges -- in design or implementation -- and how you tackled them. Focus on the top 3, at most one slide on each. Include any cool algorithms or design insights that you came up with.
    4. Demo -- could be interleaved with the presentation or performed right after
    5. Finish with a 1-slide summary: what did you achieve, what more can be done?

Guidelines for Project Reports:

  • One report per team. Hard deadline: Friday, December 14, 2012, 12 noon. Submit on bSpace.
  • Recommended length: 5-10 pages, use at least 11 pt font
  • Topics to cover:
    1. Introduction & Problem Definition
    2. Outline of your Approach and how it compares to existing projects
    3. Algorithms and Formal Models used
    4. Major Technical Challenges in the Design/Implementation and how you tackled them
    5. Summary of Results -- what worked, what didn't, why, ideas for future work
    6. A one-paragraph narrative on the roles each team member played in the project
    7. How the project applied 2 or more of the key concepts from the course.
    8. Feedback: List of topics covered in class that came in handy; any topics that weren't covered that would have been useful
  • Illustrate algorithms and models with diagrams, include pictures of your hardware, screenshots, etc.
  • Keep the report short and precise; avoid lengthy and verbose descriptions!
  • You must submit your Peer Evaluation Form to the GSIs in person, or on bSpace electronically.

Suggested Project Topics

Below is a list of suggested projects for Fall 2012. This list will grow until it is time to pick projects. If you want to pursue a project outside of the list, please see the instructors.
  1. Semantic localization
    Mentor: TBD. This project addresses the problem of indoor localization, but rather than trying to identify where in 3-D space a person or object is, it will identify what room they are in. The strategy will be to put an ultrasonic emitter in each room that emits a different signature, and then to use the microphone on a smartphone or other audio pickup device to distinguish the signatures. This could possibly be augmented using accelerometer data to estimate position within a room, as done in the ACComplice project from CMU, or to use accelerometer data to determine when the person is "on the move" and may be moving from one room to another.
  2. Robot Waiter
    Mentor: Dorsa Sadigh
    Imagine a restaurant where the waiters are robots. What would it take to implement this? Here are some of the things that might be involved: (i) perform motion path planning to navigate between the kitchen and tables where customers are sitting; (ii) obey high-level commands from a customer like "Bring me Menu Item A", expressed in structured English or a more formal specification language; (iii) respond to dynamically-changing specifications (customer cancels an order, waiter is hailed by another customer while navigating to the kitchen, etc.); (iv) pick up possibly delicate objects --- cups and plates --- place them on a "tray" and navigate between obstacles to "safely" reach the kitchen, and (v) optimize the distance traverse or time taken or energy consumed in meeting requirements. This project will cover several concepts from the class, including modeling, formal specifications, controller synthesis, real-time behavior, etc. Some subset of the above requirements can be performed. The project can be performed with iRobot Creates or with other platforms such as Lego Mindstorms/NXTs.
  3. Wearable Fall Detector
    Mentor: TBD. This project will use accelerometers and/or gyros attached to clothing to detect when a person has fallen. Key to this project is to learn the character of the sensor data that indicates a fall and to network multiple sensors together to aggregate their data and to report incidents.
  4. Model-Based Design of Motion Control Systems
    Mentor: TBD. This project would enter into a design contest being conducted by Advanced Motion Controls, a leading maker of motion control systems, that has a due date for Phase I of Dec. 7, and a proposal deadline of Sept. 28. The project is defined as a simulation-only project, which is not quite suitable for a class project for this course, but we have begun negotiations with the company to obtain hardware prior to their Phase II so that the project can include some physical realization.
  5. Improved Microblaze Interaction
    Mentor: TBD This project will focus on the interaction between the PowerPC and the Microblaze to provide more convenient development and debugging of real-time embedded code.
  6. Robot Following
    Mentor: TBD This project develop a mechanism for a robot to follow a beacon. In addition to the lab iRobot platform, the project should consider other low-cost alternatives such as the Brookstone Rover.
  7. Gesture Mimicking
    Mentor: TBD This project will use the Xbox Kinect to recognize gestures, and then mimick those gestures in Bioloid robots under the control of a microcontroller.
  8. Pipeless Chemical Plant
    Mentor: TBD.
    This project will develop a small pipeless chemical plant, like that described by the Multiform Project at TU Dortmund. In such a chemical plant, instead of moving material around in pipes, material is moved around in vessels carried by robots.
  9. Sound Source Localization using Distributed Real-Time Platforms
    Mentor: TBD This project will involve determining the location of an acoustical source using an array of precisely positioned microphones on distributed platforms. A gunfire detection system like SST's ShotSpotter (currently deployed in Oakland) is an example application. A platform consists of a Renesas SH7216 microcontroller equipped with a microphone and a floating-point unit for any required signal processing. The distributed platforms will form a small time-synchronized network that enables simultaneous sampling of sound on all microcontrollers. Pt1588, an implementation of the IEEE 1588, will be used for clock synchronization. This project involves real-time programming in C without an operating system.
  10. Quadrotor Control
    Mentor: TBD This project will use the Parrot AR Drone quadrotor aircraft in combination with the lab infrared localization infrastructure to achieve precise and safe maneuvers within a confined area.
  11. Real-time Interactive Multimedia
    Mentor: Dai Bui
    The main idea of the project is to use multiple monitors to display large video computer graphics. The main challenge is to synchronize the pictures between displays to minimize the jitter between and create a smooth picture, while also making sure that the sound and video stay synchronized. A small example application with two cell phones can be seen here. Another aspect of this project could be interfacing the display system with human input using Kinect.
You are not logged in 
©2002-2013 Chess