User Tools

Site Tools


haas:fall2022:c4eng:projects:fso2

Corning Community College

ENGR1050 C for Engineers

PROJECT: Figure Something Out (FSO2)

OBJECTIVE

Build and complete your desired project, making use of your component, and realizing your prototype.

Be sure to present your project to the project documentation page, to allow everyone see what has been done.

OVERVIEW

Your task is to:

  • build something that uses your component and realizes your prototype idea
  • write a program that accomplishes the desired task
  • broader-term view:
    • fso0: figure out how to use some component
    • fso1: prototype some circuit putting it to greater use
    • fso2: finished product

Example:

  • fso0: figure out how to use an ultrasonic sensor
  • fso1: prototype a “useless” machine, using the ultrasonic sensor as a proximity sensor to determine if the user's hand is still near the switch (to avoid injury)
  • fso2: finished product of a “useless” machine

GRABIT

To assist with consistency across all implementations, data files for use with this project are available on lab46 via the grabit tool. Be sure to obtain it and ensure your implementation properly works with the provided data.

lab46:~/src/SEMESTER/DESIG$ grabit DESIG PROJECT

EDIT

You will want to go here to edit and fill in the various sections of the document:

ultrasonic proximity sensor & lcd 1605 display screen & leds

DESCRIPTION

Basically, LEDs are just tiny light bulbs that fit easily into an electrical circuit. But unlike incandescent bulbs, they don't have filaments that burn out, they use less electricity, and they don't get especially hot. They're illuminated solely by the movement of electrons in a semiconductor material, and they last just as long as a standard transistor. The life span of an LED surpasses the short life of an incandescent bulb by thousands of hours. Because of these advantages, tiny LEDs are one of the most popular technologies used to light LCD TVs.

DEMONSTRATION

where's the demonstration

Mine Sweeper

This project is a miniature and extremely basic version of minesweeper using the LED 8by8 Matrix and the joystick. The code selected a random LED and when the Joystick control gets closer to the selected LED a buzzer will sound higher pitched and faster between sounds. To select the LED that one believes is the answer press down on the joystick (axis-z). A red or Blue LED lights up, Red means the answer is wrong, Blue means the answer is correct.

DEMONSTRATION

The Distance Box (LED Lights, Proximity Sensor and LCD)

DESCRIPTION

For fso2, I used five items from my Starter Kit. Three LEDs, a proximity sensor and an LCD. An LED light is an electronic device that emits light when an electric current flows through it. So, an LED converts electrical energy into a light source. LED lights can also be used as an ON/OFF switch for a specific duration of code. A proximity sensor is a device that can detect or sense the approach or presence of nearby objects without touching it. These sensors also convert the information that is received from the approach or presence of the objects into an electrical signal. A Liquid Crystal Display (LCD) is an electronic device, which is frequently used in many applications for displaying information in a text or image format. An LCD is used for displaying the alphanumeric character on its screen. Alphanumeric characters are the numbers 0-9 and letters A-Z (both uppercase and lowercase). The LCD display is consists of 8-data lines and 3-control lines which are used for interfacing the LCD display with 8051 microcontroller.

DEMONSTRATION

Building the distance box.

Parts Needed: Foam board, Bass Wood, Clear Gel Tacky Glue, An Exacto Knife, the Arduino board that was finished being built in the fso1 project.

I used the foam board and the bass wood to build a box to place the Arduino board into. It's called the distance box. The opening in front of the box shows the proximity sensor and the LEDs. The other opening in the side of the box allows for the LCD to be shown. The distance box works in a simple way. As an object moves in front of the proximity sensor the LEDs light up and the LCD changes. If an object is very close to the proximity sensor then the red LED lights up and the LCD calculates the distance. If the object is halfway to the proximity sensor then the yellow LED lights up and the LCD calculates the distance. If an object is very faraway from the proximity sensor then the green LED lights up and the LCD calculates the distance.

THE SHY PI

DESCRIPTION

Basically my fso1 was a distance sensor with a buzzer and light system. As you get closer the buzzer gets higher pitched If distance>30cm the green light was on and the buzzer was off. If distance<30cm the yellow light turned on and the green light turned off. If distance<10cm the red light turned on and the yellow light turned off. However this is a very shy pi so whenever something gets too close the pi gets scared and turns off.

DEMONSTRATION

Stopwatch

DESCRIPTION

It uses the last configuration of the breadboard for fso1 except with 2 buttons added. These buttons are used as a 'reset' and 'pause' button for the stopwatch. It iterates a counter every clock cycle to count its lowest value of time which is by far the least efficient way to accomplish the functionality of a stopwatch. The stopwatch only displays hours and minutes with seconds displayed on the six LEDs in binary from 0-59. This is not useful.

DEMONSTRATION

Starting the stopwatch is as easy as pressing the 'start/stop' button, on the left. This initially starts the LEDs counting up to 1 minute in the least helpful way. You can also reset the counter without stopping it if you want, but it doesn't matter anyway because displaying to a screen slows the program down so much that one second is like 150% longer.

