Bethel’s Status Report for 4/29/2023

What did you personally accomplish this week on the project? Give files or photos that demonstrate your progress. Prove to the reader that you put sufficient effort into the project over the course of the week (12+ hours).  

Since pivoting from Puppeteer, I have been able to dynamically track the remaining three in-game actions of low health, getting hit by a small enemy and getting hit by a large enemy synchronously with the forceful jump action. Moreover, I had also managed to create the frontend for the motor intensity bar. 

This week I have successfully developed the backend of the motor intensity bar, which allows the user to dynamically send their motor intensity preferences to the motor and light code for the haptic suit via our Node JS server.  

 

Is your progress on schedule or behind? If you are behind, what actions will be taken to catch up to the project schedule?  

My progress is on track given the fact that I have managed to finish building the backend for the motor intensity bar before the start of demo week. Furthermore, I am going to push to complete my team’s project poster, video and final paper within finals week.

 

What deliverables do you hope to complete in the next week?

This week I plan to help my team create our project video and poster prior to our TechSpark Demo, while attempting to establish a wireless connection with the Arduino WIFI Rev. 

Bethel’s Status Report for 4/22/2023

What did you personally accomplish this week on the project? Give files or photos that demonstrate your progress. Prove to the reader that you put sufficient effort into the project over the course of the week (12+ hours).  

These past two weeks have been particularly productive as I finished dynamically tracking the remaining three in-game actions of low health, getting hit by a small enemy and getting hit by a large enemy. This task took a longer time to accomplish than first forecast because of my determination to incorporate the Puppeteer library, which would operate as a Web Scraper within our code base.

However, we pivoted from using the Puppeteer library to track the remaining three in-game actions of low health, getting hit by a small enemy and getting hit by a large enemy, because this library does not allow us to customize the game as per our user and design requirements. An instance of this was our lack of ability to incorporate the motor intensity bar into the user interface, which was requested through our Ethics feedback session. 

Moreover, Puppeteer hindered us from synchronizing our jump event along with our low health, getting hit by a small enemy and getting hit by a large enemy event, because the former ended up listening to the game actions in a different browser than that of the latter.   

Another deliverable I have managed to accomplish is having the frontend for the motor intensity bar working. Now what remains is to have the motor intensity bar dynamically send its values to the motor and light code via our Node JS server.  

 

Is your progress on schedule or behind? If you are behind, what actions will be taken to catch up to the project schedule?  

My progress is a little behind from what I had anticipated as I thought I would have the backend of the motor intensity bar finished by now. I am going to push to have it finished by this week.

 

What deliverables do you hope to complete in the next week?

This week I plan to help my team create our project video and poster prior to our TechSpark Demo, while building the backend for our motor intensity bar. Moreover, I plan to continue testing my software on the Arduino WIFI Rev after establishing a wireless connection.

 

Team Status Report for 4/29/2023

What are the most significant risks that could jeopardize the success of the project? How are these risks being managed? What contingency plans are ready?  

This week we have successfully managed to incorporate the rest of our motors into the back of the vest. On the contrary, we still need to make both the integration of our hardware and software components more reliable. This involves us having to parallelize our motor and light code which we plan to accomplish this weekend. Moreover, we aspire to establish wireless interfacing between The Last Spartan game and the vest (post MVP).

Another risk we are preparing a contingency plan for are wiring issues. We tried to mitigate this risk by using ribbon cable to improve clarity of cabling, making debugging far easier.

While improving upon our hardware and software integration we will simultaneously be working on our poster and project video this week. The risk here lies in our time management. We plan to delegate different tasks amongst ourselves to help maximize our productivity and minimize any risk associated with running out of time. 

 

Were any changes made to the existing design of the system (requirements, block diagram, system spec, etc)? Why was this change necessary, what costs does the change incur, and how will these costs be mitigated going forward?  

The block diagram was changed last week to include the PCBs. Some minor motor system numbers were changed to fit with the actual wiring of the vest. 

