User Tools

Site Tools


start

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

start [2021/12/28 10:42]
scott [Milestones]
start [2023/01/10 01:39] (current)
scott [Project Setup]
Line 6: Line 6:
  
   * [[Milestone 1]]: (Queues and Analog Board Verification)   * [[Milestone 1]]: (Queues and Analog Board Verification)
-  * [[Milestone 2]]: (Implementing ​Filters in Matlab) +  * [[Milestone 2]]: (Implement ​Filters in Matlab) ​[[milestone_2_task_1|Task 1]], [[milestone_2_task_2|Task 2]], [[milestone_2_task_3|Task 3]] 
-  * [[Milestone 3]]: (Implementing ​Filtering Code, State Machines, in C) [[http://​ece390web.groups.et.byu.net/​dokuwiki/​doku.php?​id=milestone_3_task_1|Task 1]], [[http://​ece390web.groups.et.byu.net/​dokuwiki/​doku.php?​id=milestone_3_task_2|Task 2]], [[http://​ece390web.groups.et.byu.net/​dokuwiki/​doku.php?​id=milestone_3_task_3|Task 3]]. +  * [[Milestone 3]]: (Implement ​Filtering Code, State Machines, in C) [[milestone_3_task_1|Task 1]], [[milestone_3_task_2|Task 2]], [[milestone_3_task_3|Task 3]] 
-  * [[Milestone 4]]: (Adding ​the Guns and Analog Boards with Testing, with Statistics)+  * [[Milestone 4]]: (Add the Guns and Analog Boards with Testing ​and Statistics)
   * [[Milestone 5]]: (Implement a Complete Laser Tag Game with Sound)   * [[Milestone 5]]: (Implement a Complete Laser Tag Game with Sound)
-  * [[Milestone 6]]: (Creative Project: Augment or Modify the Laser Tag System).  +  * [[Milestone 6]]: (Creative Project: Augment or Modify the Laser Tag System)
-  * [[http://​byu-cpe.github.io/​ecen330/​|Link to 330 Web Page]]+
  
 ---- ----
Line 17: Line 16:
 ===== Class Overview ===== ===== 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.+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 ZYBO 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 embedded system ​experience 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.+The process of creating the laser-tag system ​is broken into several milestones. This helps students to schedule their effort ​and to focus on specific portions of the system during implementation. Please see the [[milestones|milestones page]] for more details.
  
 ---- ----
  
-===== Converting ECEn 390 to Linux ===== +===== Laser Tag Overview ​=====
- +
-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: +
-  - **[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. +
-  - 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). +
-  - 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 [[http://​ecen330-lin.groups.et.byu.net/​wiki/​doku.php?​id=setup_options|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 [[http://​ecen330-lin.groups.et.byu.net/​wiki/​doku.php?​id=setup_common|330 lab page]]. +
- +
-==== Important Considerations ​====+
  
-  - If you are using the virtual machineyou 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. +For an understanding of how the lasertag system works at a high levelsee the [[laser_tag_overview|Laser Tag Overview ​page]].
-  - Make sure to re-clone the latest student repo from the [[http://​ecen330-lin.groups.et.byu.net/​wiki/​doku.php?​id=start|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. +
-  - ** 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 ===== +===== System Organization ​=====
- +
-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.+The [[system_organization|embedded system organization page]] provides a general overview of the system that you will construct this semester. The [[system_packaging|system packaging page]] shows the system components and cabling. Finally, you can view data flow in your system ​in this [[data-flow-diagram]].
  
 ---- ----
  
-===== Effort Level =====+===== Linux Requirement ​=====
  
-This course is 3-hour lab course ​and will require at least 9 hours per week (1-in class hour8 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 blockIn general, ​significant amount of time will need to be spent outside ​of the closed-lab times on Tuesday and Thursday.+The embedded software for the laser tag system builds upon the environment and code base used in ECEN 330. You will need access to Linux system with an attached ZYBO board to implement ​and test the software you will write. Unlike 330it is not possible ​to use the 330 emulator ​to test your code in this project class. One major reason for this is the current lack of support for emulating ​the analog-to-digital converter (ADC)For list of possible build environments,​ please see the [[linux_options|Linux options page]].
  
 ---- ----
  
-===== Lab Policies ======+===== Project Setup =====
  
-  - Labs are due on the day specified and must be passed off by a TA during their scheduled hoursThe lab is late otherwise. +Download this archive file ({{:ecen390.tgz|ecen390.tgz}}) ​and extract it into your home directory ​(or another project directory if you prefer). After extracting ityou will have new directory called ecen390The command ​to extract ​the archive is:
-  - During the pandemic, pass-offs will be performed over zoom. +
-  - Source code is submitted using the same check_and_zip.py as is done in 330. +
-  - Each coding-standard infraction will incur a 3% penalty that only applies to the source-code portion of the task/​milestone grade. +
-  - Labs and source code lose 20% for each day that they are late. Weekend days are not counted as late days. +
-  - Labs and source code can lose a maximum of 80% credit for being late (4 days). After thatthey can still be submitted for up to 20% credit.  +
-  - A single late-day is banked each time lab is passed off by the listed early lateThese can be used to offset late penalties for source code or pass off. +
-  - You can accumulate up to 3 late days in the late bank. +
-  - **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.**+
  
-----+<​code>​ 
 +tar -xzf ecen390.tgz 
 +</​code>​
  
-===== Laser Tag Overview =====+The ecen390 project directory contains everything necessary to work on the lasertag system. To setup the CMake build system, type the following commands:
  
-In order to develop a good understanding it is important to understand the high level design of a system.  ​ +<​code>​ 
-[[laser_tag_overview|Laser Tag Overview]] provides a discussion of the basic laser tag design.+cd ecen390/​build 
 +cmake .
 +</​code>​
  
-----+To build your project, type ''​make''​ from the ecen390/​build directory:
  
-===== System Organization ===== +<​code>​ 
- +make 
-The [[system_organization|embedded system organization page]] provides a general overview of the system that you will construct this semester. ​ The [[system_packaging|system packaging page]] of the system packaging and cabling. Finally, you can view data flow in your system in this [[data-flow-diagram]]. +</​code>​
- +
-----+
  
-===== Milestones =====+To download and run your project on the ZYBO board, type the following from the ecen390/​build directory:
  
-The laser-tag project is broken down into several [[milestones|milestones]]. See Learning Suite for due dates.+<​code>​ 
 +make run 
 +</​code>​
  
 ---- ----
- 
-===== 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 ===== ===== Tutorials =====
Line 106: Line 77:
 ===== YouTube Channel ===== ===== YouTube Channel =====
  
-Videos that demonstrate the results of laboratory exercises or that demonstrate best practices are available at this channel. ​[[https://​www.youtube.com/​channel/​UCoDVeJylUjZCQW9TZ3dNS8w/​feed|Please subscribe by clicking here and "​hitting"​ the subscribe button.]]+Videos that demonstrate the results of laboratory exercises or that demonstrate best practices are available at [[https://​www.youtube.com/​channel/​UCoDVeJylUjZCQW9TZ3dNS8w/​feed|this channel]].
 {{ ::​youtube390channelscreenshot.png?​400 |}} {{ ::​youtube390channelscreenshot.png?​400 |}}
  
Line 113: Line 84:
 ===== Groups ===== ===== Groups =====
  
-CLICK [[groups 2021|HERE]] TO FIND YOUR GROUP \\ +Groups from all years past are archived below.
- +
-Students are organized into the following [[groups 2019|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 {{::​groupchangeform2.pdf|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:​ +
-  - Submit 1 copy of code per pair of students. +
-  - Only 1 pass-off per pair of students. +
-  - Where required, only 1 report per pair of students. +
- +
-For Milestones 4 and 5, do the following:​ +
-  - Submit 1 copy of code per group of students. +
-  - Only 1 pass-off per group of students. +
-  - Where required, only 1 report per group of students. +
- +
-Groups from all years are archived below.+
  
 [[Groups 2016]] [[Groups 2016]]
Line 153: Line 104:
 ECEn 390 needs to provide the following data annually for ABET purposes. 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). +  * 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 groupand 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+  * Teamwork (5): Assessment of goals and milestones of project. For this, export the grades for the status reports from Learning Suite. These reports are submitted one per group and are used to ensure that all members of the group are progressing well throughout the semester. 
-  * 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.+  * Experiments and Analysis (6): Students submit a statistical analysis of their system as a part of Milestone ​4. For ABET, just export the grades for this from Learning Suite.
  
  
start.1640713325.txt.gz · Last modified: 2021/12/28 10:42 by scott