Aden’s Status Report for 2/25

This past week I ordered the remaining parts, which included 14 solenoids and 6 transistors. This puts us at around half of our budget since solenoids that produce enough force for our purpose are expensive. Moreover, I ordered more parts than we needed to mitigate the risk that some parts could break when putting the project together. Hopefully, they will arrive soon, and I can assemble all the circuitry required for depressing the piano keys. Meanwhile, I have been helping Nora with the microcontroller portion of the project. We have been working on getting a proof of concept where we take a converted sheet of music from the OMR, parse it into a python object using music21, and schedule the notes on the correct gpio pins that will be connected to our solenoids. Instead of solenoids, we have been using LEDs in the configuration of piano keys to get a visual of which keys will be pressed by a solenoid at a given time. We successfully got the LEDs to light up in the order of a C and Chromatic C scale. Ultimately, we will need to refine the scheduling algorithm further to handle things like rests, chords, successive eighth notes, etc., but getting it to do a basic C scale was a big step. Additionally, when moving from LEDs to solenoids, we will have to account for factors that do not come with LEDs, such as the physical limit that the solenoids can move back and forth. Overall, aside from being unable to get my hands on the remaining parts, it was a productive week in terms of moving toward our final goal.

Not being able to receive our parts this week did not put me behind my current schedule. Although it would have been nice to get everything here this week, on our Gantt chart, I scheduled next week for building the circuitry we will need for the final version of our project. I would still like to keep some momentum going, so while I’m building the circuitry next week, I will also be thinking and drawing out rough sketches of what will be holding everything in place over the piano.

As I have already stated, next week, I hope to put together the circuitry for the final version of the project. Obviously, it may not be exactly what we need at the end of the semester, so I will not be soldering anything yet. Still, I hope to put something together so that we can integrate the microcontroller and solenoids to get an accurate feel for the timing. Additionally, I would like to aim for a rough design of our final chassis. This does not have to be what we end up going with, but just something to think about while I put together the circuitry.

Team Status Report for 2/25

This week, we made it past the Design Review Presentation and have entered a major portion of the development stage this week. Our team’s GitHub has been set up, and initial contributions have been made with respect to the OMR parsing scripts and Raspberry Pi microcontroller scripts. Additionally, we discussed and moved forward with ordering the remaining 14 solenoids and 6 NMOS transistors to meet our hardware specifications.

Integration of the accompanyBot apparatus with the raspberry pi may have a hidden difficulty. Through Nora’s initial GPIO code, we were able to see that LEDs and smaller components respond more quickly compared to the bulkier inductance based solenoids. This may affect our ability to reach the requirement of 6 key presses per second. To mitigate the risk of not meeting this requirement, we may need to rescope the threshold metric so that the hardware is able to meet it. No further changes were made to our design and requirements.

Teaming

One strategy that we have employed for working together effectively is maintaining constant communication. Apart from our Slack channel, we have a group chat where we discuss issues and different ideas for our respective aspects of the projects. For example, this past week we made sure to get one another’s approval before ordering the remaining parts for our build. We also meet up at least once a week outside of class time to update each other on our individual progress, write our team reports together, and work on any deliverables that we aimed to complete that week. Furthermore, we have made the following adjustments to fill in gaps related to challenges that have come up:

  • Rearrangement of scheduled tasks – Due to the introduction of music21 to aid in our scheduling process, we adjusted the work assignments so that more time could be allocated to familiarizing ourselves with the library. Additionally, Rahul joined Nora in setting up the notes scheduler algorithm.
  • Waiting for parts to arrive – While the remaining solenoids and transistors are being shipped, Aden has been helping Nora with her microcontroller scheduling tasks. This was anticipated and accounted for before ordering parts.

Team Status Report for 2/18

This past week, we ordered and received solenoids for testing. We also received a Raspberry Pi 4 from the 18500 Inventory. This allowed us to explore the parts to help gather data for metrics for the upcoming Design Review Presentation. During our meeting with Professor Sullivan, we also received feedback on a set of additional requirements that we would need to include during the Design Review

Principles of Engineering, Science, and Mathematics

From the 7 ABET principles of STEM, we believe this week we incorporated principles 3, 5, 6, and 7. 

Our rationale for these choices is as follows:

(3) Our work towards the upcoming design review presentation involves effectively engaging and communicating to our audience how feasible our project is turning out to be after having already put together some of the pieces.

(5) Every week, we make sure to meet up outside of class at least once to regroup our work and try to help debug or discuss integration strategies for future development based on current progress/knowledge. This week was focused on how we may go about scheduling our newly arrived solenoids for key pressing. 

(6) To make sure we are meeting the quantitative targets for our design, we must gather and analyze data that motivates our design decisions. This week specifically, we used laboratory power supplies and testing equipment to measure the voltage and current needed to power our solenoids. The data we collected from this experimentation helped us determine which solenoids out of the initial batch we would go with for our final implementation.