We also pivoted from using the Puppeteer library to track the remaining three in-game actions of low health, getting hit by a small enemy and getting hit by a large enemy within the past week. The problem with this library lies in the fact that it didn’t allow us to customize the game as per our user and design requirements. It has since been eliminated from our existing design of our system.

 

List all unit tests and overall system test carried out for experimentation of the system. List any findings and design changes made from your analysis of test results and other data obtained from the experimentation.

Hardware

  • Recheck that each motor system works individually
  • Motor responses are correct
  • Verify that moving vest doesn’t disturb motor systems
  • Verify that the light systems have correct response
  • Check that implemented code for last two motor systems goes off with other motor code

Software

  • Test that the Node JS server prints out the data we want it to relay
  • Verify that the Node JS server can relay data from a generic website
  • Check whether the Node JS server can send correct data to control a single motor circuit 
  • Validate that the Node JS server can send the information generated by one in-game action, namely forceful jump
  • Validate that the Node JS server can send the information generated by all the in-game actions, namely forceful jump,  low health, getting hit by a small enemy and getting hit by a large enemy
  • Test that the latency of our system lies under 100 ms
  • Verify that our precedence algorithm correctly dictates the outputs we want to see in the chronology of the importance of events

Implementation

  • Verify that motors systems and lights go off at the same time
  • Try the software 10x times to determine reliability
  • Try the software on 2+ laptops to determine reliability
  • Have 10 people play the game to gain more user data, feedback, and check the vest is operating correctly

 

Provide an updated schedule if changes have occurred. 

We have attached our updated schedule in this link. We are working to parallelize our motors and lights as well as achieve wireless interfacing between the game and vest (post MVP).

 

This is also the place to put some photos of your progress or to brag about a component you got working.

Link to image of the PCBs at the back of the suit

Bethel’s Status Report for 4/8/2023

What did you personally accomplish this week on the project? Give files or photos that demonstrate your progress. Prove to the reader that you put sufficient effort into the project over the course of the week (12+ hours).  

My deliverable for this week involved me testing the Node JS server on the Arduino WIFI Rev while it is wireless. I am still in the process of accomplishing this with Amelia’s assistance as our Arduino code integration is proving to take a little longer than we had initially anticipated.

The type of wireless data transfer we have managed to achieve at this stage involves us using sockets to establish a connection with an external website that allows us to parse the incoming information to the Arduino. One caveat of this solution is that it requires us to use two separate Arduinos in order to confirm that the correct game data is being sent wirelessly to the WIFI Rev. So far we have managed to send the unique socket identifier to the WIFI Rev, however the desired game data is not being sent yet.    

I have also managed to pinpoint the variable of interest for tracking all of our remaining game events of interest, namely low health, small hit and large hit. I am displaying this variable on the HTML page of our game in order to read in its values as it is dynamically changing, however I understand that my process of retrieval is only reading this value once, when the game first loads.

 

Is your progress on schedule or behind? If you are behind, what actions will be taken to catch up to the project schedule?  

My progress is a little behind from what I had anticipated I would have done by this week, as integration is taking longer than expected. I still have to integrate my software components with the hardware components that my teammates have built in order to have a working prototype before Thursday of next week. I will also still be focusing on how to use Puppeteer to acquire data from all the remaining game actions for this upcoming week. 

 

What deliverables do you hope to complete in the next week?

This week I plan to dynamically track our variable of interest being displayed on the HTML page of our game in order to read in its values as it is dynamically changing, as my current process seems to only be retrieving this value once, throughout game play. Moreover, I plan to continue testing my software on the Arduino WIFI Rev after establishing a wireless connection.

Bethel’s Status Report for 4/1/2023

What did you personally accomplish this week on the project? Give files or photos that demonstrate your progress. Prove to the reader that you put sufficient effort into the project over the course of the week (12+ hours).  

This week I actually concentrated on helping Amelia attach the motors to their prototype mounting plate when it came to constructing our motor systems as well as aiding Sophia in wiring up our six demo subsystems to the Haptic suit. 