PROJECT 6

DESCRIPTION

DEMONSTRATION

4-Digit 7-Segment LED Timer

DESCRIPTION

This circuit uses the 4 digit LED display and the clock coding feature to serve as an active counter that begins at 0 and counts up to 9999. This timer is different because I have added a button that when pressed will halt the counting at the current number. Then, when the button is pressed again, the counting will resume at the same number, until the button is pressed again the process will repeat.

DEMONSTRATION

Thrust Vector Control (TVC) Mount

DESCRIPTION

In this project, I used the Adafruit Gy-521 and two Servos. These electronics were used for the goal of making sure that a model rocket is properly orientated during its flight and guaranteeing a nominal trajectory for it.

The GY-521 is an accelerometer/gyroscope that will detect a change in the orientation of the craft as it is flying and will send a signal to the Arduino that the orientation of the craft is off. This will then send a signal to the servos that the orientation is off and needs to be fixed. Determining how much of a correction needs to be made is determined by a Proportional Integral Derivative (PID). A device that will automatically apply an accurate and responsive correction to a control function. This basically determines how fast/ intensely the servo responds to an error in the orientation of the device.

PROJECT 9

DESCRIPTION

DEMONSTRATION

PROJECT 10

DESCRIPTION

DEMONSTRATION

PROJECT 11

DESCRIPTION

DEMONSTRATION

PROJECT 12

DESCRIPTION

DEMONSTRATION

PROJECT 13

DESCRIPTION

DEMONSTRATION

PROJECT 14

DESCRIPTION

DEMONSTRATION

PROJECT 15

DESCRIPTION

DEMONSTRATION

PROJECT 16

DESCRIPTION

DEMONSTRATION

PROJECT 17

DESCRIPTION

DEMONSTRATION

 

SUBMISSION

To be successful in this project, the following criteria (or their equivalent) must be met:

  • Project must be submit on time, by the deadline.
    • Late submissions will lose 33% credit per day, with the submission window closing on the 3rd day following the deadline.
  • All code must compile cleanly (no warnings or errors)
    • Compile with the -Wall and –std=gnu18 compiler flags
    • all requested functionality must conform to stated requirements (either on this document or in a comment banner in source code files themselves).
  • Executed programs must display in a manner similar to provided output
    • output formatted, where applicable, must match that of project requirements
  • Processing must be correct based on input given and output requested
  • Output, if applicable, must be correct based on values input
  • Code must be nicely and consistently indented
  • Code must be consistently written, to strive for readability from having a consistent style throughout
  • Code must be commented
    • Any “to be implemented” comments MUST be removed
      • these “to be implemented” comments, if still present at evaluation time, will result in points being deducted.
      • Sufficient comments explaining the point of provided logic MUST be present
  • No global variables (without instructor approval), no goto statements, no calling of main()!
  • Track/version the source code in your lab46 semester repository
  • Submit a copy of your source code to me using the submit tool (make submit on lab46 will do this) by the deadline.

Submit Tool Usage

Let's say you have completed work on the project, and are ready to submit, you would do the following:

lab46:~/src/SEMESTER/DESIG/PROJECT$ make submit

You should get some sort of confirmation indicating successful submission if all went according to plan. If not, check for typos and or locational mismatches.

RUBRIC

I'll be evaluating the project based on the following criteria:

91:fso2:final tally of results (91/91)
*:fso2:used grabit to obtain project by the Sunday prior to duedate [13/13]
*:fso2:presentation of project to project page [39/39]
*:fso2:clean compile, no compiler messages [13/13]
*:fso2:program conforms to project specifications [13/13]
*:fso2:code tracked in lab46 semester repo [13/13]

Pertaining to the collaborative authoring of project documentation

  • each class member is to participate in the contribution of relevant information and formatting of the documentation
    • minimal member contributions consist of:
      • near the class average edits (a value of at least four productive edits)
      • near the average class content change average (a value of at least 256 bytes (absolute value of data content change))
      • near the class content contribution average (a value of at least 1kiB)
      • no adding in one commit then later removing in its entirety for the sake of satisfying edit requirements
    • adding and formatting data in an organized fashion, aiming to create an informative and readable document that anyone in the class can reference
    • content contributions will be factored into a documentation coefficient, a value multiplied against your actual project submission to influence the end result:
      • no contributions, co-efficient is 0.50
      • less than minimum contributions is 0.75
      • met minimum contribution threshold is 1.00

Additionally

  • Solutions not abiding by spirit of project will be subject to a 50% overall deduction
  • Solutions not utilizing descriptive why and how comments will be subject to a 25% overall deduction
  • Solutions not utilizing indentation to promote scope and clarity or otherwise maintaining consistency in code style and presentation will be subject to a 25% overall deduction
  • Solutions not organized and easy to read (assume a terminal at least 90 characters wide, 40 characters tall) are subject to a 25% overall deduction
haas/fall2022/c4eng/projects/fso2.txt · Last modified: 2022/10/31 10:15 by wedge