Select Page

Final assignments

 

1.Implement Washing machine simulator on the TIVA Launchpad board

Part I
  1. TIVA launchpad board needs to be interfaced with DC motor through a driver circuit.
  2. Provide 9 V supply to the DC motor using a battery
  3. Identify the the port pins that can be configured to work as PWM peripheral and configure them accordingly
  4. Use precision potentiometer  interfaced to the ADC peripheral to control the speed of the motor
Part II
Support following functionality to run the washing machine
  1. set timer 5/15/30  (use hardware timer or SysTick to keep track of time)
  2. load dt
  3. door close/open
  4. start   -> disable door_open
  5. Wash Cycle
    1. run pre_wash (low speed)
    2. run wash  (medium speed)
    3. run spin  (high speed)
  6. Show time remaining on the 7 segment display (Use timer peripheral)
  7. Show machine status on the 16×2 LCD display
  8. Glow Red LED to indicate error condition and display appropriate error message on the LCD display
  9. Blink Green LED if the machine is running
  10. SW1 switch is used to Abort the wash cycle
  11. SW2 switch is used to suspend/resume the wash cycle
  12. Glow White LED if washing completes successfully
Bonus Points for making use of 4×4 keypad
  1. Use key (4,4) for enter
  2. Use key (1,1) to cycle through time settings
  3. Use key {1,2) to close or open the door (show status on LCD display)
  4. Use key (1,3) to fill detergent
  5. Use key (4,1) to Abort the wash cycle

2.Driver Assistance System

Develop a Driver Assistance System with following features:
  1. Use SW1 key press to indicate Car_Door_Open and Car_Door_Close
  2. Use SW2 key press to indicate Car_Engine_ON and Car_Engine_OFF
  3. Use precision potentiometer to emulate acceleration
  4. Use key on the 4×4 keypad to indicate Safety_Belt_ON and Safety_Belt_OFF
  5. Use the DC motor or Servo motor to indicate the speed of the car
  6. If the car accelerates without wearing the seat belt then it should warn the driver using buzzer and blink blue led
  7. Use character LCD to show state of the car ( Engine: ON/OFF Safety Belt: ON/OFF, Acceleration:  Percentage)
    1. Warning Display: Use 2nd line of the LCD display: Obstruction Detected (blink red), Car_Door_Open, and Safety_belt (blink blue)
  8. Interlocks should be provided to ensure car functions normally following all safety guidelines, for example  Car can not accelerate without Engine_ON etc
Bonus points:
  1. Interface Ultrasound sensor to measure exact distance between the car and the obstacle to assist driver in parking.
    1. Display the distance in meters on 7 seg LED display. Use buzzer to alert the driver in case obstacle is too close (less than 1 m is range)
  2. Interface PIR sensor to detect the human obstacle in close range and execute emergency break by stopping the motor
    1. Use buzzer to alert the driver.

3. Peek and Poke console commands

Extend the UART console program to support read and write to arbitrary memory address:
  1. peek memory_address in hex number_of_bytes_to_read. Display in Hex as well as ASCII string format)
  2. poke memory_address_in_hex number_of_bytes_write Content_in_hex_or_string
Declare led_colour and time_period as global variables. Use peek and poke debug method to change colour or blinking speed from the command line.
Add a symbol/variable in Linker command file. This variable will point to a message buffer to be displayed 16×2 LCD display. The message we should be able to set from command line using poke command
4.UART Driver
Write a UART driver program to initialize, transmit, and receive the data using UART port in TIVA launchpad board. Make sure you remove TivaWare library from program
5.ADC and PWM
Develop a  down-counting timer using a ADC and PWM peripherals
  1. UART commands that needs to be supported
    1. > timer set xxx (sec)
    2. > timer start/pause/resume/reset
  2. Further, SW1 and SW2 should provide functionality to start/stop/pause/resume the timer
  3. Servo motor is used to indicate the current timer status. It starts with max position and rotates to min value timer reaches zero value
  4. LED blink speed depends on the potentiometer value. Maximum deviation will keep LED on all the time and min value on potentiometer switches off LED
  5. 7-segment display is used to show timer value by default. However, whenever ADC value is changes, the seven segment shows updated ADC value for some time before displaying the Timer value
  6. 7-segment display should not flicker