My planned deliverable for this week involved me testing the Node JS server on the Arduino WIFI Rev while it is wireless. I am still in the process of accomplishing this with Amelia’s assistance as our Arduino code integration is proving to take a little longer than we had initially anticipated.

 

Is your progress on schedule or behind? If you are behind, what actions will be taken to catch up to the project schedule?  

My progress is a little behind from what I had anticipated I would have done by this week, as integration is taking longer than expected. I still have to integrate my software components with the hardware components that my teammates have built in order to have a working prototype either by the time we have our interim demo or sometime after. I will also still be focusing on how to use Puppeteer to acquire data from all the remaining game actions for this upcoming week. 

 

What deliverables do you hope to complete in the next week?

This week I plan to incorporate a web scraper library known as Puppeteer in my existing software to aid in tracking the game actions of the remaining three events, namely small hit, large hit and low health. Puppeteer will help me analyze different enemy actions in order to accurately transfer data relevant to the game action taking place. For instance, we would not want a low health event to be flagged every time the life bar decreases, instead we would like this event to be activated when the bar decreases to 25% of its original length. 

Moreover, I plan to continue testing my software on the Arduino WIFI Rev after establishing a wireless connection.

 

Bethel’s Status Report for 3/25/2023

What did you personally accomplish this week on the project? Give files or photos that demonstrate your progress. Prove to the reader that you put sufficient effort into the project over the course of the week (12+ hours).  

My team and I attended Wednesday’s Ethics Lecture and meticulously made notes on the ethical considerations brought up by our peers within our Pods discussion. We do plan to incorporate the feedback we received to our existing design as expressed within our Team Status Report. 

This week has been particularly productive, in that I was able to complete both of my planned deliverables while also using the STEAM platform to configure the wireless controller to game play settings with the generous help of both of my teammates as shown in the video clip titled “Controller_to_Game_Integration.MOV” within our Google Drive. One of my two deliverables for this week involved me having to integrate the Node JS server with the forceful jump event’s game data. This helps confirm whether the Node JS server can relay our game data successfully to our simple motor circuit. This was successfully achieved as result of the effective testing of the Node JS server I conducted last week which allowed me to easily pinpoint the bugs within my integrated code and fix them.   

My second deliverable for this week consisted of testing the Node JS server on the Arduino WIFI Rev while it is still connected to my PC, before proceeding on to establishing a wireless connection. This was efficaciously achieved on Friday, 24th March with the assistance of my teammate Amelia. 

I also changed the game action keys on the frontend of the game to match that of our controller configurations as an added customization to The Last Spartan. We utilized the mappings expressed within our design report whereby the W-A-S-D keys correspond to the left-most joystick; the “k” key corresponds to the left trigger/ left bumper; “j” key right trigger/ right bumper; “p” key corresponds to the “Options” buttons; “SPACE” key corresponds to button “A” and the “ENTER” key corresponds to button “B”.

I eventually played the game wirelessly to test all the integrated components together while also measuring latency of our system by taking a video of the motor activations that occur in response to forceful jump events. According to the video I believe that my software system has minimal latency as shown in the video clip titled “Game_Data_to_Server_Integration.MOV” within our Google Drive. 

 

Is your progress on schedule or behind? If you are behind, what actions will be taken to catch up to the project schedule?  

My progress is somewhat back on track since I have managed to successfully integrate the Node JS server and the JavaScript listeners that track the forceful jump game action. I still have to integrate my software components with the hardware components that my teammates have built in order to have a working prototype by the time we have our interim demo. I will still be focusing on how to use Puppeteer to acquire data from all the remaining game actions for this upcoming week. 

 

What deliverables do you hope to complete in the next week?

This week I plan to incorporate a web scraper library known as Puppeteer in my existing software to aid in tracking the game actions of the remaining three events, namely small hit, large hit and low health. Puppeteer will help me analyze different enemy actions in order to accurately transfer data relevant to the game action taking place. For instance, we would not want a low health event to be flagged every time the life bar decreases, instead we would like this event to be activated when the bar decreases to 25% of its original length. 

Moreover, I plan to test my software on the Arduino WIFI Rev after establishing a wireless connection.

 

