Sarah’s Status Update 10/7

This week, we received our board (ESP32S) and touch sensors. I started testing out the board to see how we could boot it and ended up using Arduino IDE to code. I created a simple testing structure where we could measure the relevant thresholds for each sensor and validate their functionality. I connected a touch sensor each to an ADC pin and outputted a prompt when each sensor was triggered. Some notes found were:

  • When not triggered, each sensor has a different value, but all seem to be under 1000 after ADC calculations, so for validation purposes we set our thresholds to this value.
  • When pressed, each sensor value reaches to on average 4000 after ADC calculations, but one of the sensors only seemed to reach 2000 with similar force.
  • There seems to be a bit of variance throughout each sensor for values, so we will have to document which sensors these are and do slightly different calibrations for each sensor.

Additionally, after some confusing results, I discovered that two of the pins on the board were shorted together, pins D4 and D15, which unfortunately are both ADC pins. Since we’re not exactly sure the orientation of each sensor relative to the board, we will need to purchase a different board for the final design.

Since we have finished thresholding and setting up the sensors, we are on track for the project. Next week, we plan on receiving the other sensors and starting on IMU calculations, while also starting to map out specific placement for the sensors on the glove and how they interact with the board. I also realized during this process that we will likely need to create and order a PCB for power and signal mapping, so I will start on this next week as well.

 

 

Saumya’s Status Update 10/7

This week, I helped Sarah with sensor setup and debugging an issue with the board. Specifically, after some experimentation, we noticed that two of the pins seemed to be shorted on the ESP board we received. In addition, I did some research on how to implement BLE with our specific board as well as reading sample project code.As the presenter for the design presentation, I also went over my presentation a little bit. Based on my Gantt chart tasks, we’re on track for sensor and board setup, but a little behind with Bluetooth since it took a bit to get our board. I think I now have enough information to proceed, so I should have the Bluetooth transmitter set up by next week’s update. I also will be working on the design review report this week.

Team Status Update 10/7

This week, we received some of our parts and began testing our board and the sensors. We focused on thresholding our force sensitive resistors to determine good potential values for what would count as a button press. We also looked into BLE implementations for the specific board we selected. The most significant risks for our project now are that two of the pins on our board are shorted. We’re planning to order another board this week and experiment with the current one, but we’re hoping that this integrity issue only applies to the board we received. Besides that, our sensors seem to be working fine (except for one that was a little faulty, but we ordered one more than we needed so we should be alright). In addition to this, we also refined our slides for the design presentation, and we began working on the design review report.

When developing our solution we used the following engineering principles: economy of mechanism, top-down design, and design for contingency. For economy of mechanism, we wanted our design to be as simple as possible while still achieving our design requirements so that there would be as little room for error as possible. We also wanted our design to be simple and intuitive to use. When designing, we chose a top-down approach, focusing on the bigger parts of the design and our end goals and then backtracking all the way down to the low level code and hardware wiring that would help us achieve our ultimate goal. Finally, we designed a lot for contingencies, in case any of our tests failed. We came up with proactive risk mitigation strategies and backup plans so we’d be prepared.

Rosina’s Status Update 9/30

This week I researched hijacking the mouse movements and looked at activating keystrokes. I looked at how this is typically done in software, and particular libraries in Python that would allow for this to be implemented. I’m currently working on programming mouse movements just within the Python IDE so that I can get comfortable with it and prepare to properly interface it with the IMU and microcontroller when that is ready. I will continue to work on this for the next week. We are currently on track with the schedule since most of the work involves learning and researching before we receive our parts. As for coursework that I used to achieve the engineering, science, and mathematical principles for our design, Intro to Embedded Systems is strongly involved. It covers the microcontroller and interfacing the hardware to software.

Saumya’s Status Update 9/30

This week, I experimented with pyautogui to explore its capabilities and how we can potentially use it in our project. I also worked on the design presentation. As this week’s presenter, I also practiced presenting and worked on my script. In addition, I helped Sarah with hardware selection based on our software architecture requirements and power requirements. Based on my tasks on the Gantt chart, I’m on track with regards to key mapping research, but for Bluetooth, I was waiting on our finalization of the board to look into specific networking information. Now that we’ve selected our board, I can look into sample projects using Bluetooth connections to the microcontroller and figure out how I can get a similar connection established between our computer and mouse board in the first half of the week so the Bluetooth transmitter task can be completed by the end of the week. By next week’s update, I plan to make progress towards getting Bluetooth set up.

