16. System integration

According to ChatGPT is the process of bringing together various subsystems, unified system that functions cohesively. Envolves that the individual components (hardware, software, database, application) work together effectively to meet the overall requirements of the project.
Key aspects

  • Components:
  • All the components are compatible with each other (communication protocol, data formats, etc).
  • Interoperability:
  • In case of using an API, the systems have to exchange and use the same information.
  • Testing:
  • Verify that the system works as intended (secure, performance, functional).
  • Data:
  • Data from different sources as one, data consisteny, accuracy and reliability.
  • System:
  • All the components are installed and configured correctly.
  • Training:
  • Give documentation for users for a better understanding.
  • Maintenance:
  • Solve issues that will happen during the test, also performing a regular maintenance for performance and reliability.

Speaker

  • Components:
  • For the speaker I will use: XIAO ESP32C3, because it has inside Bluetooth that will let me obtain data from the glove. Also, a H bridge (TB67) for making the variation of the frequency for producing sound using two ESP outputs. A speaker will be connected to the outputs of the H bridge. An SD card slot will be used to read the notes it will have to play depending on the occasion, using SPI communication. Finally, in case you don't want to have the speaker connected, you can add an external battery (power bank), so you won't have to worry about it. All the parts will be inside a 3D-printed case with all the bolts on hand in case you want to replace something, and the ports will have easy access. The PCB has through holes for fastening bolts to the case.

  • Interoperability:
  • The communication protocols that will be used for the speaker are Bluetooth and SPI for reading the SD card. Fortunately, the ESP32C3 has an internal Bluetooth that will let me obtain the data sent by the glove, and the SPI output pins are free to use as I don't use them for anything else.

  • Testing:
  • The tests I will have to conduct to verify its functionality are the speaker with different sounds, using an external battery to power everything up, reading the data from the SD card, and correctly receiving the data sent from the Bluetooth.

  • Data:
  • It is important that all the data I will use use the same "variables." For example, in the SD, there are going to be notes that were previously converted to a wav format. In the case of the Bt, the data will be sent as letters or numbers (simplified), and depending on the received data, it will reproduce a sound.

  • System:
  • For ensuring that all will work, first of all, I will check continuity with a multimeter after soldering all the components to verify that there isn't something soldering incorrectly. Then all the parts will be tested individually (speaker, SD reading, and Bt receiving). After that, all the parts will be tested together.

  • Training:
  • The main use of our webpage is that anyone can make their own, so having good documentation of the steps and files will help future users. Also, how to change or, in this case, charge the device is very important.

  • Maintenance:
  • The only maintenance that will be necessary is changing the battery cell; this will have easy access in case it drains all. Beside that, in case of changing an internal part, it has screws that will hold the speaker.

Glove

  • Components:
  • For the glove, it will have more components; for the microcontroller, a XIAO BLE SENSE nrf52840, it has an integrated IMU, BT, 5 analog inputs, and supports TinyML. Flex sensors used for detecting when a finger is down will be connected to an array of a Wheaton bridge; after that, an op-amp will be used to magnify the signal even more. For the index finger, an IMU of 9 axes will be used, connected by the I2C protocol. An external battery of 3.7 volts will power up the entire glove. For connecting the finger flex sensors, I will use conductive thread; for the index IMU, I will use a magnet in the base and Velcro in the middle to ensure it slides when the finger is flexed; and the main PCB will have 4 magnets in the border that will connect to the hand. A battery on the wrist will be used and fastened with an internal pocket inside a Velcro storage (kind of soccer gloves).

  • Interoperability:
  • As data exchange, it will use the I2C protocol to obtain the values from the index finger. All the data, after being processed by the trained model, will be sent by Bt to the speaker.

  • Testing:
  • The testing that I will conduct is reading the values of the two IMUs, the external one with the I2C protocol and the internal one, reading the analog values from the flex sensors into separate variables, training a model with all the data collected, and sending the values from Bt.

  • Data:
  • The data that the glove will handle are 2 (ax, ay, az), 2 (gx, gy, gz) and 4 flex sensors. This will be sent to the model, and after that, the model will decide an output that will be sent through Bt, which can be a letter or number.

  • System:
  • To verify its functionality, I will check continuity after soldering all the components, connect them, and start reading all the values from the PCB (flex sensors and internal IMU). For the other IMU, I will make another flexible PCB that will relate to conductive thread.

  • Training:
  • As for training, it will be shown how to add new models or variables to the TinyML.

  • Maintenance:
  • For maintenance, it will only be necessary to show how to detach the components and recharge the battery.