Bethel’s Status Report for 3/18/2023

What did you personally accomplish this week on the project? Give files or photos that demonstrate your progress. Prove to the reader that you put sufficient effort into the project over the course of the week (12+ hours).  

My team and I brainstormed and compiled a variety of ethical considerations concerning our project in preparation for the ethics lecture and group discussion. 

This week I was able to track the forceful jump game event successfully using JavaScript event listeners. I have decided to incorporate a web scraper library known as Puppeteer to aid in tracking the game actions of the remaining three events, namely small hit, large hit and low health. Puppeteer will help me analyze different enemy actions in order to accurately transfer data relevant to the game action taking place. For instance, we would not want a low health event to be flagged every time the life bar decreases, instead we would like this event to be activated when the bar decreases to 25% of its original length. 

Figure 1. Shows how Puppeteer interacts with the live data inputs coming from the browser which it passes on to our Node JS server.

 

After building the Node JS server last week, I tested my code using a two button webpage, whereby the “Turn Motor On” button represents the activation of a game action and the “Turn Motor Off” button deactivates the motor as shown in Figures 2 & 3. This helps test the proper functionality of the Node JS server while it is in the early development stage. Furthermore, I have designed a single motor circuit using an Arduino Uno as shown in Figure 1. to simplistically mimic the behavior of our system of motors.

Figure 2. Shows the simple two button webpage I used to test the functionality of my Node JS server.

Figure 3. Shows the simple Arduino code I used to test the functionality of my Node JS server.

 

Is your progress on schedule or behind? If you are behind, what actions will be taken to catch up to the project schedule?  

My progress is somewhat back on track since I have managed to build the Node JS server based on dummy data and successfully track one game action. I still have to integrate the two components together and test them in unison before I proceed. I will also be focusing on how to use Puppeteer to acquire data from all the remaining game actions as well. 

 

What deliverables do you hope to complete in the next week?

This week I plan to integrate the two components to see whether the Node JS server can relay our game data successfully to our simple motor circuit. Moreover, I plan to test my software on the Arduino WIFI Rev while it is still connected to a PC, before moving on to establishing a wireless connection.

 

Bethel’s Status Report for 3/11/2023

What did you personally accomplish this week on the project? Give files or photos that demonstrate your progress. Prove to the reader that you put sufficient effort into the project over the course of the week (12+ hours).  

Considering the little progress I made in transferring the AI aspect of the game code from Javascript, HTML and CSS to Node JS, and having communicated these issues with Professor Gary Fedder and Omkar, I have decided to completely abandon the game code translation process. Instead I will be going back to the original strategy of using JavaScript event listeners to track different game actions. 

 

I have also managed to build the Node JS server that will be relaying the game data to our Arduino IDE. The Node JS server is currently being triggered using a single button that represents a game action. This helps test the proper functionality of the Node JS server while it is in the early development stage. Furthermore, I have designed a single motor circuit using an Arduino Uno as shown in Figure 1. to simplistically mimic the behavior of our system of motors.

 

Is your progress on schedule or behind? If you are behind, what actions will be taken to catch up to the project schedule?  

My progress is somewhat back on track since I have chosen to proceed with creating the Node JS server prior to the plan within our schedule. I will therefore, use the time I planned to dedicate to building the Node JS server to instead go back to the original strategy of implementing JavaScript event listeners that track the game actions of different sized enemies.

 

What deliverables do you hope to complete in the next week?

My deliverables for this week will involve me having to test whether my Node JS server can successfully transfer the game data involved with one game event (for example a small hit) to our Arduino IDE given the basic motor circuit shown in Figure 1 below. 

Moreover, I will not be translating all of the game code from HTML, CSS and Javascript to Node JS. As per the advice I received from Professor Gary Fedder and Omkar, I will be going back to my team’s original plan of implementing event listeners to track different game actions.

 

Figure 1. Shows the simple single motor circuit I will be using to test the functionality of my Node JS server.

 

Bethel’s Status Report for 2/25/2023

