User Tools

Site Tools


start

This is an old revision of the document!


Junior Core Laser Tag Project

This is the wiki page for the Laser-Tag Project that is part of the Junior Core experience.


Class Overview

In this course you will construct a complex, multi-player laser-tag system that will help to integrate your knowledge and experience from the other three Junior-Core courses: ECEn 340 (Analog Circuit Design), ECEn 380 (Signal Processing), and ECEn 330 (Programming Embedded Systems). The theories, concepts and lab exercises from these three courses combine to complete an entire system. The analog designs from ECEn 340 provide the shot-firing LED, shot-detecting photo-diode and associated analog electronics to interface with the ECEn 330 board. The theories and algorithms that you learned about in ECEn 380 provide the signal-processing necessary to detect when a player has been shot and also to determine which player was the shooter. Finally, the programming exercises and experience with the ECEn 330 board from ECEn 330 will help you write the necessary 'C' code to create a final working system.

The process of creating the laser-tag system will be broken into several milestones. This will help students to schedule their progress and to focus on specific portions of the system during implementation. Please see the milestones page for details for each milestone.


Converting ECEn 390 to Linux

We have now converted ECEn 390 to Linux. As such, the setup and compilation process is nearly identical to the Linux version of ECEn 330. The one complication is that, unlike 330, it is not possible to complete the lab using the 330 emulator. As such, labs must be completed in the provided lab spaces for the digital and analog labs in the new engineering building. Unfortunately, the department has not converted the lab PCs over to Linux. To overcome this issue, we fortunately have a few choices:

  1. [Preferred] Download a VM image onto a flash drive, plug the flash drive into the lab PC, and use the installed VM-Ware application on the lab PC to run the VM. This has been tested; programs download and run correctly on the development board under this configuration. Note that the VM requires at least 60 Gb of free space on the flash drive. As was announced previously, acquire a quality, USB 3.0 flash drive with 128 GB capacity and access speeds of approximately 100 MB/second or more.
  2. Download VM-Ware onto your personal laptop (this is available for free for BYU students). Also download the provided VM image onto your laptop. Move the USB cable from the lab PC to your laptop. Please make sure not to disconnect the USB cable from the board micro connector (the small micro connector). Please disconnect the big end of the USB cable from the lab PC and plug that into your laptop. The micro-USB connectors on the development board are very fragile and are nearly impossible to repair. Note that the VM requires at least 60 GB of free space on your laptop (or you can use a flash drive if you don't have sufficient free space on your main hard drive).
  3. Other options include running natively under Ubuntu on your laptop. Though this is possible, it is not well-tested and I don't know if the 330 setup instructions are complete/correct in this case. Moreover, it is strongly encouraged to use version 18 of Ubuntu as Xilinx doesn't support later versions yet. If you decide to go this route, know that I will likely be unable to help you with problems. I'll try to answer questions as best as I can but I don't have any easy way to debug your problems. It is best to assume that you are completely on your own under this option. Note that, even though your setup may have worked fine for the 330 emulator, your setup may not work at all when targeting the board. Please anticipate problems and work accordingly!

In all cases, the setup instructions are on the 330 lab page.

Important Considerations

  1. If you are using the virtual machine, you must download the latest VM as it is has been preconfigured to work properly for EC EN 390. Do not attempt to use the 330 VM image for 390 as it will not work properly.
  2. Make sure to re-clone the latest student repo from the 330 setup page. The new repo contains everything necessary to work on the lasertag system. If you want to keep your old ecen330 directory, please rename it to something different and clone the new repo as instructed on the 330 setup page.
  3. Finally, it is the student's responsibility to backup their files. If you lose files and are unable to restore from a backup of those files, there is nothing that I can do. For those using the VM, the easiest thing to do (and it is a very simple thing to do) is to take regular snapshots of the VM and to store those snapshots in a secure location. VMs do get corrupted from time to time and it is usually an easy matter to restore your VM (and the filesystem) from a previously-save snapshot.

Changes for Winter 2021

In response to the pandemic and the shorter semester, I have eliminated the need to write code for the queue during Milestone 1. The queue functionality is provided as a library that is linked with your lasertag code.

In place of writing the queue code, you will need to demonstrate that (1) you can successfully download and run 330 Lab 1 on the 330 development board (just the hello-world part). You will also (2) demonstrate to the TAs that you can take a snapshot of the VM. This way, you can work out any problems with your setup prior to writing code during Milestone 3. If you are not using a VM, explain to the TAs how you will backup your files.

In order to complete the 390 labs, you will need to attend your lab session in person.


Effort Level

This course is a 3-hour lab course and will require at least 9 hours per week (1-in class hour, 8 hours outside of class) to complete the assigned milestones. You cannot expect to complete all of the lab work in a single 3-hour closed-lab block. In general, a significant amount of time will need to be spent outside of the closed-lab times on Tuesday and Thursday.


Lab Policies

  1. Labs are due on the day specified and must be passed off by a TA during their scheduled hours. The lab is late otherwise.
  2. During the pandemic, pass-offs will be performed over zoom.
  3. Source code is submitted using the same check_and_zip.py as is done in 330.
  4. Each coding-standard infraction will incur a 3% penalty that only applies to the source-code portion of the task/milestone grade.
  5. Labs and source code lose 20% for each day that they are late. Weekend days are not counted as late days.
  6. Labs and source code can lose a maximum of 80% credit for being late (4 days). After that, they can still be submitted for up to 20% credit.
  7. A single late-day is banked each time a lab is passed off by the listed early late. These can be used to offset late penalties for source code or pass off.
  8. You can accumulate up to 3 late days in the late bank.
  9. You are not allowed to use public GitHub or like repositories. We scan for these so don't use them. You can use a private gitHub or other repository.

Laser Tag Overview

In order to develop a good understanding it is important to understand the high level design of a system. Laser Tag Overview provides a discussion of the basic laser tag design.


System Organization

The embedded system organization page provides a general overview of the system that you will construct this semester. The system packaging page of the system packaging and cabling. Finally, you can view data flow in your system in this data-flow-diagram.


Milestones

The laser-tag project is broken down into several milestones. See Learning Suite for due dates.


Lab Schedules

The Digital and Analog labs are freely available only during these times:

Monday 8 - 12 and after 6
Tuesday 8 - 12 and after 6
Wednesday 8 - 12 and after 6
Thursday 12 - 3 and after 6
Friday 8 - 12 and after 6

Tutorials

Tutorial content will be added as necessary.


YouTube Channel

Videos that demonstrate the results of laboratory exercises or that demonstrate best practices are available at this channel. Please subscribe by clicking here and "hitting" the subscribe button.


Groups

CLICK HERE TO FIND YOUR GROUP

Students are organized into the following groups. I am extremely reluctant to move people between groups unless there is a very good reason (I want to be in a group with my friend isn't sufficient). So, you must get my OK before you fill out a form to change groups. In the unlikely occasion that you get my OK to change groups, the procedure is described below.

If you have already obtained the instructor's permission, switching groups is only allowed by filling out and submitting the group-change form to Dr. Lloyd. Note that you must get the signatures of both people involved in the switch. Also, you must submit a group-change form if you want to switch teams. You will just note that it is a team switch with a note on the form.


Reports, Code Submissions, Pass-Offs

For Milestones 1, 2, and 3, do the following:

  1. Submit 1 copy of code per pair of students.
  2. Only 1 pass-off per pair of students.
  3. Where required, only 1 report per pair of students.

For Milestones 4 and 5, do the following:

  1. Submit 1 copy of code per group of students.
  2. Only 1 pass-off per group of students.
  3. Where required, only 1 report per group of students.

Groups from all years are archived below.

Groups 2016

Groups 2017

Groups 2018

Groups 2019

Groups 2020

Groups 2021


ABET Notes for Faculty

ECEn 390 needs to provide the following data annually for ABET purposes.

  • Communication (3): youtube videos from students that illustrate their creative project. The links to these videos are to be archived on the group pages (see what was done in 2019, 2018, for example).
  • Teamwork (5): Assessment of goals and milestones of project. For this, export the grades for the weekly status reports from learning suite. These weekly reports are submitted weekly (one per group) and are used to ensure that all members of the group are progressing well throughout the semester. The grade for each report is pass/fail, i.e., the group leader either turned in the report or did not.
  • Experiments and Analysis (6): Students submit a statistical analysis of their system as a part of Milestone 3. For ABET, just export the grades for this from learning suite.
start.1640713325.txt.gz · Last modified: 2021/12/28 10:42 by scott