Your final assignment is your Final Project Report, which will be your final blog post for the semester. It is due on the last day of class. You will present it in class on that day. Expect to talk about your project for 2-3 minutes in class and give a short demo.
This needs to be emailed to me by 5pm the day before our last class. Your Final Project and report are 33% of your grade and if I don’t get this on time that’s a lot of points off your final grade.
Your Final Project Report will consist of the following:
1) An explanation of what your project is and what it does from a non technical perspective. Think about this is as how you would explain your project to friends, family, students on the first day of this class next year, and random people on the internet without any knowledge of electronics.
This should be kind of like the “elevator pitch” you gave in class a few weeks ago with no overly specific technical details. Don’t make it too complicated! You’ll get complicated in your technical description later on in your report.
2) A clear, coherent video of your project working. This should be at least 30-60 seconds long. If you are the one demoing it, you must find a tripod or another person to do the camera work for you. You may not hold your camera with one hand and demo your project with the other. Your video may not be compressed or blurry. It must be 100% clear what’s happening in the video.
3) A thorough technical explanation of how your project works in terms of code and circuits. Imagine you are trying to explain it someone who wants to learn how your project actually works and has a decent understanding of the basics of programming and electronics, like someone else in this class.
If it’s helpful to include a diagram or schematics, by all means do so.
4) A list of the parts (sensors, Neopixels, displays, etc) you had to buy for your project, with links to where you bought them.
5) A thorough writeup of any significant problems you encountered and solved which could be useful for someone working on something similar in the future. Or anything else that you did that was unintuitive or would otherwise be useful for future students working on similar projects to know about.
6) Your code, commented. If you need to include snippets of your code in the technical explanation for part 3, which most of you will probably want to do, you of course should do that. But you should also include your entire code here towards the end of your report.
Your final assignment is your Final Project Report, which will be your final blog post for the semester. It is due by midnight before the day of our last class.
It will consisting of the following:
1) A one paragraph explanation of what your project is and what it does from a non technical perspective.
Explain what your project does in simple, non-technical terms, as you would explain it to friends, family, or students on the first day of this class next year.
2) A good at least 30-90 second demo video of your project working.
A clear, coherent video of your project working. This should be at least 30-60 seconds long. If you are the one demoing it, you must find a tripod or another person to do the camera work for you. You may not hold your camera with one hand and demo your project with the other. Your video may not be overly compressed or blurry. It must be 100% clear what’s happening in the video.
Here are a few examples of good videos from previous years:
Analog Final Project Lab Report Demo - YouTube
CR-1615 Muli-Effects Processor - Final Project - YouTube
Final Project Demo - YouTube
Project Demo - YouTube
Electronics Final Project Demonstration - Synth Clarinet - YouTube
Forjaz - Analog Electronics Lab Final Project Fall 2015 - YouTube
Analog Final Project Description and Walkthrough - YouTube
Analog Electronics Final Project Demo - YouTube
Audio Demo - YouTube
3) A good 30-90 second audio recording of your project working.
If you are doing anything that could be considered an “effect” – tremolo, distortion, etc, you must include both a dry and wet signal so it will be 100% clear what your circuit is doing to the original audio.
4) A thorough explanation of how your project works.This is the bulk of your report. I’d highly recommend looking at examples of good recent projects like this, this, this, this, this, this, this, this, this, and this.
Imagine you are trying to explain your project to someone who wants to learn how your the circuit actually works, but has little or no knowledge of electronics. Assume your audience knows how to read schematics, how to identify components and their symbols, how power supplies work, and nothing else – like someone a few weeks into this class next year.
Break your project down into stages and explain each of them including formulas and numbers and schematics as necessary. Show photo or video as necessary of the input and output of each stage on a scope to demonstrate how the input of that stage creates the output.
You are NOT writing this for me, you are writing this for someone who doesn’t know as much about circuits as you but wants to learn.
5) Complete schematics for your circuit.
One big image. You are welcome to draw this by hand, but if you do, use an app like DocScan so its nice and clear. Make absolutely sure your schematics are 100% clear and legible. You cannot hand in schematics with errors scribbled out on them.
Email the link to your blog post to firstname.lastname@example.org by 5:00pm the day before our next class. It should be a link your blog post with your final project writeup.
Put in 2-3 solid hours of work on your Final Project outside of class between now and end of day next Wednesday and document what you got done with a description, code, and videos of whatever you got working.
Take a photo of whatever the lab guardian laser cuts just as evidence you went to the training and post that on your blog. If you can’t make it this week you can go in the next 2-3 weeks, but you are required to attend a training before the end of the semester.
If you can’t make the regularly scheduled time, email email@example.com and tell them you’d like to sign up for a training but can’t make the Wednesday time and would like to schedule another time.
Final Project Assignment
Put in 2-3 solid hours of work on your Final Project outside of class between now and end of day next Monday and document what you got done with a description, code, and videos of whatever you got working.
Week 1 Class on 4/9-4/15 In class: Begin work on Final Projects. Due by 5pm the day before your next lab: Lab Report 10: Report on progress so far. Include a description of what you’ve accomplished so far, with photo + video + schematics, and clear checklist of everything left to do. This report about counts the same as your other lab reports (about 6% of your grade) and must be handed in on time for credit. The written section of your report should be thorough and should be at least a few paragraphs long. It should also contain a list of everything you have left to do.
Class on 4/16-4/22
Due by 5pm the day before your next lab Lab Report 11: Report on progress so far. Project should be about 1/2 done and should have multiple functioning stages. Include a description of what you’ve accomplished so far, ideally with photo + video + schematics, and clear checklist of everything left to do. This report counts the same as your other lab reports (about 5% of your grade) but must be handed in on time for credit. The written section of your report should be thorough and should be at least a few paragraphs long. It should also contain a list of everything you have left to do.
Class on 4/23/4/29 In class: Continue work on Final Projects. Due by 5pm the day before your next lab: Lab Report 12: At least 30-60 second clear demo video of project working.
Class on 4/30-5/6 In class: Final Projects brought to class finished and functioning. Begin work on Final Project Report. Due by 5pm the day before your lab: Final Project Report due.
Class on 5/7-5/13 In class: Final Projects again brought to class finished and functioning. Short in-class presentation on your project.
Email the link to your blog post to firstname.lastname@example.org by 5:00pm the day before out next class. It should be a link your blog post for this week which is 1) a link to your Github profile page, and 2) your final project writeup.
2a) Find the folder where your Lab 7 sequencer code is. Make a copy of it and rename both the new folder and your Arduino .ino file inside stepsequencer. It’s crucial they’re both spelled exactly the same since Arduino expects a .ino with the exact same name as the folder it’s in.
2b) Make this a GitHub repo with GitHub Desktop. Publish it so you can see it on www.github.com. The full GitHub tutorial we did in class is on our main class page.
2c) Make any small change or two to your Arduino code. Compile and just make sure it still compiles.
2d) Commit (with the Commit to master button) with a clear few-words summary of what change you made for Summary, and push (Push origin button on the top). Check and make sure everything is up on Github.com.
2e) Include a link to your GitHub profile (which will list all your repos).
Final Project Assignment
Get any basic part of your final project out of the way and document it with photo, video, code as necessary.
Email the link to your blog post to email@example.com by 5:00pm the day before our next class.
Take a look at Chapter 8 in the textbook on C++ Objects and Classes, just as a review of what we did in class today.
Assignment – Final Project Research
You’re going to starting work on your final projects in just two weeks. Start making some big decisions about what you’re going to do. Come up with a single idea which you’d like to do and think is feasible which will be challenging but possible to do in 3-4 weeks.
We’ll quickly go around the room in class next week and go over what each of you is thinking. Plan to have at least an “elevator pitch”, a few sentences long, clear, non-technical explanation of what it is.
In addition, do some writing and planning:
1) Write a few paragraphs on what it is from a totally non-technical perspective that a random non-technical friend of family member could understand.
2) Make a good clear diagram of what it is. If you already did this for the lab assignment you’re welcome to use that.
3) Describe what aspects of your project you already know how to do or are similar enough to things you’ve done in the lab or the lecture homework, and which you’ll have to learn over the next few weeks.
4) List what parts you will need to buy. Start searching around Tinkersphere, Adafruit, Sparkfun etc for the specific parts you’d need and what parts you might want but aren’t necessary.
Email the link to your blog post to firstname.lastname@example.org by 5:00pm the day before our first class after break. It should just be a link your blog post with your Tinkercad circuit.
The goal of this assignment is to get you comfortable with using multidimensional arrays, and to show you a useful new way you can use counters in your projects.
1) Start a new Tinkercad circuit with an Arduino and a breadboard. Add two buttons right next to each other to your breadboard and wire them up and set pinMode according.
2) Write code so that when you press the button on the right it will add one to a variable called counter. Then write code so that if counter is more than 2 it gets set back to 0. Use the button code from the better button example from week 3 so your button will only increment once every time you press it.
Have it Serial.println(counter); every time you increment counter so you can see its working in the Serial Monitor. If you haven’t used it before the button to open the Serial Monitor is right underneath your code in Tinkercad. Test and make sure it works.
3) Do the same thing with the other button but make that one increments down – every time you press it it subtracts 1 from counter, but if counter gets to be less than 0, set it back to 2.
4) Stick all this in a function called checkButtons() or something like that.
4) Add 4 LEDs to your breadboard and set pinMode for them accordingly. You’ll want to put them into an array rather than defining a different variable for each one, for reasons that will become apparently in a moment.
5) Add this multidimensional array to the top of your code.
8) Change showCurrentChannel() so that which of the 3 arrays is being displayed on the LEDs is controlled by counter (which is controlled by clicking the two buttons). You should have to only change one small thing.