|
|
(One intermediate revision by one other user not shown) |
Line 108: |
Line 108: |
|
| |
|
| = Commissioning = | | = Commissioning = |
| Refer to the syllabus for the commissioning deadline. There are penalties for not completing on time. Refer to the EG1003 Grading Policy for more information. | | Refer to the syllabus for the commissioning deadline. There are penalties for not completing on time. Refer to the EG1004 Grading Policy for more information. |
|
| |
|
| Load your VI into the PC connected to the train layout, and interface it with the Commissioning Test VI. The Commissioning Test VI can be located at | | Load your VI into the PC connected to the train layout, and interface it with the Commissioning Test VI. The Commissioning Test VI can be located at |
Line 146: |
Line 146: |
| {{SLDP: Late Delivery}} | | {{SLDP: Late Delivery}} |
|
| |
|
| = Appendix A: Train Electrical Specifications = | | = Appendix A: Specifications = |
|
| |
|
| == Output control of the track ==
| |
|
| |
|
| [[Image:RTGS1.jpg|frame|none|Figure 1: Layout of the eight sectors on the train track]]
| | = Appendix B: = |
|
| |
|
| Each part of the track is separated into different sectors. The sectors can be classified into two types, X and Y (refer to the diagram). Sectors 1, 3, 5, and 7 are X type and Sectors 2, 4, 6, and 8 are Y type.
| |
|
| |
|
| There is a Sub-VI that will be provided that will cause the tracks to move depending upon which data is sent to the VI. Only include this Sub-VI in your their logic VI. The Sub-VI has eight inputs which are Boolean named, Sector 1 through Sector 8.
| |
|
| |
| For the X type sectors, a Boolean value of ''True'' will cause the tracks to be oriented for the train to cross. A Boolean Value of ''False'' will cause tracks to be oriented for the train to go straight.
| |
|
| |
| For the Y type sectors, a Boolean value of ''True'' will cause the tracks to be oriented for the train to be diverted to the diagonal track. A Boolean value of ''False'' will cause the tracks to be oriented for the train to travel on the straight track.
| |
|
| |
| == Input from the track ==
| |
|
| |
| [[Image:RTGS4.jpg|frame|none|Figure 2: Layout of the twelve possible positions of obstacles on the train track]]
| |
|
| |
|
| |
| = Appendix B: LabVIEW =
| |
|
| |
| '''Note:''' The following instructions are for your VI that will interface with the Benchmark Assessment A, as well as the Commissioning VI.
| |
|
| |
| On the front panel, there must be 12 Boolean switches to represent the 12 inputs of the train, a menu ring to indicate the train's starting position (top, middle bottom), a Boolean switch to indicate whether the train is operating in Normal Mode or Reverse Running Mode, eight Boolean lights to represent each of the eight sectors, and one Boolean light to represent No Path. For Benchmark Assessment A, you will have fewer available Boolean switches and Boolean lights, so only fill in or set the ones that are present on your VI.
| |
|
| |
| [[Image:Train8.jpg|frame|right|Figure 1: Twenty-eight node pattern]]
| |
| * On the front panel of the LabVIEW program, right click on the connector icon on the top right hand corner icon. Choose ''Show Connector''.
| |
| * Right click on the connector icon and select ''Patterns''. Choose the pattern with 28 nodes.
| |
| == Front Panel Object Definitions ==
| |
| When creating your VI, please adhere to the following definitions for the inputs and outputs of your front panel objects. Failure to do so will result in your VI not working as intended when it comes time to commision on the physical track.
| |
| {| class="wikitable" style="text-align: center; margin: 1em auto;"
| |
| !
| |
| !True!!False
| |
| |-
| |
| |style="text-align: left"|Blocking Signals A through K
| |
| |blocked||not blocked
| |
| |-
| |
| |style="text-align: left"|Direction of Travel
| |
| |right-to-left||left-to-right
| |
| |-
| |
| |style="text-align: left"|Travel Mode
| |
| |Reverse Running Mode||Normal Mode
| |
| |-
| |
| |style="text-align: left"|Sectors 1 through 8
| |
| |cross||straight
| |
| |-
| |
| |style="text-align: left"|No Path
| |
| |no path||path exists
| |
| |}
| |
| <br style="clear:both" />
| |
| * To assign the Boolean switches and displays to a node, click on the Boolean switch or light on the front panel then click on the node you wish to assign it to.
| |
| * If you make an error in a connection, right click the incorrect terminal and select ''Disconnect This Terminal''.
| |
| * The 8 nodes on the left side will be for the Boolean switches representing inputs showing occupancy for locations A-H. The 4 nodes on the bottom half of the icon starting from the left will be the inputs for locations I-L.
| |
| * Connect the 8 Boolean outputs that represent the orientation of the sector to the 8 nodes on the right side of the icon.
| |
|
| |
| {| class="wikitable" style="text-align:center; margin-left:auto; margin-right:auto"
| |
| |+align="bottom"|Figure 2: Node assignments of the student's digital logic circuit
| |
| |-
| |
| |Input<br />A
| |
| |rowspan="4"|
| |
| |rowspan="4"|
| |
| |rowspan="4"|No<br />Path
| |
| |rowspan="4"|Direction<br />of<br />Travel
| |
| |rowspan="4"|Top or<br />Bottom
| |
| |rowspan="4"|Reverse<br />Running<br />Mode
| |
| |Sector<br />1
| |
| |-
| |
| |Input<br />B
| |
| |Sector<br />2
| |
| |-
| |
| |Input<br />C
| |
| |Sector<br />3
| |
| |-
| |
| |Input<br />D
| |
| |Sector<br />4
| |
| |-
| |
| |Input<br />E
| |
| |rowspan="4"|Input<br />I
| |
| |rowspan="4"|Input<br />J
| |
| |rowspan="4"|Input<br />K
| |
| |rowspan="4"|Input<br />L
| |
| |rowspan="4"|
| |
| |rowspan="4"|
| |
| |Sector<br />5
| |
| |-
| |
| |Input<br />F
| |
| |Sector<br />6
| |
| |-
| |
| |Input<br />G
| |
| |Sector<br />7
| |
| |-
| |
| |Input<br />H
| |
| |Sector<br />8
| |
| |}
| |
|
| |
| *Replace the faded icon in the program ''Commissioning Test.vi'' with your digital logic VI. Right click on the icon and choose replace. Then choose ''Select a VI'' and find your VI. Replace it as shown in Figure 3.
| |
|
| |
| [[Image:Train9.jpg|frame|center|The program ''Commissioning Test.vi''
| |
| for students to insert their logic circuit]]
| |
|
| |
| * Before testing your digital logic circuit, turn on the power to the middle workbench where the two power supplies are connected.
| |
| * Continuously run the ''Commissioning Test.vi'' and ensure that the lights on the front panel accurately represent the presence or absence of a train.
| |
| * Flip the ''Reset'' switch up and down and the track will be preset to the specified orientation.
| |
| * Once those parameters are checked, test the digital logic circuit by flipping the ''Test Track'' switch.
| |
|
| |
|
| = Appendix C: Drop Down Selection Box = | | = Appendix C: Drop Down Selection Box = |
| ''In order to create and use a drop down selection box in your project, please closely read the following instructions that will aid you in creating and configuring the drop down box for use in your project:''
| |
|
| |
| # The very first step in the entire drop down box creation process is placing the to-be configured drop down control on the front panel of your VI. Go ahead and right-click anywhere on the front panel; select '''''Text Ctrls''''', followed by '''''Menu Ring'''''. You should now see a drop-down menu appear on the front panel, which should look similar to the following: [[Image:Train12.jpg|frame|none]]
| |
| # Next, we will need to add some appropriate selections to the drop-down box you created in the last step. These selections will facilitate multiple modes of the drop-down box and therefore let you control many different cases of one control structure. Right-click on your drop-down menu on the front panel, and click '''''Edit Items'''''. You should see a dialog box appear on the screen. Click on the insert button, and enter the name you will assign the TOP track. Hit the return key and enter the name you will assign the MIDDLE track. Repeat this process again for the BOTTOM track. After entering the bottom track, check to make sure that there are exactly three items entered. Your screen should look like the following: [[Image:Train13.jpg|frame|none]] Hit OK and your drop-down menu will have the correct settings to implement your digital logic.
| |
| # Finally, we want to use the drop-down menu to control a case structure. Create a case structure on the back panel and wire the drop-down menu to it. You will notice that there are currently only two different cases available in the case structure. We do not want this, as there are three different positions that the train can be placed on. Right click on the case structure and select '''''Add Case After'''''. This will create a third case, which is necessary for completing the digital logic for the train. You will notice that the three different cases are labeled 0, 1, and 2. Case 0 refers to the top track, case 1 the middle track, and case 2 the bottom track. '''''<span style="color: red">Do NOT change these labels to any text, your VI will not function if you do this. Your back panel will look similar to the following:</span>'''''[[Image:Train14.png|frame|none]]
| |
|
| |
| = Appendix D: Boolean Logic =
| |
| It is important to have a solid foundation in Boolean Logic when designing the RTGS system. The technique that is recommended for approaching this project is to '''create truth tables''', '''generate Kaurnaugh maps (K-maps)''', '''generate logical equations''', and '''simplify those equations'''. These simplified equations can be implemented using gates in the LabVIEW software. This guide presents a standard method for using this technique, it is highly recommended to read this entire section before beginning the project.
| |
|
| |
| == Truth Tables ==
| |
| A truth table is a chart which shows what happens under any circumstance for a logical device. Any logical system, that is a system which has binary (0’s and 1’s) input can be considered a '''finite state machine'''. This means that all the possible combinations of inputs can be known, and all the possible outcomes of those inputs can be plotted. The number of combinations of inputs can be determined by the number of input variables:
| |
|
| |
|
| <math style="display: block; margin: 0 auto;">\# combinations = 2^{\# variables}</math>
| | == == |
| | |
| Thus when we have 5 possible obstructions on the track, which can either be on or off, we have 2<sup>5</sup> possible combinations of those obstructions, which in this case is 32. This number tells you how many rows you must put in your truth table.
| |
| | |
| When you begin writing your truth table, always start by writing all the input combinations. It is simple to calculate how many there should be, but to ensure each possible combination is included with no repeats, follow this procedure:
| |
| * We have an example logical system with 3 variables, thus there are 8 possible combinations of these 3 variables that we can have
| |
| * Each variable gets its own column in the table, in whatever order you like, as long as you keep track of it
| |
| * Starting with the rightmost column of inputs, write “0” in the first row of the table, then “1” in the next row, then “0”, then “1”, and so on, alternating the value of the column every row
| |
| * In the next column to the left, write “0” in the first two rows, then “1” in the next two rows, alternating the value every two rows
| |
| * In the leftmost column of our example table, write “0” for the first four rows, then “1” for the last four rows
| |
| * For systems with a greater number of variables, continue the pattern, doubling the number of rows before you alternate the value in each successive column
| |
| | |
| {| class="wikitable" style="font-weight: bold; text-align: center; float: right;"
| |
| !A!!B!!C
| |
| |-
| |
| |style="background-color: rgb(109, 158, 235);"|0
| |
| |style="background-color: rgb(109, 158, 235);"|0
| |
| |style="background-color: rgb(109, 158, 235);"|0
| |
| |-
| |
| |style="background-color: rgb(109, 158, 235);"|0
| |
| |style="background-color: rgb(109, 158, 235);"|0
| |
| |style="background-color: rgb(224, 102, 102);"|1
| |
| |-
| |
| |style="background-color: rgb(109, 158, 235);"|0
| |
| |style="background-color: rgb(224, 102, 102);"|1
| |
| |style="background-color: rgb(109, 158, 235);"|0
| |
| |-
| |
| |style="background-color: rgb(109, 158, 235);"|0
| |
| |style="background-color: rgb(224, 102, 102);"|1
| |
| |style="background-color: rgb(224, 102, 102);"|1
| |
| |-
| |
| |style="background-color: rgb(224, 102, 102);"|1
| |
| |style="background-color: rgb(109, 158, 235);"|0
| |
| |style="background-color: rgb(109, 158, 235);"|0
| |
| |-
| |
| |style="background-color: rgb(224, 102, 102);"|1
| |
| |style="background-color: rgb(109, 158, 235);"|0
| |
| |style="background-color: rgb(224, 102, 102);"|1
| |
| |-
| |
| |style="background-color: rgb(224, 102, 102);"|1
| |
| |style="background-color: rgb(224, 102, 102);"|1
| |
| |style="background-color: rgb(109, 158, 235);"|0
| |
| |-
| |
| |style="background-color: rgb(224, 102, 102);"|1
| |
| |style="background-color: rgb(224, 102, 102);"|1
| |
| |style="background-color: rgb(224, 102, 102);"|1
| |
| |}
| |
| | |
| Here is what the truth table should look like, with 0s and 1s colored differently to show the pattern:
| |
| | |
| Note that this truth table only shows the inputs. The outputs have not been written in yet. They will occupy their own columns. When you design the RTGS logic, each obstacle will be an input column, and each switch will be an output column. When you are figuring out the logic of the RTGS, remember that it is very difficult to approach the system as a whole.
| |
| | |
| Keep in mind what are some ways to approach the problem using Boolean logic? Which do not require a giant truth table?<br style="clear: both;" />
| |
| | |
| == Karnaugh Maps ==
| |
| A Karnaugh map (K-map) is a diagram that aids the visualization of something called '''prime implicants'''. The term itself is less important and can be explained implicitly through the charts themselves. Essentially, we create K-maps to help see the simplified Boolean equation of a system directly without needing Boolean algebra. However, the K-map method is limited to systems with at most '''four variables'''. With five-variable or greater K-maps can get very complicated.
| |
| | |
| When we draw a K-map, variables are grouped geometrically rather than in separate rows. Let’s begin with the simplest example, a 2-variable K-map. Our map takes the shape of a 2x2 square table, with variable “A” over the right two squares and variable “B” over the bottom two squares:
| |
| | |
| {| class="kmap" style="margin: 1em auto;"
| |
| |-
| |
| !!!!!0!!1
| |
| |-
| |
| !!!!!<math>\overline{A}\,</math>!!<math>A\,</math>
| |
| |-
| |
| !0!!<math>\overline{B}\,</math>
| |
| |0||1
| |
| |-
| |
| !1!!<math>B\,</math>
| |
| |1||1
| |
| |-
| |
| |}
| |
| | |
| The above Karnaugh Map shows the logic for the Boolean OR operation. The cells that the variable is superimposed over correspond to input rows from the truth table for when that variable is 1. In other words, variable “A” has a value of 1 when the input combination AB is 10 or 11. In the truth table for OR, 10 and 11 both output a value of 1. Thus both cells underneath “A” are marked with a 1. Likewise, “B” has a value of 1 when AB is 01 or 11. Both these combinations in the truth table have an output of 1 as well, so we mark the cells with a 1, noting that marking the cell corresponding to 11 is redundant. The top left cell, which corresponds to 00, has 0 as its output, so we do not mark the cell.
| |
| | |
| You can think of the cells that are “covered” by each variable in the K-map as being the cells that correspond to when a variable or obstacle is “on”. The cells that are not covered are the input combinations for when that variable is “off”. The cells themselves each correspond to one output from the truth table. A K-map can only be made for one output variable at a time.
| |
| | |
| To obtain our Simplified Boolean Equation, we must circle groups of 1’s in our K-map and correlate them to logical statements. We can only circle adjacent 1’s and only in powers of two. Working with the K-map from above, we can circle the rightmost two 1’s and we can also circle the bottom two 1’s. In general, you should avoid circling the same cell more than once, however to generate maximum-sized circles, it is sometimes unavoidable. Now that we have our circles, we may now write the logical expression they represent:
| |
| | |
| [[Image:RTGS10.png|frame|none]]
| |
|
| |
| Each individual circle is added to obtain the final Boolean equation. Thus, in our example, the circles add to make the statement A+B. Our Boolean equation is OUTPUT = A+B, which is simply the OR gate.
| |
|
| |
|
| == Boolean Algebra == | | == Boolean Algebra == |
| In general, it is easier to use the K-map to simplify truth tables that are relatively small (less than five variables). However, you may find the need obtain simplified expressions logical systems of a large number of variables, which requires Boolean algebra. In general, an unsimplified Boolean equation obtained directly from the truth table will contain one term for each 1 (maxterm) in the output variable. One equation can only define one output variable at a time. Let’s look at an example truth table of three input variables. We are primarily interested in the output column, which is highlighted in red. The output column values are arbitrary, we are trying to determine their logic:
| |
|
| |
| {| class="wikitable" style="text-align: center;"
| |
| !a!!b!!c!!out
| |
| |-
| |
| |0||0||0
| |
| |style="background-color: rgb(234, 153, 153);"|0
| |
| |-
| |
| |0||0||1
| |
| |style="background-color: rgb(234, 153, 153);"|1
| |
| |-
| |
| |0||1||0
| |
| |style="background-color: rgb(234, 153, 153);"|0
| |
| |-
| |
| |0||1||1
| |
| |style="background-color: rgb(234, 153, 153);"|1
| |
| |-
| |
| |1||0||0
| |
| |style="background-color: rgb(234, 153, 153);"|0
| |
| |-
| |
| |1||0||1
| |
| |style="background-color: rgb(234, 153, 153);"|1
| |
| |-
| |
| |1||1||0
| |
| |style="background-color: rgb(234, 153, 153);"|1
| |
| |-
| |
| |1||1||1
| |
| |style="background-color: rgb(234, 153, 153);"|1
| |
| |}
| |
|
| |
| So we see that the output, ''out'' has a value of 1 when ''abc'', in order, are 001, 011, 101, 110, or 111. Writing these in terms of variables (1 corresponds to ''a'', 0 corresponds to <math style="vertical-align: baseline;">\overline{a}</math> or any other variable), we get:
| |
|
| |
| <math>out = \overline{a}\overline{b}c + \overline{a}bc + a\overline{b}c + ab\overline{c} + abc</math>
| |
|
| |
| Boolean algebra is the process that helps us simplify our Boolean equation. Using a few rules, we can get the same “simplest” expression as we would with a K-map. There are many more rules to Boolean algebra, here is an abbreviated list:
| |
| #Substitution: Any variable listed in these rules may be substituted for a larger expression. e.g, let <math style="vertical-align: baseline;">k=m+pq\,\!</math>
| |
| #Identity: <math style="vertical-align: baseline;">k+0=k\,\!</math> and <math style="vertical-align: baseline;">k1=k\,\!</math>
| |
| #Distributive property of addition: <math style="vertical-align: baseline;">k+ \left ( mp \right ) = \left ( k+m \right ) \left ( k+p \right ) \,\!</math>
| |
| #Distributive property of multiplication: <math style="vertical-align: baseline;">k \left ( m+p \right )=km+kp\,\!</math>
| |
| #Cancellation property: <math style="vertical-align: baseline;">k+ \overline{k} =1\,\!</math> and <math style="vertical-align: baseline;">k \overline{k}=0\,\!</math>
| |
| #Another type of identity: <math style="vertical-align: baseline;">m+m=m\,\!</math> and <math style="vertical-align: baseline;">mm=m\,\!</math>
| |
| #Another type of cancellation: <math style="vertical-align: baseline;">m+1=1\,\!</math> and <math style="vertical-align: baseline;">m0=0\,\!</math>
| |
| #Repeated variables: <math style="vertical-align: baseline;">k+km=k\,\!</math> and <math style="vertical-align: baseline;">k \left ( k+m \right ) =k\,\!</math>
| |
| #Double inversion: <math style="vertical-align: baseline;">k=\overline{\overline{k}}\,\!</math>
| |
| #Associative property of addition: <math style="vertical-align: baseline;">k+ \left ( m+p \right ) = \left ( k+m \right ) +p=k+m+p\,\!</math>
| |
| #Associative property of multiplication: <math style="vertical-align: baseline;">k \left ( mp \right ) = \left ( km \right ) p=kmp\,\!</math>
| |
| #Redundancy: <math style="vertical-align: baseline;">k+ \overline{k} m=k+m\,\!</math> and <math style="vertical-align: baseline;">k \left ( \overline{k}+m \right ) =km\,\!</math>
| |
| #NAND and NOR principle: <math style="vertical-align: baseline;">\overline{k+m}=\overline{k} \overline{m}\,\!</math> and <math style="vertical-align: baseline;">\overline{km}=\overline{k} +\overline{m}\,\!</math>
| |
| #One useful simplification: <math style="vertical-align: baseline;">km+\overline{k} p+mp=km+\overline{k} p\,\!</math> and <math style="vertical-align: baseline;">\left ( k+m \right ) \left ( \overline{k}+p \right ) \left ( m+p \right ) = \left ( k+m \right ) \left ( \overline{k}+p \right ) \,\!</math>
| |
| #Order of Operations: PNAO: Parentheses, NOT, AND, OR
| |
|
| |
| One of the first simplifications that can be made to the equation above is to factor out c from the first three terms and the last one. Like in regular algebra, Boolean variables can be factored when they share the same value across multiple terms. [Rule 3] We now have:
| |
|
| |
| <math>out = c \left ( \overline{a}\overline{b} + \overline{a}b + a\overline{b} + ab \right ) + ab\overline{c}</math>
| |
|
| |
| In fact, we can factor the expression within the parentheses even further:
| |
|
| |
| <math>out = c \left [ \overline{a} \left ( \overline{b} + b \right ) + a \left ( \overline{b} + b \right ) \right ] + ab\overline{c}</math>
| |
|
| |
| Look at the statement within the inner parentheses. When we read out the first and last terms, the statement is true whether b is false or true. [Rule 5] Thus we may rewrite <math style="vertical-align: baseline;">b+\overline{b}</math> as 1, and the whole statement in the brackets becomes:
| |
|
| |
| <math>out = c \left [ \overline{a}1 + a1 \right ] + ab\overline{c}</math>.
| |
|
| |
| When any variable is in an AND statement with 1, it becomes just the variable alone. [Rule 2] The result solely depends on the variable.
| |
|
| |
| <math>out = c \left [ \overline{a} + a \right ] + ab\overline{c}</math>.
| |
|
| |
| Again, we apply Rule 5 on ''a'' to get <math style="vertical-align: baseline;">out = c 1 + ab\overline{c}</math>. Rule 2 can be applied again.
| |
|
| |
| <math>out = c + ab\overline{c}\,\!</math>
| |
|
| |
| The statement is close to completely simplified, but there is still one more step. In the second term, there is a <math style="vertical-align: baseline;">\overline{c}</math> multiplied with ''ab''. This <math style="vertical-align: baseline;">\overline{c}</math> is superfluous because the term ''c'' is already in our expression. In other words, any combination involving ''c'' has already been accounted for, thus the remaining terms in the equation will work independently of ''c''. [Rule 12] Our simplified Boolean equation is:
| |
|
| |
|
| <math>out = c + ab\,\!</math>
| |
|
| |
|
| Note that terms are independent of the order of their arguments, meaning that we can rearrange variables in an equation and still mean the same thing. [Commutative property] | | Note that terms are independent of the order of their arguments, meaning that we can rearrange variables in an equation and still mean the same thing. [Commutative property] |
Template:SLDP:
Introduction and Overview
With the recent spike in water and air based pollution illness is on the rise. The center of disease control has hired you to work on the newly funded project testing different types of nano robotics on the ill and dying. Your patient, Jessy, has volunteered to go through this trial and has entrusted their well being to you and your ability to work with these nano robotics. Jessy is ravaged with disease please program a nano robot to travel through their body, diagnose their diseases and cure them or they'll die.
Prerequisite
Specifications
Using the virtual or physical model of Jessy depicting the location of the diseases, try to determine what the disease could be based on how the leds are acting in the body and compare that to the disease list found below.
There are two programs available to work with the nano robot, python and a digital program.
Task
Cost Estimate
You will need to create a cost estimate using quotes from a reputable vendors. You are not limited to these vendors. When doing your cost estimate, be sure to include specification sheets from the vendors.
Create a cost estimate on a Microsoft Excel spreadsheet. The cost estimate should include the following:
- Labor cost breakdown with hours and rates
- All chips should be itemized with quantity, price per chip, and total cost per chip type
- No decimal places; this is an estimate after all. Round appropriately
- Total cost must be shown in the bottom right corner
Milestones, Benchmarks, and Deliverables
As work is done on the project, three Milestone presentations will report on the project's progress. All of the items assigned in each phase of the project are called Benchmark deliverables. These deliverables often consist of a combination of written submissions, presentations, and demonstrations. Benchmark assessments evaluate the progress of the project.
Preliminary Design Investigation
The Preliminary Design Investigation (PDI) is extremely important, as it lays the groundwork for the project. It outlines the project idea, inspiration, and goals.
The PDI must include:
- Cover Page
- Project Overview
- Goals & Objectives
- Design & Approach
- Cost Estimate
- Project Schedule
- Relevant Pictures
An example PDI template can be found here. The PDI is due by Benchmark A. Do not forget to include the items listed above. Use this link to access the VEX PDI Rubric.
Milestone 1
Prepare a preliminary assessment of the track system using digital logic (truth table, Karnaugh maps, and Boolean equations), a cost estimate, and an MS Project plan.
Look Ahead: What tasks are planned between now and Milestone 2?
See How To Give a Milestone Presentation for the format of a Milestone presentation.
Milestone 1 Deliverables:
- Presentation:
- Project description
- Design approach
- Mission statement
- How will the logic be implemented? (by inspection, partition, truth tables, etc.)
- Cost estimate
- MS Project schedule
- Progress update: current state of the project
Presentation notes:
- Be sure to include any special features and benefits of your design.
Introduction to NRC Programming
Benchmark Assessment A
C:\SLDP Railroad Train Guidance System\Benchmark Assessment A.vi
on the PC connected to the train layout. Your TA will test your VI by running your program with various combinations of tracks being blocked.
Milestone 2
Look Ahead: What tasks are planned between now and Milestone 3?
See How To Give a Milestone Presentation for the format of a Milestone presentation.
Milestone 2 Deliverables:
- Presentation:
- Project description
- Design approach
- Design changes since Milestone 1
- Mission statement
- Samples of logic design
Benchmark Assessment B
Your VI will interface with the RTGS test track by using a custom VI provided by EG. It is located at
C:\SLDP Railroad Train Guidance System\Commissioning Test.vi
on the PC connected to the train layout. Your TA will test your VI by running your program with various combinations of tracks being blocked.
Important: If you are having difficulties completing the requirements for Benchmark Assessment B, please go to Open Lab sessions and ask for help, or otherwise get in touch with your lab TAs, recitation TAs, or come to the TA office in RH515A.
Milestone 3
Look ahead: What tasks are planned between now and the completion of the project?
See How To Give a Milestone Presentation for the format of a Milestone presentation.
Milestone 3 Deliverables:
- Presentation:
- Project description
- Design approach
- Design changes since Milestone 2
- Mission statement
- Updates to logic design
- Truth tables
- Karnaugh maps
- Boolean equations
- VI interface
- Cost estimate (previous and current). What changes were made?
- MS Project schedule (previous and current). What changes were made?
- Progress update: current state of the project (time, budget, etc.)
Commissioning
Refer to the syllabus for the commissioning deadline. There are penalties for not completing on time. Refer to the EG1004 Grading Policy for more information.
Load your VI into the PC connected to the train layout, and interface it with the Commissioning Test VI. The Commissioning Test VI can be located at
C:\SLDP Railroad Train Guidance System\Commissioning Test.vi
Finally, your TA will test your VI such that it indicates no path correctly. If your VI completes all tests successfully, you will be commissioned.
Final Presentation
The Final Presentation will be a technical briefing, similar to the Milestones, but also serves as a sales presentation explaining why your company should be selected instead of the competition.
Your Final Presentation must include:
- Company profile
- Company name
- Employee profile, role(s), and qualifications
- Mission statement
- Problem statement
- Why is the project happening?
- What does the audience need to know?
- Project objective
- What is the purpose of your project?
- Who does your project help?
- What problem does your project solve?
- Project description
- Specify LEED certification
- Examples of LEED implementations in Revit
- Revit drawings
- All floor plan drawings
- Dimensions
- 1:240 scale
- Views of exterior of building: front elevation, side elevation, isometric elevation
- Market and product viability
- Does your company have competitors?
- What makes your project unique?
- How does your design compare to competitors - cost, quality, features?
- Is the project versatile?
- What is the price of your project?
- Conclusion
- Reiterating project purpose
- Highlight project features
- Future goals of the company
- Why should your company be awarded this contract?
- Video pitch
- A description of the problem
- An overview of your solution
- A description of your company and why it is qualified to successfully do this job
- A sample of the truth tables you created
- The resulting logic equations derived and simplified via your K-Map
- Your final LabVIEW programs
- The cost estimate
- Your MS Project from each milestone showing your progress
- A video of the locomotive traversing the layout from left to right and returning
- Why your company is the best choice in awarding this contract
Submission
All SLDPs must be submitted online. Please visit this page for the link to the Project Submission form and each project’s individualized login information. To submit, login to the EG1004 website using this special login information. Submitting with an NYU account or any other account will generate an error. Components may be resubmitted at any time before the deadline. Please note that submission times are based on the most recent submission.
Please note the deliverables for this project are as follows. If any of the following items are omitted, there will be a penalty. Be sure to click "Submit" at the bottom of the form and allow sufficient time for uploading.
The following list includes deliverable items that are required:
- Submission deliverables:
- Final presentation
- Cover page and table of contents
- Truth tables
- K-maps
- Simplified Boolean equations
- LabVIEW VI
- Video
- Final MS Project Schedule
- Final cost estimate
- Resume(s) (No fictitious resumes will be accepted.)
Late Submission
Late submission is not allowed. If a project does not Commission or receive Partial Commission by the deadline set forth in the syllabus, the project will not be allowed to submit and will receive a 0 for the project grade. To receive Partial Commissioning, two TAs must evaluate the project and determine its degree of completion according to the Commissioning requirements and the project will be given a grade accordingly. Please refer to the EG1004 Grading Policy for more information.
Appendix A: Specifications
Appendix B:
Appendix C: Drop Down Selection Box
Boolean Algebra
Note that terms are independent of the order of their arguments, meaning that we can rearrange variables in an equation and still mean the same thing. [Commutative property]
In the RTGS project, each blocking signal acts as an input variable, and each sector switch acts as an output. Obtaining the simplest Boolean equation will be important to streamline any troubleshooting later and to implement the logic in LabVIEW in the simplest manner possible.