Although the push to actually create a finished product took place mostly in the last few weeks of the semester, making plans for the final project was a semester-long endevour. Here are some of my check-ins from week 1 until the end, so you can get a sense of the process I took in deciding on a project and how my ideas shifted over time!
i don't have any super concrete ideas for my project yet, i'm hoping to refine these as the semester goes on, but here are a couple of ideas i have so far
i tore my patellar tendon, acl, and meniscus last semester, so i've been thinking about something that could help me (and maybe others) in the recovery process. one idea i've had is a motion-tracking device that can help people see whether they're doing their pt exercises correctly. another potential idea along these lines would be something to help people who just had surgery with a simple everyday task (i couldn't put my own socks on for more than a month).
i've been involved in computer science education for around five years now, and i'd be interested in the idea of making a device that kids could program to make learning cs more physical. it would be cool to allow kids to actually move physical blocks around to make a device move and get excited about programming without just looking at a computer screen.
While I still could change my mind, right now I'm starting to research the idea of making a kit that will help kids learn to code by physically dragging code blocks around. Here's what I found in my research while looking forr similar things that already exist:
In general, it might not be possible to do everything I hope to (conditionals, functions, loops, etc), but I hope to do something with at least some aspects of programming built out, with some input sensors (maybe a remote control?) and keep it at a much lower cost than the existing options offer.
This week, we had to draw up some initial sketches of potential final projects. I was skeptical of this, but it actually raised some really important questions I hadn't considered. Below are some sketches of possible code blocks that could be included in the project:
Just drawing these made me think about a few important questions:
I plan on possibly using a little car as an output device, because I think that would be the most fun for kids. Especially if I can make it cute. A sketch is included below, along with some questions it made me think about.
The sketching brought up a lot of good questions that I'll talk to others about and think about over break!
This week, we were tasked with developing the most crucial parts of our final projects, and I would say I made some progress, but didn't quite get there. I suppose this is why we get assignments like this, to get us to run into problems now instead of the day before it's due.
Success 1: LED Strip: I got an LED strip working which I hope to attach to the top of my output in an earlier week:
Success 2: Driving: Last week I got some driving working in the group project, so I should be able to make a similar device to drive around and be the output for my final:
Failure: I'll need to be able to link several microcontrollers together in order to read in code from the user. Unfortunately, I wasn't even able to set up the ATTINY microcontroller to do something as simple as blinking. I spent a lot of time debugging why I couldn't upload code to any microcontroller from my computer, but that ended up being a waste of time since it just seems to work at random times after I unplug and plug it in a few times. I tried following this tutorial to get just a simple blinking program set up, and after a lot of debugging I got rid of any error messages, but now the code says it uploads only to not do anything. I have double checked quite a bit but can't tell if it's a problem in my code, my wiring, or just in the hardware. My time in the lab this week didn't line up with office hours, so I'll have to try harder to get in for those in the coming week. Here are a couple of pictures of my wiring:
Just a quick update this week, as I've put in a lot of work but haven't made too much tangible progress. (Although figuring out what won't work is a form of progress, I guess). With Nathan's help, I finally got Blink working on an ATTiny 412, and we switched to the Xiao because the ESP32-S2 was giving me a lot of problems. Then, after some work, I got the two devices to communicate via I2C, but then after a few hours of searching, realized that method would not allow me to detect the order of devices. So now the plan is to use TX-RX in some fashion, so we'll see where that takes me next!