What did you personally accomplish this week on the project? Give files or photos that demonstrate your progress. Prove to the reader that you put sufficient effort into the project over the course of the week (12+ hours). 

Progress from Last Week

A highlight from this week was my teammate Sophia’s successful presentation of our design slides on Monday. On the other hand, I had planned to finish transferring the game code from Javascript, HTML and CSS to Node JS as well as start tracking the coordinates and game actions of the different enemies within the game this week; however, this has proven to be more challenging than I had initially anticipated.  

I am primarily having difficulty translating the AI code from Javascript to Node JS. The AI serves the purpose of generating different Athenians to flock to the player within the game, creating new terrain as the player moves in different directions, among many other functions.

Considering this setback, I will be debugging the errors I am encountering before moving on to listening for the game events of different sized enemies within The Last Spartan.  

 

Figure 1. Shows the AI portion of the game code which is responsible for causing different Athenians to flock to the player within the game.

 

Is your progress on schedule or behind? If you are behind, what actions will be taken to catch up to the project schedule? 

Having encountered translation issues with the AI portion of the game code, I will need to invest some time this week to debugging my current code. This further risks delaying two main tasks namely, building the Node JS server and tracking the coordinates and game actions of the different enemies within the game. Since, listening for the game actions of different enemies is completely contingent upon the successful translation of the game code I will inevitably have to delay this task. On the other hand, I can start building the Node JS server while simultaneously debugging my translated code in order to mitigate severe delays from occurring in our schedule.

 

What deliverables do you hope to complete in the next week?

My deliverables are the same as those of last week with a few additions considering the issues I need to debug. Thus, I plan to finish transferring the game code from Javascript, HTML and CSS to Node JS as well as start tracking the coordinates and game actions of the different enemies within the game.  I also plan to build the Node JS server simultaneously with my other tasks. 

Bethel’s Status Report 2/18/2023

What did you personally accomplish this week on the project? Give files or photos that demonstrate your progress. Prove to the reader that you put sufficient effort into the project over the course of the week (12+ hours). 

Progress from Last Week

My teammates and I successfully finished ordering all of the essential parts for our project and have created our design presentation slides.    

The more pressing tasks I had to complete over this past week included deciding between which idea to implement for tracking our game data and beginning to implement that method. Upon consulting with my team and Omkar we decided on implementing the method where we will be listening for each game event and casing on the actions that we wish to track (i.e. attack, forceful jump, getting hit and low health). 

Some game actions have been harder to track than others. For instance, it is hard to track low health as it would require listening in on all of the enemies’ game data, whereas it is much easier to listen for the user’s game attack actions. 

After gaining a better understanding of how we expect the game code to interface with the Node JS server, I realized that we should transfer all of the game code from Javascript to Node JS. I have accordingly revised Figure 1. below to accurately portray this relationship.  

Figure 1. Shows how the game software will use socket.io to relay information to the Node JS server. The server will then use the serial port package to send this information to our Arduino.

 

Is your progress on schedule or behind? If you are behind, what actions will be taken to catch up to the project schedule? 

Having discovered that I might have to translate all the game code from HTML, CSS and JavaScript to Node JS, I will be dedicating the beginning of this week to accomplishing this. After successfully achieving this, I will move on to listening to the game events of different sized enemies within The Last Spartan. My schedule for this week is thankfully flexible enough to accommodate these unforeseen changes.    

 

What deliverables do you hope to complete in the next week?

I plan to finish transferring the game code from Javascript, HTML and CSS to Node JS as well as start tracking the coordinates and game actions of the different enemies within the game.  

 

Please list the particular ECE courses (if any) that covered the engineering science and mathematics principles your team used to develop your design? If there are no courses please tells us how you learned those principles over the last week?

I primarily utilized principles from 18213 Introduction to Computer Systems in understanding the design of our Node JS server. I particularly referred to the knowledge I gained from implementing Proxy Lab, which utilized sockets. I similarly plan to use sockets in sending data from our desktop game to the Arduino. By understanding how to implement these sockets and use the http library I have been able to create event listeners that are compatible with the Node JS server.