The Project:
Part of what makes the Arduino and Raspberry Pi communities so fun is their strong tendency to be open source and generous. In your first explorations of the Arduino ecosystem you identified some potential projects of interst from whatever source. Now you get to actually attempt to follow through and build a project of your choosing provide you meet the criteria listed below. In effort to use this project to provide valuable information to future students there will be general constraints on the sensors and actuators that you may use in your project. In addition there will be a documentation requirement.
There are criteria for the project that define characteristics that the project must have to be acceptable. There are also specific deliverables for the project that need to be met before proceeding to the next step. These deliverables are intended to help assure your personal safety and success as well as the survival of your equipment and electronic components. Each of the deliverables has been at least a small part of an earlier lab though I expect that you will find that it will sometimes seem as if you have never seen this task before. You may work individually or in pairs.
Criteria:
Whatever project you find needs to have the following characteristics:
1) It must be compatible with an Arduino Uno (or another platform if you have access to it).
2) It must use at least one sensor and control at least one device that requires more power than the Arduino can directly provide. All controlled devices must have LED indicators showing on/off states. The sensor and the controlled object need to be items we either have access to or can get access to easily and inexpensively. The sensors and at least part of the controller will be drawn from those devices that seem to consistently make up the Arduino clone kits that are so easily available on Amazon.
3) Your sensor must require a calibration process to ether verify it's operation or establish it's operational parameters. For a temperature sensor this means you must show that it knows what 0 C and 100 C are and that it measures them correctly. For a light sensor this means that you can determine what full dark and maximum brightness are and that those data are accessible to your Arduino.
5) Your project must interact with the user through the serial monitor and provide regular updates on sensor data as well as control actions taken by the Arduino. Your user must be able to change some important feature of the execution of the sketch through the serial monitor.
6) Your project must make a logical decision, based on changing sensor data, that leads to the controlled object being on, off, or on at different speeds.
7) You will be asked to provide an engineering document for project that includes schematics, data sheets for all components, sample operational code, calibration processes, etc etc. Everything that the next user would find the use of the sensor and the controller much easier to sort out than you did.
Have project approved by instructor before end of 1st week of project.
Here's an example of an Arduino based battery charger that I think meets all of the criteria for the project. Any criteria that are not met can surely be integrated into the project with little effort.
- Project Deliverables:
1) Since you will be required to provide your own 'build documentation' for this project the first step is to download any web or other documentation you find and create you own editable set of instructions. Once you have this then you are in a great position to take notes and edit the instructions based on your own experiences executing the project.
I need to see a draft version of this document by the end of the first week of the project.
2) The next step in your project is an analysis of the circuit for your project. Begin by creating a schematic of the circuit that is clear and organized. I am going to ask you how much current flows through each device, what operating voltage it needs, how much power it uses, and what it's operating limits are. This is particularly important for the sensor and the contolled object. Put a comment block next to each device to record these important features of the circuit. As you complete this analysis collect the data sheets for any and all significant components in yoru circuit (no -- resistors are NOT significant components).
In the process of doing this you will need to develop a clear understanding of how the circuit works. If you understand how your circuit works you can anticipate the voltage and current requirements for each device. Be sure to download and read the datasheets for any devices besides the Arduino and basic electrical components like resistors. These tell you both operational parameters and operational limits. In one or two paragraphs describe how the project is supposed to work and why it is interesting to you.
Due by end of week 2.
3) Construction and testing plan. Before you start building your project I want a written plan detailing how you will break the project down into small chunks to test each of the subsytems in the project. How will you verify the sensor is working correctly and that your code understands the sensor? How will you test your ability to control the device in a way that also lets you verify that it is working? How will you structure your code to make it easier to figure out where any problems might be? I expect individual sketches (code) that test and verify the performance of your sensor and controller. Your plan must be approved and initialled by your instructor before you move to the implementation phase.
Due by end of week 2.
4) Implement your plan from step 3. Be sure to document any lessons learned or changes to equipment or process in your project plan as you go along. Your goal is to make it easier for the next person to complete the project and perhaps have deeper understanding of how it works. Do not be surprised if we find that your project needs to be modified at this point due to unanticipated challenges. Before powering up your circuit have it inspected for wiring errors by giving your schematic (step 2) to a classmate and having them verify it's correctness.
It is a rough expectation that this might take a couple of weeks of effort on your part. At the end of this time it is hoped you will have a working project.
Due by end of week 4. Verified by instructor that your circuit is functioning as stated in your description from step 2.
5) The final deliverable is a full project report (formats: .docx, .doc., or .pdf) that includes the following:
Complete and edited set of instructions for completing the project with any notes and suggestions from your own experiences.
A complete and annotated schematic of the circuit as completed and checked off in step 2 with any later modifications included.
A picture of your completed project with labels indicating the major devices from your schematic on the picture. I want you to illustrate clearly the difference between the schematic and the physical circuit which confuses many people. With any luck this will be already done from weeks before.
The code from your sketch, as well as your test code, complete with many clear and helpful comments. I expect to see as many lines of comments as I do of actual code. The sample sketches you have been working from for many of the labs are terrible examples of 'well commented' code.
A one page self reflection on what you have learned through this Arduino project. There are many lessons that I can imagine you have learned but I want you to consider what is/was important to you. This page will count as your last journal assignment.
Due by Friday before Finals Week.
6) Be prepared to demonstrate your project either the last week of class or during the final exam time. You will have 15 minutes to both explain what it does, how it does what it does, and to demonstrate it's successful execution. This is the plan but it is entirely likely that some groups will have less successful stories to share but we will still plan to share.
Project Resource Page:
This link provides a central location for documents and links specifically relevant to various projects. It is my hope to capture answers to questions you ask and resources we collectively discover on this page.
More general resources for this course and the lab are accessible from the Web Resources page.