` operating system via bluetooth. Two haptic actuators

` Author(s)TitleNumber of PagesDateDan Huiko, Mindaugas ŠkerbaHapNav –  Navigation assistant for visually impaired16 pages 14 January 2018DegreeBachelor of EngineeringDegree ProgrammeInformation and Communications TechnologySpecialisation optionSmart SystemsInstructor(s)Sami SainioKeywordsContents?1 Introduction2 Hardware2.1 General plan2.2 Microcontroller2.2.1 CY8CKIT-143A BLE Module2.2.2 Power system2.2.3  LED2.2.4 Button2.3 Bracelet 2.4 Ultrasound sensor3 Software3.1 BLE Configuration3.1.1 GATT Profile3.2.2  UUIDs3.2 Android application3.2.1 Navigation service3.2.2 Navigations functionality4 Backend5 Issues5 Project group members impact on the project7 Conclusion?IntroductionThe purpose of the project was to create a product which reduces navigation difficulties for the visually impaired people. The product will provide navigation assisting in new environments or to find the home if lost. GPS navigation from android smartphone and haptic actuators on a bracelet will be used to achieve this.Hardware 2.1 General planCY8CKIT-143A BLE Module will be used as a microcontroller to control the bracelet. The bracelet will be connected to a mobile phone running Android operating system via bluetooth. Two haptic actuators will be connected to the module to give the user navigation cues, as well as three tactile buttons to start the navigation to present location. The navigation is not calculated on the BLE module but on the mobile phone.Some ultrasound sensors might be included later on for more optimal obstacle evasion. 2.2 MicrocontrollerThe CY8CKIT-042-BLE Bluetooth® Low Energy (BLE) Pioneer Kit It a full-featured device which had all off the required protocols for the project. It has a 2.4-GHz radio also link and application layers.An onboard PSoC 5LP contains the KitProg, which is used to program and debug the BLE device which uses USB Mini-B connection . PSoC 5LP provides MCU, memory, analog, and digital peripherals functions in a single chip. The CY8C58LP has modern methods of obtaining, processing signals by controlling devices high accuracy, bandwidth, high flexibility. The analog capability spans the range from thermocouples (near DC voltages) to ultrasonic signals. 2.2.1  CY8CKIT-143A BLE ModuleThe PSoC 4 BLE device is the main component of the module. It provides the RF interface and analog and digital capability.2.2.2 Power systemThe power supply system on the BLE Pioneer Baseboard is versatile, allowing the input supply to come from the following sources: ? 5-V power from the onboard USB connector ? 5-V to 12-V VIN power from the Arduino power header (J1) ? 3-V from the CR2032 cell batteryThe 5-V was great for developing purposes but the actual device would of course be powered using 3-V cell battery or similar.2.2.3 LEDBLE Pioneer Baseboard LEDs The BLE Pioneer Baseboard has three LEDs. A green LED (LED2) indicates the status of the programmer. An amber LED (LED1) shows the status of power supply. The LED (LED3) is programmable and used for applications. These are connected to P2_6 (red LED), P3_6 (green LED) and P3_7 (blue LED).The LEDs were used to demonstrate the connection between the application and the module, button presses and the haptic actuators.2.2.4 ButtonsPush-Buttons on Baseboard contains a reset button and a user button. The reset button resets the BLE device as it is connected to the XRES pin. The user button is connected to P27 of the BLE device which can be used to program required function. Both the buttons are grounded (active low). 2.3 Bracelet Bracelets element:Bracelets body 3D printedTwo haptic actuators (marked as greed block)BLE module and power supply (blue blocks)Buttons and their casing ( marked as red circles)  2.4 Ultrasound sensorsAn Ultrasonic sensor is a device that can measure the distance an object by using sound waves. It calculates distance by sending out a sound wave at a specific frequency and listening for that sound wave to bounce back. It records the passes off time between the sound waves start and collision with an object. Knowing the sound waves speed and the time is calculates the distance.It would be used to alert a person if any obstacle is ahead of them.The sensor would be on the belt off the user and will have actuators which will vibrate and alert the user.NoItem Specification1Construction Open Structure2 Using Method Receiver3 Centre Frequency39 ± 1kHz4 Sound Pressure Level(at 40kHz) min. 110dB (10V/30cm –5 Sensitivity at 40kHzmin. -65dB /V/?bar6Capacitance 2,500pF ± 25% at 1kHz7Directivity 50°8Operating Temperature Range -35°C to +85°C9Storage Temperature Range -35°C to +85°C10 Detectable Range 0.7…18m11Housing Material Aluminium2.5 Haptic actuators DescriptionThe haptic and vibratory driver is designed specifically to meet the needs of haptic and vibration applications . The DRV2603 has two modes of operation, ERM mode ,and LRA mode. ERM (Eccentric Rotating Mass) mode is used to drive motors, which are DC motors of the bar or coin type. LRA (Linear Resonance Actuators) –  linear vibrator.Features:Flexible Haptic/Vibra Driver LRA (Linear Resonance Actuator)ERM (Eccentric Rotating Mass) Auto Resonance Tracking for LRA No Frequency Calibration Required Automatic Drive Commutation Automatic Braking Algorithm Wide Input PWM Frequency RangeConstant Vibration Strength Over Supply Automatic Input Level Translation 0% to 100% Duty Cycle Control Range Fast Start-Up Time Differential Drive from Single-Ended Input Wide Supply Voltage Range of 2.5 V to 5.2 V Immersion TouchSense® 3000 Compatible1.8-V Compatible, 5-V Tolerant Digital Pins Available in a 2 mm × 2 mm × 0.75 mm Leadless QFN Package (RUN)Software3.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: 34.252.123.210 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.