Skip to content
My final project for UC Santa Cruz Silicon Valley Extension course 5381.037 (Intro to Real-Time Embedded Systems Programming) with instructor Anil Gathala, Summer 2016 term.
C C++ HTML Other
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
CMSISv1p30_LPC17xx
Documentation
Example01
FreeRTOS-Products
FreeRTOS_Library
lpc17xx.cmsis.driver.library
.gitignore
DemoMovie.mp4
DramaticMovie.mp4
Final Project 5381.pptx
Himom.bmp
README.md
README_files.txt
README_links.txt
SPIDebugDemoMovie.mp4
SWTasksAndQueues.pdf
beagle_test_run_periph_spi_app.tdc

README.md

#FinalProject5381

My final project for UC Santa Cruz Silicon Valley Extension course 5381.037 (Intro to Real-Time Embedded Systems Programming) with instructor Anil Gathala, Summer 2016 term.

##File Layout The Example01 folder contains my project source. Other folders are generated for all LPCOpen projects and are rarely modified, except for the file FreeRTOSConfig.h.

##Project Specifications

This final project allows us to bring together what we've learned in the course so far. Although 3 options were given, I'll be attempting them all.

##Features (Common)

  • Implement a full Smart Bulb application in FreeRTOS
  • The LED on-board is the Bulb. In addition use the push button and light sensor.

###Level A: (10 marks)

  • Periodically poll the light sensor
  • When dark – light up the bulb, otherwise light off the bulb
  • (Custom) I added support for the 8 RGB colors and display them according to light intensity.

###Level B: (10 marks)

  • Add a push button
  • Pressing a push button -> switch on light anyway (ignore the light sensor for now)
  • Pressing the push button second time -> switch off light and go back to the smart bulb mode

##Features (Option 1) ###Level C1 (Bonus: +5 marks)

  • Add a seven segment display (use gpio to control each led inside 7 segment)
  • This should display the level of light as seen on the light sensor
  • Choose a simple scale of your choice: 0 -> dark; 8 -> max light (this scale was used).
  • (Custom) I added a segment test sequence mode to verify proper operation of the display.

##Features (Option 2) ###Level C2 (Bonus: +5 marks)

  • Add a PIR occupancy sensor (GPIO)
  • Link: https://www.adafruit.com/products/189
  • Make smart bulb decisions based on both light as well as occupancy
  • (Custom) The Decimal Point on the 7-segment display lights up when the room is occupied.

##Features (Option 3) ###Level C3 (Bonus: +10 marks)

  • Add a I2C/SPI based temp/hum sensor
  • Whenever light state changes (on -> off; off -> on), display both temp and hum

##Features (Custom) ## ###Level C4 Quad display stick

Project Submission Guidelines

Submit just one zip file – with all the project files. I should be able to import it and run succesfully.

Make a simple/quick video of the working demo from you phone and submit the video

A simple / quick document of the s/w design, a block diagram or a flow diagram showing any of the following components implemented:

  • Tasks
  • Message queues
  • ISRs and bottom-halves
  • Timers
  • Semaphores, etc. used

Also show the data flow between components

Please also write a few lines in the text:

  • At what reading of the light sensor your code lights up/off the bulb (thresholds)
  • If doing bonus: mention the 7-segment display scale

Nothing fancy:

  • Make sure your video has enough light
  • The document should be ideally in doc, but can be on a white sheet and scan it.
  • Deadline: Sep 1st is the deadline (11:59 pm)
  • Submit everything by then
You can’t perform that action at this time.