Week 21:
Final Project Development (working document)
UNIT DESCRIPTION
Task: Project Development
Complete your final project. Track and document your progress.
Learning outcomes:
Have you answered these questions:
- what is the deadline? How much time do I have left?
- what tasks have been completed, and what tasks remain?
- how will I complete the remaining tasks in time?
- what has worked?
- what hasn't?
- what questions still need to be resolved?
- what have you learned?
The Essence of my Final Project:
My final project, the Wine Tank Headspace Manager, is a device to solve a real-world problem. I would consider it a process control device, where a sensor monitors a gas stream for Oxygen, and controls a purge gas with a solenoid valve.
This device is an example of a classic BANG-BANG controller. Bang - the gas is turned on. BANG - the gas is turned off. Another more formal term for this type of controller is a hysteresis controller. Controls are very interesting, and they are very common in many of the Fabacademy projects, as well as the equipment in our Fablabs. A nice resource regarding different controllers can be found here: http://courses.csail.mit.edu/6.141/spring2011/pub/lectures/Lec03-MotorControl.pdf. The fun part is finding useful and purposeful applications for these type of controls for real world problems. The applications are endless.
What is the deadline? How much time do I have left?
I was told on June 5, by my instructor Scott Zitek, that I am scheduled to give my final project presentation on Wednesday, June 13, 2018. Scott informed me that there are currently on 14 of 65 students are booked for this session. If the signup slots are a FIFO cue, perhaps I will be number 14 on the list. Then again, the presentations may be organized by Fablab Node location. I will assume to be ready by 9:00am, as the hard deadline. I will assume that there will be students frantically hitting the Gitlab repository with a lot of traffic, and that Gitlab will become impossibly slow. I should plan on having everything done the evening of June 12. This assignment began June 6, 2018, so that gives me less than one week to get everything ready.
what tasks have been completed, and what tasks remain?
I presented my final project last year, and it was approved. For 2018, I would like to integrate the components of the project better, using CBA/mods, which will help me pursue a more "distributed" architecture for this project. My "new" goals for this year will be integrating my components into CBA/mods. I find it kind of hard to just write mods. It is a very ambiguous term, especially in lower case. MIT/mods? I'm kind of liking CBA/mods better than MIT/mods. It is more precise, and will probably hash out better with the search engines later in history. I would like to update my Final Project page and video to reflect the integration of CBA/mods into the project, and I am a total novice with multimedia, so I will need to allow adequate time at the end for me to suffer through editing the video. I am also running out of space in my repository according to Gitlab. However, when I communicate with Fiore, everything seems fine and I should keep all my changes intact. I think there is some confusion here, so I will leave a little time to deal with GIT issues. I also understand when you try to compact a repository, it can take a very long time. To further complicate things, not having the repository available while rebasing/filtering/de-blobing, will make it difficult to see if everything is pipelining properly to the World-Wide-Web. I also have to push my reviewers to review my weekly pages and provide me feedback. My understanding is that Local and Global review will be done ongoing, even during the process of Final Project Review. This is a smart change from last year, lwhich allows things to happen concurrently. Nevertheless, there is a hard cutoff on the Finap Project Presentation, meaning it happens either in June 2018, or January 2019. No ongoing review of Final Project Presentations.
Completed
- helloSolenoid board.
- hello-ESP8266 board.
- hello-ESP8266 board communicating with Luminox O2 sensor
- hello-ESP8266 board communicating with Windows10 computer
- Project integration with Solenoid valve, gas supply, Luminox O2 sensor, wine tank.
- Video of Luminox O2 sensor displaying the oxygen being depleted from a wine tank.
- CBA/mods/serial-embedded toolchain tested.
To be completed
- Finding and organizing all the boards.
- Get Luminox O2 sensor to communicate to CBA/mods
- Get helloSolenoid board to communicate to CBA/mods
- Take video of Luminox O2 sensor communicating to CBA/mods
- Take video of multimeter powering solenoid circuit from CBA/mods
- Update Final Project slide prominently with CBA/mods. Upload to repo.
- Update Final Project Video prominently with CBA/mods. A little talk about distributed process control. Upload to repo.
- Complete Week 22, Final Project webpage. Upload to repo.
- Complete and check the Bill of Material
how will I complete the remaining tasks in time?
Through diligent project management and spiral development technique, of course. Here is a list of issues I may have with accomplishing the above tasks.
- Multiple dependencies between activities. For instance, I will need to complete webpage Week21 (Project Development), and Week22 (Final Project) probably after I get the Final Project video completed. This includes getting a local review and global review done. I have no control over making the local reviewer or global reviewer perform prior to the hard deadline. These pages, and their review, will probably slip till after the Final Presentation review.
- Resource assignment. I operate a farm, orchard and vineyard. I have a wife and a 14 yer old daughter, and employees with lots of questions. The farm and family take priority over Fabacademy, and require my constant attention. I can never tell what will be the next emergency will be. The only resource I have in getting the Final Project developed is me, and possibly my instructors, Scott Zitek and Chris Rohal, whom also have busy schedules teaching at Lorain CCC.
- Critical Path. The critical path is a guess, and will require the most focus. I believe the critical path will be getting the Luminox O2 sensor to communicate reliably to CBA/mods and getting that recorded on video.
- Activity duration estimation and probability of success.
- Time Management. My instructor, Scott Zitek thought a Gantt chart would be a good idea. I think if there was more time, and if I was working in a group, it might be feasable and beneficial to put one together. In my past studies and work experience, Gantt charts were OK for small projects. CPM (Critical Path) Timelines were preferred. These would require a contract administrator to update constantly, and were often required by customers, a favorite of the government contract administrators at DCASMA/DCMA. I think a living document would be most effective in this situation. I will break down each day left and diary what needs to get done in each day and how much tiome I will budget for each task. As problems arise, new tasks can be added without getting all involved in updating a Gantt sheet which no-one else is looking at. The Spiral-Development To-Do list (STTD)
what has worked?
- So far the Luminox O2 sensor works. It communicates with the ESP8266 through serial lines. The ESP8266 communicates with a Windows 10 desktop.
- The helloSolenoid board works.
- The helloESP8266 board/shield works.
what hasn't?
- The Luminox O2 sensor has a quirky startup procedure which I accomplish manually. I would like to automate this.
- The RS232 communication from the O2 sensor is sometimes garbled. I will need to troubleshoot the reason why.
- The helloESP-12E board cannot be initialized. Also, it only has one serial port.
what questions still need to be resolved?
At the beginning of this week, the following questions still need to be answered:
- Will the Final Presentation platform be Bluejeans or Zoom?
- Do I have to compress my repo, and if I do, how do I do it?
- Can CBA/mods communicate effectively with a board other than an Arduino?
- Do I need 2 serial ports on my board to work with CBA/mods and the Luminox O2 sensor?
- Can CBA/mods parse text, or should I do that in C#/ArduinoIDE
- This one doesn't need to be answered, but if I have time, can I use GreatCowBASIC to communicate with CBA/mods?
what have you learned?
Standard skills:
- Learning CBA/mods.
- Learning how to get embedded processors to communicate distributedly.
- Demonstrate competence in fabrication and programming of microcontroller boards and modules.
- skillC
Other skills:
- Learning to develop resources
- Building a toolchain for distributed development
- Learning HTML
- Learning video editing and presentation.
Wednesday, June 6, 2018:
- Attend last class of Fabacademy 2018
- Mow 10 acres of grass in vineyard.
- Review input week. Revise webpage. Find software and boards
- Review output week. Revise webpage. Find software and boards.
- Work on CBA/mods. Get CBA/mods working with "toolchain"
Thursday, June 7, 2018:
- Work on webpages Week12 and Week13. Incorporate Local Reviewers comments.
- Research how to compact Git repository. Send message in issue tracker to Fiore.
- Read emails from Scott about Project Development.
- Pick up 7 queen bees. Get ready to do hive splits.
- Work on helloSolenoid board. Evaluate communication with laptop.
Friday, June 8, 2018:
- Spray apple orchard
- Communicate with Scott Zitek and Marty Krebs about getting Marty's repo going.
- Review nueval, and reuest Jason Wang to start doing Global Review of those pages approved by Scott Zitek and Chris Rohal (local review)
- Ask Neil if the Final Presentation is going to be done with Zoom or Bluejeans. Write issue tracker.
- Listen to some tutorials on Adobe Premiere.
Saturday, June 9, 2018:
- Visit Microcenter and get tripod for video production. Get webcam. Get FTDI adapters. Get FTDI breakout adapter for troubleshooting. Get extra thumb drives to backup repository.
- Power up HelloESP8266/Luminox assembly and troubleshoot communication with Arduino IDE
- Write software to parse out the O2 level, and maybe temp from the O2 sensor. Test with Arduino IDE
- See if mods can read the output of the parsing of the O2 communication.
- Bar graph the O2 and temp.
- Incorporate Local Review Comments
- Week21 Project Development reviewed by Scott. 88% complete. Incorporate Scott's comments
- Set up webcam/camera to record CBA/mods with devices
- Work on Week15 Embedded Networking and Communications Local Review Comments
Sunday, June 10, 2018:
- Power up the HelloSolenoid assembly and get working with Arduino IDE. Run Blink.
- Run program which cycles solenoid on and off. Hook up USB camera and try to capture with Mac/Quicktime all on same screen with Arduino IDE.
- Get serial communication working with HelloSolenoid. See if CBA/mods or terminal monitor can see anything from board.
- See if I can get CBA/mods to trigger the voltage on and off. Run Quicktime video capture.
Monday, June 11, 2018:
- Connect nodes in CBA/mods to trigger voltage on and off dependent on O2 range. Video capture.
- Work on slide. Finish slide. Push Git and see if it still works.
Tuesday, June 12, 2018:
- Work on video.
- Work on message/storyline about distributed control of processes other than the headspace in a wine tank.
- Place video inroot and push Git.
Wednesday, June 13, 2018 - Presentation Day!:
- Get Bluejeans and screen.academany... going. I assume that is what will be running that day. Will they run Bluejeans or Zoom? No one ever said anything.