(7) Since we are engaging with a lot of new technology on both the hardware and software sides, it was crucial for us to acquire and apply new knowledge when fleshing out our design. For instance, Rahul needed to learn to write powershell scripts, and Nora and Aden figured out thresholding power for the solenoids.

Risk and Risk Mitigation

The main risk for our project is the issue of safely powering multiple solenoids at once. During our testing of the solenoids, we found that the 25N solenoid required around 0.6 A of current at 10 V which results in 6W to power one solenoid. This was much less power than we initially expected, and if we consider our worst case scenario with five solenoids being powered at once, the total average power will be far less than we expected (about 30 W). However, we were only able to test one solenoid, so having all solenoids drawing current at the same time may cause potential problems if the additional load results in a greater current that does not scale linearly (since our power supply has a max amperage of 5A). To mitigate this risk, we are willing to decrease our max number of solenoids to 3.

Of the initial order of solenoids, we noticed that one arrived broken and thus could not test it well. These mechanical components accelerate rather quickly and thus could be susceptible to damage or may cause harm in cases of malfunction. They also make a lot of noise, which may interfere with the sound of the actual piano. To solve such issues we may need to add padding or modify our circuit to better average out the impact.

Changes Made to Design

The main change we have made to the design is the choice to incorporate the music21 Python library to aid in the parsing of the music. We chose to go with this library instead of writing our own parser because the musicXML file generated by Audiveris is quite bulky and contains a lot of extraneous text whereas the music21 library has a lot of functionality that can aid in scheduling, which, as we have been warned, is a non-trivial task. While this comes at no extra cost budget wise, it does require alterations to the schedule in order to include time learning how to use the library and incorporate it into the project. Our updated Gantt chart is included in the Design Review Presentation slides.

Aden’s Status Report For 2/18

This week I completed everything I aimed to following proposal presentation week. I wanted to order a handful of solenoids to test before deciding which ones we will be using to depress the piano keys. Additionally, I ordered a handful of MOSFETs designed to handle high voltage and current, which is perfect for our project since solenoids require a high voltage and draw about one ampere of current. Being able to get my hands on those parts as soon as possible was my top priority, and since I was able to get them within the week, we were also able to test the solenoids with a power source, our raspberry pi, and the MOSFETs I ordered.  All the parts worked exactly as planned, and now that we have tested the different solenoids, we have decided to go with the Adafruit 25 N solenoids.

Image of our single MOSFET and solenoid circuit:

As of this week I am on track according to the first iteration of our Gantt chart. I had hoped to get some parts ordered and tested by the end of the week, and that is exactly what I accomplished. Furthermore, I have helped a little with our design presentation and will be the audience for Rahul tomorrow when he practices for the presentation.

Next week, I hope to order the rest of our soleniods and MOSFETs, so I can begin building what will hopefully be the final circuitry for our accompanyBot. Additionally, I would like to help Nora develop the python code that will turn the MOSFETs on and cause the solenoids to move according to the XML file produced by the optical music parser. Lastly, if I have time, I would like to think about what the final structure that will be holding the circuitry and microcontroller will look like and possibly have a rough mockup of it sketched.

Finally, I used skills primarily developed in 18220 throughout the course of the past week.  Specifically, skills relating to principles 6 and 5 enumerated in our team report. 18220 helped develop analytical and team skills that I was able to utilize when working on the project and putting together a basic circuit to power the solenoids.

Aden’s Status Report For 2/11

This week, I spent a significant amount of my time creating, editing, and preparing our proposal presentation. I presented on Monday and look forward to reviewing the feedback I will receive in the next few days. I felt like I did a decent job, but I know that with time and experience, the nerves will go away, and I will be able to present much more fluidly. My group and I also appreciated the questions from other groups and have taken them into consideration.

Aside from preparing for the presentation, I have also been looking into possible solenoids that I can use for the actuator part of our accompanyBot. We have selected two 25 N solenoids to test and one 5 N solenoid. After looking through previous projects with similar ambitions to ours, we have determined that getting solenoids with a higher force output, like 25 N, would likely be better when pressing down the piano key. Unfortunately, they are more expensive, so we would also like to order a 5 N solenoid to verify that they do not work as effectively before buying all 25 N solenoids.

Furthermore, I have done some preliminary research into how we will manage the power required for our system and what else will likely be necessary for the circuitry component of the project.

To conclude, I am currently on track with the Gantt chart presented in our project proposal. I hope to be more productive in the coming weeks as I aim to talk with our TA and order some parts at the start of next week. Hopefully, our parts ship fast, and I can begin testing and determining which solenoid we should use; however, if that is not the case, I plan on helping Nora develop and implement a plan for the microcontroller component of the project as we wait for parts.