Authors: Nivedhitha V, Praba B, Priyavarshini SR, Aarthi A, Rajakumari K
Certificate: View Certificate
Our eyes are undoubtedly the most precious gift we have and play a significant part in our daily life. We are fortunate to have sight, so we can see this world. However, some individuals struggle to visualize these things. Because of this, moving around in strange public settings presents several difficulties for those with vision impairment. 39 million individuals are blind and 246 have limited vision, making up the estimated 285 million visually impaired persons globally. Wearable technology should be created with these people\'s visual impairments in mind. Smart shoes are a wearable technology created to give persons with vision impairments navigational information. In this study, a sophisticated electronic assistive device for the blind prototype model and system design are given. This system\'s components—a microprocessor, an ultrasonic sensor, and a Bluetooth headphone—are made to provide general measures for object detection, human detection, and real-time help. A pair of smart shoes equipped with water and ultrasonic sensors. A Bluetooth connection between the shoe and an Android application will enable voice control support for the user. The user will be assisted in moving about autonomously by the Smart Shoes and the Android application.
A smart shoe for the blind is a wearable device that is designed to help visually impaired individuals navigate their surroundings with greater ease and independence. This innovative technology utilizes a combination of sensors, artificial intelligence, and haptic feedback to provide users with real-time information about their environment, including obstacles, terrain changes, and other potential hazards. The design of a smart shoe for the blind typically includes a range of sensors, such as ultrasonic sensors, gyroscopes, and accelerometers, that are strategically placed throughout the shoe. These sensors work together to detect and analyze the surrounding environment, providing the user with valuable information about their surroundings.
In addition to sensors, smart shoes for the blind also utilize haptic feedback to communicate information to the user. Haptic feedback is a tactile form of communication that provides the user with physical sensations to convey information, such as vibrations or pressure changes. For example, if the shoe detects an obstacle in the user's path, it may vibrate or apply pressure to the appropriate part of the foot to alert the user to the presence of the obstacle.
Smart shoes for the blind are also equipped with artificial intelligence algorithms that can process the data collected by the sensors and provide the user with useful information in real-time. This can include information about the user's location, nearby points of interest, and other environmental factors that may affect their navigation. Overall, the goal of a smart shoe for the blind is to provide visually impaired individuals with a greater sense of independence and confidence in their ability to navigate their surroundings. By utilizing advanced technologies such as sensors, haptic feedback, and artificial intelligence, these innovative devices have the potential to revolutionize the way that visually impaired individuals navigate their environment.
II. LITERATURE SURVEY
Teja Chava,A et al.  (2021) explains about “IoT based Smart Shoe for the Blind” in which IoT based Smart shoe system for the blind is a system made with the help of ultrasonic sensors paired to an Arduino UNO board. Internet of things is all about making physical objects communicate with other objects or even with humans. It is an enabling technology which has a rapid development and growth in the market.
In our India there are almost 40 million blind people among which 1.6 million are children. Blind people face great difficulty to travel independently. They have to depend on others in many aspects of their life. The Major problem is when they walk on the road. With a stick in hand they cannot detect every obstacle that comes in their way. The Smart shoe design provides a longterm solution for the blind to walk on roads independently. The smart shoe will help the Blind person to reach his destination independently. It is built using IoT Technology in which the shoe will be embedded with various sensors, Microcontroller and buzzers.
Pratik Bhongade et al.  (2022) explains about “Internet of Things - Enabled Smart Shoes for Blind People”, Eyes are undoubtedly the most significant asset humans have, and they play a vital part in our everyday lives. Since we have eyesight, we can see the world around us. This paper aims to create a system that aids in making the lives of blind people more self-sufficient, simpler, and secure while also tracking their health and fitness. This Smart Shoe will be equipped with various sensors connected to an Arduino that will perform a variety of functions such as obstacle detection, pothole detection, slippery surface detection, health tracking, and heat sensing. The project also includes GPS-GSM navigation and location tracking, as well as an emergency-SOS facility to assist blind people in every way imaginable. The entire system is powered by two sources: two batteries as a primary source and piezoelectric plates as an alternate source that generates power when a blind person walks.
Anisha,S  (2021) explains about “Low-Cost Smart Shoe for Visually Impaired” This work is carried out for the visually impaired people to assist them in finding the obstacles. They have major risk factors in migrating from one place to another place individually. During the time of their travel, it is very hard to find out the obstacles on their way. Many accidents, injuries and collisions may occur during their transportation as they are unaware of the obstacles present in front of them. To overcome this
Jeffrey CHEHADE et al. (2020) explains about “Design and Implementation of Smart Shoes for Blind and Visually Impaired People for More Secure Movements “Blind and visually impaired people encounter many challenges in their mobility and navigation. This system is developed to detect obstacles, wet floor and patients' falls. In case of presence of one of the above incidents, the user will be notified acoustically using some voice alarms. The system was tested over five subjects and the results have shown low faulty errors and good accuracy and detection percentages along with an accuracy that reached about 96%.
V Nandalal et al.  (2021) explains about “Intelligent Multi-Utility Shoe for Visually Impaired Persons “Eyesight is the most important sense. A person who has No Light Perception (NLP) is termed a blind person. In past, blind people used to take the help of a white cane to move from one place to another, and guide dogs are also used to guide them. Technology has developed a lot and it also helps blind people. The proposed method helps to reduce the suffering of blind people and helps in their daily activities. The distance between the obstacle and the person is found through the support of ultrasonic sensors. Since the sensors are integrated with the shoes, they not only help us to find the hurdles lying before but also the pits available in the track of the blind person.
Pradeep Kumar M et al.  (2021) explains about “ Real Time Assistive Shoe for Visually Impaired People“,Visually disabled people come across many challenges on a daily basis, some challenges are new and some routine. Since blind people cannot detect the obstacles or move to any destinations independently.The shoe module is incorporated with a lightweight controller device and sensors whereas the phone-module includes GPS system. The controller in the shoe module is attached with a Bluetooth transceiver which syncs to a smart phone app that uses Google maps to direct the person and facilitates the user by providing the information about the path. Once the user selects the destination then the route is laid, the direction is constantly updated to allow the user to go according to the pattern from being dynamically adaptive and avoids any diversion from a planned directional path. The signal sent from the phone module will be determined by the Bluetooth and a corresponding message is sent to the controller in the shoe module. The major objective in this paper is to keep the device smart and cost efficient. The software used is reliable and stable.
Varsha Singh et al.  (2019) explains about “Blind Man Shoes”,Shoes for blind man help or assist optically handicapped person to reach their respective terminus. It presents a working conceptual model a concept to provide a clever automated wearable device for blind people. The structure is proposed to offer overall solutions which include artificial vision and object detection. Ultrasonic sensors help in calculating distance of the hurdles lying in the path of blind person. This device help in providing best available track to the user in the form of audio.The hardware consists of Arduino Lilypad based embedded system, ultrasonic sensors, IR sensor, GSM modem, Audio playback board with speaker/headphone. The voice output is generated by an Audio Processor using APR9600 module which can store, record and playback 8 different messages. These messages can be modified according to the user's convenience and language preference.
Pratik Bhongade et al.  (2022) explains about “ Internet of Things - Enabled Smart Shoes for Blind People“Eyes are undoubtedly the most significant asset humans have, and they play a vital part in our everyday lives.This Smart Shoe will be equipped with various sensors connected to an Arduino that will perform a variety of functions such as obstacle detection, pothole detection, slippery surface detection, health tracking, and heat sensing. The project also includes GPS-GSM navigation and location tracking, as well as an emergency-SOS facility to assist blind people in every way imaginable. The entire system is powered by two sources: two batteries as a primary source and piezoelectric plates as an alternate source that generates power when a blind person walks. When sensors detect an obstruction, the data is sent to the microcontroller. The data is then processed by the microcontroller and sent over Bluetooth to the Smart Shoes Android application.
Qianli Xu et al.  (2016) explains about “ Design and Evaluation of Vibrating Footwear for Navigation Assistance to Visually Impaired People“,A wearable system is designed to provide directional information to visually impaired people.
It consists of a mobile phone and haptic shoes. The former serves as the perceptual and control unit that generates directional instructions. The prototype system is evaluated in a usability test with 60 subjects. By comparing different configurations, it is shown that the system achieves varying levels of perception accuracy under various walking conditions, and that the proposed design is advantageous to the benchmarking configuration.
M. Anisha et al.  (2021) explains about “ Low-Cost Smart Shoe for Visually Impaired “This work is carried out for the visually impaired people to assist them in finding the obstacles. They have major risk factors in migrating from one place to another place individually. During the time of their travel, it is very hard to find out the obstacles on their way. Many accidents, injuries and collisions may occur during their transportation as they are unaware of the obstacles present in front of them. To overcome this project is mainly focused on designing an electronically aided shoe for the visually impaired people for their better transportation.
P. Ebby Darney et al.  (2022) explains about “ IoT based Smart Shoes for Blind people “ ,India stands third among the world's blind people population. They cannot see what is happening around them. They are facing numerous problems while moving from one place to another. Due to loss of eyesight, they hurt themselves while travelling to many places. Sometimes they even find it difficult to trace the route back to their home. Hence a novel system is required to facilitate them while travelling and to help them to find their way to home when they lost their route to home. To deal with this, the proposed study has designed a novel system called IoT based Smart Shoes for blind people. This can solve aforementioned problems and facilitate blind people to a huge extent.
This proposed work aims to develop a model that can detect and identify objects in real-time to aid blind and visually impaired individuals. The system will use an ESP32 cam to capture live video, which will be processed by the YOLO algorithm for object detection. YOLO is an algorithm that trains on entire images and directly optimizes detection performance, making it well-suited for real-time video scenes. Additionally, the system will incorporate an obstacle indication feature using a combination of ultrasonic sensors and NodeMCU, and a buzzer alert will be triggered as a warning signal.This project aims to create a smart shoe that helps visually impaired people navigate their surroundings with more independence and safety. The shoe is equipped with an ESP32CAM module, which is a powerful microcontroller with integrated Wi-Fi and a camera. The camera is used for object detection and face recognition, while the Wi-Fi allows the shoe to connect to the internet and send data to a remote server.The shoe is also equipped with an ultrasonic sensor and a buzzer, which work together to provide distance alerts. The ultrasonic sensor detects obstacles in the path of the wearer, while the buzzer emits a sound to alert the wearer to the presence of the obstacle.
The shoe uses YOLO (You Only Look Once), an open-source real-time object detection system, to detect objects and faces in the environment. YOLO is a deep learning-based model that is highly accurate and can detect objects and faces in real-time.The shoe also uses face recognition technology to identify people in the wearer's environment. This can help the wearer to identify friends and family members, and to avoid strangers.
The shoe's software is written in Arduino, which is an open-source electronics platform based on easy-to-use hardware and software. The code controls the ESP32CAM module, the ultrasonic sensor, the buzzer, and the YOLO object detection and face recognition software.
Overall, this project has the potential to greatly improve the quality of life for visually impaired individuals, allowing them to navigate their environment with greater independence and confidence.
A. Artificial Intelligence
In computer science AI research is defined as the study of "intelligent agents": any device that perceives its environment and takes actions that maximize its chance of successfully achieving its goals. Colloquially, the term "artificial intelligence" is applied when a machine mimics "cognitive" functions that humans associate with other human minds, such as "learning" and "problem solving".
B. Machine Learning
Machine learning itself, is a subset of artificial intelligence in the field of computer science that often uses statistical techniques to give computers the ability to "learn" (i.e., progressively improve performance on a specific task) with data, without being explicitly programmed.
C. Deep Learning
Deep learning itself, is part of a broader family of machine learning methods based on learning data representations, as opposed to task-specific algorithms. Learning can be supervised, semi-supervised or unsupervised.
D. Artificial Neural Network and Deep Neural Network
Artificial Neural Network or connectionist systems are computing systems inspired by the biological neural networks that constitute animal brains. Such systems learn (progressively improve their ability) to do tasks by considering examples, generally without task-specific programming.
Deep Neural Networks, or DNN, is simply an Artificial Neural Network with multiple hidden layers between the input and output layer.
Fig 2: Artificial Neural Network and Deep Neural Network
E. Convolutional Neural Network
Convolutional Neural Network (CNN, or ConvNet) is a class of deep, feed-forward artificial neural networks, most commonly applied to analyzing visual imagery. CNNs use a variation of multilayer perceptrons designed to require minimal preprocessing.
F. YOLO Algorithm
YOLO has a very good balance between accuracy and speed of object detection. There are also other existing Neural Networks such as R-CNN, Fast R-CNN, Faster R-CNN, SSD MobileNet, and so on, but YOLO is a balanced network and also pretty easy to use and learn especially in this internship.
IV. HARDWARE DESCRIPTION
The Atmel AVR® core combines a rich instruction set with 32 general purpose working registers. All the 32 registers are directly connected to the Arithmetic Logic Unit (ALU), allowing two independent registers to be accessed in a single instruction executed in one clock cycle. The resulting architecture is more code efficient while achieving throughputs up to ten times faster than conventional CISC microcontrollers.
The ATmega328/P provides the following features: 32Kbytes of In-System Programmable Flash with Read-While-Write capabilities, 1Kbytes EEPROM, 2Kbytes SRAM, 23 general purpose I/O lines, 32 general purpose working registers, Real Time Counter (RTC), three flexible Timer/Counters with compare modes and PWM, 1 serial programmable USARTs , 1 byte-oriented 2-wire Serial Interface (I2C), a 6- channel 10- bit ADC (8 channels in TQFP and QFN/MLF packages) , a programmable Watchdog Timer with internal Oscillator, an SPI serial port, and six software selectable power saving modes.
The ATmega328/P is supported with a full suite of program and system development tools including: C Compilers, Macro Assemblers, and Program Debugger/Simulators, In-Circuit Emulators, and Evaluation kits. Below figure 3.2.1 pin diagram of ATMEGA328.
C. Port B (PB [7:0]), XTAL1/XTAL2/TOSC1/TOSC2
Port B is an 8-bit bi-directional I/O port with internal pull-up resistors (selected for each bit). The Port B output buffers have symmetrical drive characteristics with both high sink and source capability. As inputs, Port B pins that are externally pulled low will source current if the pull-up resistors are activated. The Port B pins are tri-stated when a reset condition becomes active, even if the clock is not running.
Depending on the clock selection fuse settings, PB6 can be used as input to the inverting Oscillator amplifier and input to the internal clock operating circuit.
Depending on the clock selection fuse settings, PB7 can be used as output from the inverting Oscillator amplifier.
If the Internal Calibrated RC Oscillator is used as chip clock source, PB [7:6] is used as TOSC [2:1] input for the Asynchronous Timer/Counter2 if the AS2 bit in ASSR is set.
D. Port C (PC [5:0]), PC6/RESET
Port C is a 7-bit bi-directional I/O port with internal pull-up resistors (selected for each bit). The PC [5:0] output buffers have symmetrical drive characteristics with both high sink and source capability. As inputs, Port C pins that are externally pulled low will source current if the pull-up resistors are activated. The Port C pins are tri-stated when a reset condition becomes active, even if the clock is not running.
E. Port D (PD [7:0]), AVCC
Port D is an 8-bit bi-directional I/O port with internal pull-up resistors (selected for each bit). The Port D output buffers have symmetrical drive characteristics with both high sink and source capability. As inputs Port D pins that are externally pulled low will source current if the pull-up resistors are activated. The Port D pins are tri-stated when a reset condition becomes active, even if the clock is not running.
1. Port D: 8-bit bidirectional I/O port with internal pull-up resistors
2. AVCC: Analog voltage supply pin for ADC and the analog comparator
F. NodeMCU Uno Board Description
We will learn about the different components on the NODEMCU board. We will study the NODEMCU UNO board because it is the most popular board in the NODEMCU board family. In addition, it is the best board to get started with electronics and coding. Some boards look a bit different from the one given below figure 3.2.2, but most NODEMCUs have majority of these components in common.
NODEMCU board can be powered by using the USB cable from computer. All we need to do is connect the USB cable to the USB connection (1).Power (Barrel Jack)
NODEMCU boards can be powered directly from the AC mains power supply by connecting it to the Barrel Jack.
G. Voltage Regulator
The function of the voltage regulator is to control the voltage given to the NODEMCU board and stabilize the DC voltages used by the processor and other elements.
H. Crystal Oscillator
The crystal oscillator helps NODEMCU in dealing with time issues. How does NODEMCU calculate time? The answer is, by using the crystal oscillator. The number printed on top of the NODEMCU crystal is 16.000H9H. It tells us that the frequency is 16,000,000 Hertz or 16 MHz.
I. Analog Pins
The NODEMCU UNO board has five analog input pins A0 through A5. These pins can read the signal from an analog sensor like the humidity sensor or temperature sensor and convert it into a digital value that can be read by the microprocessor.
J. Ultrasonic Sensor
The HC-SR04 Ultrasonic Sensor is marketed as a Ranging Module as it can be accurately used for measuring distances in the range of 2cm to 400cm with an accuracy of 3mm. In order to send the 40 KHz Ultrasound, the TRIG Pin of the Ultrasonic Sensor must be held HIGH for a minimum duration of 10µS.
After this, the Ultrasonic Transmitter, will transmits a burst of 8-pulses of ultrasound at 40 KHz. Immediately, the control circuit in the sensor will change the state of the ECHO pin to HIGH. This pins stays HIGH until the ultrasound hits an object and returns to the Ultrasonic Receiver. Based on the Time for which the Echo Pin stays HIGH, you can calculate the distance between the sensor and the object
V. SOFTWARE SYSTEM
Python is an interpreter, high-level, general-purpose programming language. Created by Guido van Rossum and first released in 1991, Python's design philosophy emphasizes code readability with its notable use of significant whitespace.
Thonny is as mall and light weight Integrated Development Environment. It was developed to provide a small and fast IDE, which has only a few dependencies from other packages. Another goal was to be as independent as possible from a special Desktop Environment like KDE or GNOME, so Thonny only requires the GTK2 toolkit and therefore you only need the GTK2 runtime libraries installd to run it
For compiling Thonny yourself, you will need the GTK (>= 2.6.0) libraries and header files.At startup, Thonny loads all files from the last time Thonny was launched. You can disable this feature in the preferences dialog. If you specify some files on the command line, only these files will be opened, but you can find the files from the last session in the file menu under the "Recent files" item. By default this contains the last 10 recently opened files.
You can change the amount of recently opened files in the preferences dialog.
You can start several instances of Thonny , but only the first will load files from the last session. To run a second instance of Thonny , do not specify any file names on the command-line, or disable opening files in a running instance using the appropriate command line option.
Thonny detects an already running instance of itself and opens files from the command-line in the already running instance. So, Thonny can be used to view and edit files by opening them from other programs such as a file manager. If you do not like this for some reason, you can disable using the first instance by using the appropriate command line option.
If you have installed libvte.so in your system, it is loaded automatically by Thonny , and you will have a terminal widget in the notebook at the bottom. If Thonny cannot find libvte.so at startup, the terminal widget will not be loaded. So there is no need to install the package containing this file in order to run Thonny.
To copy text from the VTE, just select the desired text and then press the right mouse button and choose Copy from the pop up menu. On systems running the X Window System you can paste the last selected text by pressing the middle mouse button in the VTE (on 2-button mice, the middle button can often be simulated by pressing both mouse buttons together).As long as a project is open, the Make and Run commands will use the project’s settings, instead of the defaults. These will be used whichever document is currently displayed. The current project’s settings are saved when it is closed, or when Thonny is shut down. When restarting Thonny , the previously opened project file that was in use at the end of the last session will be reopened.
VI. FUTURE WORK
The smart shoe for the blind has the potential to transfer the lives of visually impaired individuals by providing greater independence, safety, and confidence. Future work on this project should focus on improving the accuracy and reliability of the technology, as well as exploring new ways to integrate additional features and ensure accessibility for all users.
In conclusion, the smart shoe for the blind is an innovative project that has the potential to significantly improve the lives of visually impaired individuals. By utilizing sensors, haptic feedback, and artificial intelligence, the smart shoe can provide real-time information about the user\'s environment, enabling them to navigate with greater independence and safety.The success of this project will depend on several factors, including the accuracy and reliability of the sensor technology, the effectiveness of the haptic feedback system, and the user-friendliness of the device. Future work on the smart shoe for the blind should focus on improving these factors to create a more seamless and effective user experience. One potential avenue for future work is to explore the integration of other technologies into the smart shoe. For example, incorporating GPS technology could provide the user with additional information about their location and nearby points of interest. Similarly, incorporating machine learning algorithms could help the device to learn and adapt to the user\'s individual needs and preferences over time.Another important area of future work is to ensure that the smart shoe is accessible and affordable for all individuals who could benefit from it. This could involve developing partnerships with healthcare providers, government agencies, and other organizations to increase awareness and accessibility of the technology.
 Teja Chava,A. Tarak Srinivas,A. Lohith Sai,Venubabu Rachapudi,\"IoT based Smart Shoe for the Blind\",2021 6th International Conference on Inventive Computation Technologies (ICICT)  Pratik Bhongade,Sanyukta Girhay,Abdul Moeid Sheikh,Rahul Ghata,Sakshi Ambadkar,Chitra Dusane,\"Internet of Things - Enabled Smart Shoes for Blind People\",2022 IEEE Delhi Section Conference (DELCON)  M. Anisha,S. Kirthika,D.Jemimah Harline,P. Thenmozhi,R Rubala.,T. Girija Pragathi,M. Benisha,C. Jim Elliot,\"Low-Cost Smart Shoe for Visually Impaired\",2021 Third International Conference on Intelligent Communication Technologies and Virtual Mobile Networks (ICICV)  Jeffrey CHEHADE,Georgio ABOU HAYDAR,Ali HAYEK,Josef BOERCSOEK,Jose Javier Serrano OLMEDO,\"Design and Implementation of Smart Shoes for Blind and Visually Impaired People for More Secure Movements\",2020 32nd International Conference on Microelectronics (ICM)  P. Ebby Darney,A. Essaki Muthu,K. Jeyakumar,R. Santhana Krishnan,K. Lakshmi Narayanan,Y. Harold Robinson,\"IoT based Smart Shoes for Blind people\",2022 3rd International Conference on Electronics and Sustainable Communication Systems (ICESC)  V Nandalal,V Anand Kumar,Sujitha A,Sumitha G,Sureka A S,\"Intelligent Multi-Utility Shoe for Visually Impaired Persons\",2021 2nd International Conference on Smart Electronics and Communication (ICOSEC)  Pradeep Kumar M,Inchara K M,Lekhashree S,Likhith C N,Pavan U,\"Real Time Assistive Shoe for Visually Impaired People\",2021 6th International Conference for Convergence in Technology (I2CT)  8.Varsha Singh,Savita Sindhu,Romisha Arora,\"BUZZFEET: Blind Man Shoes\",2019 International Conference on Machine Learning Big Data Cloud and Parallel Computing (COMITCon)  Mritha Ramalingam,Elanchezhian Chinnavan,R. Puviarasi,Ng Hui Yu,\"Assistive technology for harvesting footstep energy in IoT enabled Smart shoe for the visually impaired\",2021 International Conference on Software Engineering & Computer Systems and 4th International Conference on Computational Science and Information Management (ICSECS-ICOCSIM)  Pratik Bhongade,Sanyukta Girhay,Abdul Moeid Sheikh,Rahul Ghata,Sakshi Ambadkar,Chitra Dusane,\"Internet of Things - Enabled Smart Shoes for Blind People\",2022 IEEE Delhi Section Conference (DELCON)  Qianli Xu,Tian Gan,Shue Ching Chia,Liyuan Li,Joo-Hwee Lim,Phyoe Kyaw Kyaw,\"Design and Evaluation of Vibrating Footwear for Navigation Assistance to Visually Impaired People\",2016 IEEE International Conference on Internet of Things (iThings) and IEEE Green Computing and Communications (GreenCom) and IEEE Cyber Physical and Social Computing (CPSCom) and IEEE Smart Data (SmartData)  M. Anisha,S. Kirthika,D.Jemimah Harline,P. Thenmozhi,R Rubala.,T. Girija Pragathi,M. Benisha,C. Jim Elliot,\"Low-Cost Smart Shoe for Visually Impaired\",2021 Third International Conference on Intelligent Communication Technologies and Virtual Mobile Networks (ICICV)  P. Ebby Darney,A. Essaki Muthu,K. Jeyakumar,R. Santhana Krishnan,K. Lakshmi Narayanan,Y. Harold Robinson,\"IoT based Smart Shoes for Blind people\",2022 3rd International Conference on Electronics and Sustainable Communication Systems (ICESC)  Teja Chava,A. Tarak Srinivas,A. Lohith Sai,Venubabu Rachapudi,\"IoT based Smart Shoe for the Blind\",2021 6th International Conference on Inventive Computation Technologies (ICICT)
Copyright © 2023 Nivedhitha V, Praba B, Priyavarshini SR, Aarthi A, Rajakumari K. This is an open access article distributed under the Creative Commons Attribution License, which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.