Tuesday, May 10, 2016

meArm User Interface: (4) Complete UI and ROBOlympic Results


The final blog posts for these classes are always somewhat bittersweet. Today I'm presenting to you what we've been working on for weeks; the final MeArm UI. I highly recommend watching the video to see our robot in action, but since the UI itself may be hard to see in the video, here's an additional screenshot:

Want to see our UI in action firsthand? Download it here! But you'll need our MeArm for it to work...

The interface itself may seem simple, but it took a lot of work to code and get looking just right. The biggest challenge in coding two interfaces side-by-side was locking all the buttons for one mode when the opposite mode was selected. In this way, we could participate in the events of the ROBOlympics without relying on the program we were given to start off with, while simultaneously having a UI catered to the purpose of our custom function. Personally, I wish I could have done more to make the UI more visually appealing, but time got the better of me; still, all the buttons worked as they were intended to in the end, and I think that in itself is quite the victory.

With the end of the semester and the end of our final project came the ROBOlympics, as I have mentions - a competition to see whose robot and UI in the class was the best of the best. There were four events, none of which we placed in the top three of... except for the Talent competition. As luck would have it, all the hard work we spent creating the crane game paid off, as we were able to manage third place by popular vote! Again, a small victory for Enzio and me.

In the end, though, our robot's talent wasn't enough to place in the top three of the entire competition overall. Or the top four. Or five. Or six. Yes, of seven different robot UI pairings, our humble little robot placed seventh - dead last. But really, what can I say? We worked our butts off on this thing, and I'm still incredibly proud of what we were able to create.

Where will I go from here? In a year, I'll be graduating from Cardinal Stritch with a Bachelor's degree in Computer Science, and even sooner next Fall, I hope to land a solid internship in the Computer Science field. Honestly, I don't know what the future holds for me - have I learned enough to make my debut in the working world, doing what I love to do (programming)? Or will I be thrust into an environment where, to my horror, I find that I simply don't have what it takes? I can't say for sure; all I can do is keep my head held high and hope for the best.

Paige Ruka

Sunday, May 8, 2016

meArm User Interface: (3) Testing the Crane Game



Testing the crane game.  For our specific function/task, we wanted our robot to replicate the movements of an arcade crane/claw game.  If you watch the video, you can check out some of our crane game shenanigans; we weren't ever actually able to grab the candy off my hand, but hey, these crane games are supposed to be difficult!  It adds to its charm.
Above is what our code looks like every time the "Pickup" function of the crane game is run.  It functions as a series of five steps: (1) the opening of the claw, (2) the lowering of the claw, (3) the closing of the claw, (4) the raising of the claw, hopefully with item in tow, and (5) returning the claw to its starting position.  Getting the code to run smoothly was tricky at first, but the code we wound up with seems to work quite well.

The next blog post will demonstrate the cleaned-up UI, with not only just the crane mode but the completed free mode as well.  After that, we're ready to take on the ROBOlympics with our MeArm and custom UI!

Paige Ruka

Sunday, May 1, 2016

meArm User Interface: (2) Coding with ControlP5


UI progress.  The past week was slow as Enzio and I experimented with the ControlP5 library and tried to wrap our heads around everything we needed to accomplish.


Though our current work is not so aesthetically appealing, the functionality is there. The video above is to demonstrate that we have a system in place where certain buttons will "lock" after being used, forcing the user to follow the rules of our crane game system as detailed in the previous post.

As we move forward into the final week before finals, Enzio and I plan to split the remaining workload as follows:
Enzio's main goal is to get the buttons to move the robot arm as intended. As it stands, we have been using placeholder variables where the servo positions need to be updated, so he will troubleshoot that aspect of things as well as getting a start on our robot's specific task (picking up an item as an arcade crane game would do, dropping it in a designated location).
My main goal is to complete the "Free Mode" side of the UI and make everything look more appealing overall. What you may or may not have noticed is that we took a departure from our two-tab initial design and elected to have both modes visible at once, on two opposite sides of the sketch. However, as one may expect, only one mode can be activated at any given moment.
Despite what we have so far not looking like much, I think we're on the right path to finish this semester off with a spectacular project.

Paige Ruka