3.1 provide location data of the person3.1 provide location data of the person

3.1 BLE ConfigurationThe BLE module was configured as peripheral using PSoC Creator . We decided it was best to create a custom BLE profile and customize service for it.Pressing a button will trigger an interrupt which will change the value of the Buttons characteristic. The haptic actuators are simulated with LEDs.3.1.1 GATT ProfileCustom service was made for our custom needs, it consists of two characteristics: Drivers and Buttons. Haptic characteristic holds  uint8 value which can be changed from the connected Bluetooth client (mobile phone).  If the value was set to 0 nothing would happen, 1 drives the left actuator and 2 the right, value 3 was also programmed but no real use was made for it.The buttons characteristic holds also value of type uint8, the value is changed on the module by pressing the physical buttons. The values 0, 1 and 2 mean each of the buttons. It is then read by the Android app and acts accordingly.3.1.2 UUIDsUUIDs were generated for the service and the characteristic, which are as follows:Service: 58A1A949-02F1-4F82-9D5A-E8FC72D6C768Drivers: 15893C46-B91A-456F-990E-47BF09F4EF05Buttons: FD568D1C-3453-45AC-8C3D-526F6397A0763.2 Android application The application would be a mediator between the Mapbox location services and the CY8CKIT-143A BLE Module board controlling the haptic actuators. It would provide location data of the person using the app and according to it, would send data to the module. Buttons displayed in the app would provide preset coordinates option which after pressed would create a navigation route to the desired destination and save it as a preset to the corresponding button on the bracelet.After opening the application it starts to look for advertising Bluetooth devices and shows them on a list, by clicking the device name it starts the connecting process. If the device has been connected before to the phone, it should connect automatically.3.2.1 Navigation service The Mapbox Navigation SDK will be used to get information about user whereabouts and to store data needed for the navigation. The calculations compare the user’s current location to their route and provide critical by-the-second information. This includes voice instruction announcements, real-time user progress to their destination, and detecting when a user goes off-route; all critical when building a navigation app.The navigation SDK needs to be added as a dependency. Which can be found  in the MavenCentral repository.repositories {  mavenCentral()}dependencies {  implementation ‘com.mapbox.mapboxsdk:mapbox-android-navigation:0.7.1’}Mapbox navigation requires Mapbox access token to use the services which can be obtained from the Mapbox website.3.2.2 Navigations functionality Starting the application:Navigation application firstly determines users location using Mapbox navigation service. After a location is determined application will try to connect to the bracelet using BLE. After the connection is established there will be couple short vibrations from haptic actuators in the bracelet to indicate that connection has been established and the user has been located to a decent accuracy.Setting locations :After connecting the application allows the user to set custom preset locations for the buttons on the bracelet. These can be set by typing the address of the desired location andselecting it to the desired button.Starting the navigation:Pressing the button will use the current locations and using the preset coordinates to calculate the route for optimal navigation. Navigating:Besides giving information via vibrations everything would be displayed on the smartphone’s screen, that way giving instructions for those who can see if needed.Haptic actuators on the bracelet vibrate depending on where the user needs to go. If there is a demands to turn left the actuator on the left side will send the signal, the same principle applies to the rest. Walking forwards will be signaled by vibrations on the top of the bracelet. All of the signals will be transmitted using BLE.Voice commands:Voice commands would allow the user to use their voice to give commands to the device. This would break the restrictions of the physical preset buttons in the way that you could just say, “Navigate home”, “Navigate to work” etc, you could even set preset locations to specific words to have unlimited presetsBackendThe backend service is used to send data about the location of the user as an emergency function. Any of the buttons on the bracelet can be programmed to act as an emergency button. Holding of the said button for three seconds would send the location of the user to the backend and notify specified caretaker of the emergency who could see where the user is located.Backend? ?receives? ?and? ?sends? ?data? ?using? ?the? ?MQTT-protocol.? ?All? ?data? ?is? ?saved? ?into? ?a? ?Mongo database.? ?MQTT? ?uses? ?subscriber-publisher? ?styled? ?communication.Every? ?message? ?contains? ?a? ?topic? ?and? ?a? ?payload.Connection information Backend? ?IP: Domain? ?name: backend.abelonditi.comMQTT? ?port: 1883? ?(insecure) 8883? ?(secure? ?SSL/TLS)MongoDB? ?port:? ?? ?27IssuesNavigation systems library versions weren’t compatible with libraries which were used to connect the phone to the BLE module. It was the main setback which led to the incompletion off the application as we didn’t have enough time to solve the problem.Project members impact in the project and scheduleImpact:Group members ImpactDan HuikoMainly focused on the establishment of the BLE connection which was achieved. Created an application for controlling the LEDs over the BLE connection which were used instead of haptic actuators. Mindaugas ŠkerbaWorked on the android app and mainly at navigation system and managed to get it working. Although it wasn’t implemented for the presentation day. Managed to connect to the backend.Schedule:WeekAssignmentStartEnd1Project plan2017-10-232017-10-242Hardware2017-10-30 3 2017-11-124App and BLE2017-11-13 5 2017-11-266Putting all together2017-11-13 7 2018-01- 15ConclusionNavigation bracelet for visually impaired has a lot potential even as commercial product. It would be a new method for visually impaired people to navigate in new terrains as long it is mapped by the navigation service. The device could also be adjusted to work on braille phone giving the complete freedom of setting preset locations to the user. As the project was for learning purposes it would be rather big it could be improved by using smaller, custom parts. So far only the haptic actuators could be used in a commercially viable device. Custom microcontroller could replace CY8CKIT-143A BLE module which would greatly reduce the blacelet’s size and increase the battery life.