The objective of this project is to create a new app for controlling a biomimetic fish known as the MUBot, featuring a new GUI and features.
Sponsored by: PSU Mechanical Engineering 3
Team Members
Michael Zukowski Natchanon Ungudomsin Skyler Giannetti Selena Liu Eli Anderson Zhiyuan Yue
Instructor: Steve Shaffer
Project Poster
Click on any image to enlarge.
Project Video
Project Summary
Overview
Our sponsoring team consists of two individuals from Penn State’s School of Mechanical Engineering: Bo Cheng and Hankun Deng. They initially approached our team with their MUBot project; the MUBot is a robotic, biomimetic fish that swims through the water like a real fish. The body of the MUBot consists of three components: the head (containing the Arduino chip), the segmented body, and the tail. Before approaching us, the sponsors already had a primitive, prototypical Android application, designed by a previous student that was capable of controlling the robot, but on a smaller scale.
Objectives
Our group was tasked with improving upon the previous application’s user interface. The improvements include a cleaner, more functional GUI and additional functionality such as a joystick (more fine-grained control of the MUBot) and a slider for speed.
Approach
– We met with our sponsoring team to discuss the project’s background information and any future goals.
– Our team brainstormed different ways we could control the fish: joystick, D-pad, etc. We also discussed how we could approach coding the task, whether that be using the MIT app inventor built-in interface, or another option (such as Java OOP).
– We took some time to research existing patents and previous literature relating to remote controlling a robotic fish. We didn’t come across anything that would interfere with our project, especially since our project relies on a BLE connection. It’s important to note that MIT app inventor is entirely open source, thus our application wouldn’t come under proprietary fire from it.
– Aside from our initial meeting with the sponsor, there was no “need” to meet up with our sponsor, as we had all the information needed to carry out our task; however, we kept them updated with weekly status reports so they could track our progress. Furthermore, if our team had any questions, our sponsor was readily available to help us along.
– The testing we performed throughout the semester mainly consisted of attempting to establish Bluetooth connections from our application using the BluetoothLE extension that comes with MIT app inventor. This is important to note, as this extension operates slightly differently than the basic Bluetooth client/server connections that are integrated within the MIT app inventor interface.
– As we were testing our connections, we came across some issues due to the new Android 12 update; the BluetoothLE connection wasn’t initially supported. We would come across several different errors that halted our progress. After some research, we found a workaround that allowed the BluetoothLE to function as desired.
– We were able to communicate between the Application and the Bluno board that acts as a stand-in for the MUBot. Input from the application was sent from the device and to the Bluno board through the BluetoothLE connection. Once received, the Bluno board programmed through Arduino will send back a return value to signify that communication was successful.
Outcomes
– The outcome of this project is a new GUI to replace the former GUI of the MUBot Application. Replacing the previous features of the previous application with new ones specified by the Sponsor.
– The new GUI features a joystick for moving the MUBot either left or right, and a slider for altering the speed of the MUBot. The design has been simplified to ease of use of the MUbot.
– Connecting to the MUBot has been revamped with a separate GUI Interface with several elements including the Connect, Disconnect, Scan, and Stop Scan buttons.
– Features such as the Heading Reset Button and Reverse Button have been integrated into the joystick for a more intuitive design.