The classes that helped me the most with the design of our project were 18349 (Embedded Systems) and 18441 (Computer Networks). I hope to apply some knowledge from my internship, where I learned more about Bluetooth. I also took Physics C in high school, which will help me with the IMU math.

Sarah’s Status Update 9/30

This week, I further researched the right microcontroller to use for the project, and we’ve settled on the ESP-32S board. This is because there are more than 12 ADC inputs on the board, which is more than enough for our sensors, it has built in Wi-Fi and bluetooth, supports Arduino IDE and comes in a compact size of just over 2 inches. We’ve already ordered the board and it will come early next week. As such, I am a bit behind schedule since we were unable to receive the board this week. To make up for this, I will start interfacing with the board when it arrives, but further research on the board suggests the setup process is quite seamless when using Arduino IDE, so I don’t expect this process to take longer than a day. Additionally, I created a block diagram for the design we will use for the sensor to board interface, and started creating a schematic for the design report for next week. I researched different power sources we could use, including coin cells and lithium ion batteries. After researching the power consumption needed for each component, we have a ballpark estimate of how many mAh we need to sustain our device for our target battery life of 2-3 hours. Since we have already ordered the sensors needed as well, next week we will start interfacing the sensors with the board, and experimenting with different thresholds for the analog inputs. Intro to Embedded Systems greatly helped with the block diagram and schematic design for our project. Additionally, Electronic Devices and Analog Circuits helped me to better understand power rules and create circuit diagrams for the power structure.

Team Status Update for 9/30

This week, we did lots of research both on the software and hardware sides of the design. We’re starting to work with the Python libraries required for the mouse tracking part of our project, as well as designing power structures and schematics for the hardware side of the project. The most significant risks at this point involve shipping time and integrity of the parts we ordered. Since we ordered our parts mid-last week, we hope they will arrive in time for us to work on this upcoming week. To mitigate our shipping time, we have chosen to source some of our parts from Amazon, but the integrity of our parts may be compromised in this. To fix this issue, we ordered more than enough parts necessary, so in the event some are faulty, we have backups. We decided to switch from using a nucleo board to using an ESP32 dev board, because of it’s multitude of ADC channels, bluetooth capability, but mainly because of its size. The new board we’ve chosen is a bit over 2 inches, which would comfortably fit in the palm of one’s hand. No other significant changes were made to our design, aside from the fact that we are still in process of figuring out the power structure for our design. We are still largely on schedule, and are awaiting the parts to ship.

Saumya’s Status Update 9/23

This past week, I spent time creating our software architecture plan. I also researched the Bluetooth portion of our project, specifically looking into Python libraries that would be compatible with the various microcontrollers we were deciding between (Arduinos, STM boards, etc). I identified the pyautogui library as one that we could use to take control of both the mouse and keyboard actions. In addition, I collaborated with my group members to refine our final proposal presentation slides. We worked to finalize our design plan, making sure that the scope of our MVP was reasonable given the time constraints. When creating our Gantt chart, I delegated tasks related to networking and physics aspects of our project to myself, since I have a little bit of experience and a lot of interest in those areas. Finally, I started looking into the inertial measurement unit sensors and what physics calculations we might need to translate hand movements into mouse actions.

Sarah’s Status Update 9/23

This week, we gave a presentation on our project proposal. We received good feedback on our design requirements, especially the concern about the size of the board we originally picked, the STM32 Nucleo Board. We decided to look into other options for our main board, including an Arduino Uno, for its ease of use. However, we realized that for the sensors we require, we would need around 8 analog inputs (not including the IMU inputs), which is 2 more than is included on the Arduino Uno. From here, we explored other options, such as analog multiplexers to switch between each sensor input, switch matrices to utilize the 6 analog inputs on the Arduino for 9 analog signals, or a PCB with extra ADC’s. We are still in progress of choosing a main board for the project, but the feedback we received was helpful in our research. Additionally, we chose the sensors we need for the project, and are working to order them in the coming days. We are still on schedule for the project, and we hope to receive some parts by next week to test compatibility and start setting up drivers for the main board.

Team Status Update for 9/23

This week as a group we completed the proposal presentation. The goal for the week was to research on the specific components that we should use that would fit into our use case requirements for the product. The main goal was to have components ready to order next week. We decided on the specific touch sensors, flex sensors, and glove that we will be using. However, we are still finalizing the microcontroller that we want to use since we received feedback on Friday about using a more optimal microcontroller (based on the size of our final glove). Thus, as a group we are looking into a microcontroller that would be optimal for both software and hardware, as well as ease-of-use and compactness. We also did more research on our individual sections so that we are each ready to start working on our respective parts soon.