At HackDuke 2017, I made a pair of IoT shoes. I call them the Intellishoes. Pilotshoe guides the blind safely and independently anywhere. Notifishoe provides easy visual navigation/messages to youth/elderly.
The Pilotshoe has an Dragonboard 410c on it which allows me to connect to a Wifi network and ping satellites for GPS coordinates. On top of the Dragonboard is a hat from 96boards that allows me to emulate the arduino with an Atmel chip and talk with the debian linux distro on the Dragonboard through the UART pins. Therefore, I send back Ultrasonic sensor data for a radar like sensing of the objects around the user to the Dragonboard to also package up and send to the web API. Then the iPhone or android picks up on the data and presents it to the blind user through the headphones.
The Notifishoe works on an Raspberry Pi Zero W and pings your phone for notification and GPS data through Bluetooth. It will then present it on a 8x8 RGB matrix called the Unicorn hat by Pimoro.
The inspiration for this project came from Notifishoe. I though it would be cool if I could have more wearable tech that blends seamlessly into my current clothes. For example, if the 8x8 RGB matrix was embedded into the leather of the shoe, every time I looked down, I would see a quick reference to help me with my day. It could be anything from notifications to GPS navigation through arrows pointing the way. From Notifishoe, I came up with the idea for Pilotshoe and through it could be a real asset for the blind. However, I am not blind so I would love to see some feedback on my ideas.
Oh boy, there were a lot of these. From immense amount of time it takes to begin with the dragonboard to the issues with the continuous servo, there were a lot of challenges to work on. I spend the most of my first 12 hours at HackDuke, setting up the Dragonboard. It involves flashing SD Cards, finding HDMI enabled monitors and a USB keyboard and mouse, convincing the debian distro to connect to the HackDuke wifi at a static ip so I could ssh into it without needed the whole setup, configuring various startup bash scripts for when the board boots up and messing with the GPS libraries. For all the crap I give it though, it is a truly amazing SBC. I've only worked with the Raspberry Pi before this so moving to such a powerful chip was a bit of a shock. It's amazing how much they fit on there. And the 96Board was invaluable to this effort too because without it, it would've been a huge hassle to hook up a real Arduino to the sensors and then push for some sort of I2C communication between it and the Dragonboard. Also the other alternative was to modify the kernel of the Dragonboard with Xemai to enable realtime soft PWM waveforms from the Digital pins, which is definitely something I didn't want to do, so thank you 96Boards! The continuous servo has been a pain in the butt ever since I bought it. A continuous servo is able to spin a full 360 degrees, as opposed to one that is limited to a 180 degree range. It's slightly more expensive, but more useful for RC cars and such. However, it's completely useless in this application. The limited range servo has rotary encoders that allow me to pick a degree for the servo to idle at. Thus I could get the servo to oscillate back and forth between 0 and 180 degrees (15 to 165 more likely). But no, instead the continuous servo will simply spin faster in a certain direction the further you get away from 90 degrees. So you've got to time it to switch the clockwise speed to counterclockwise speed. Simply right? No, they aren't calibrated so 90 degrees isn't 0 speed. Who knows that is. And you would think that picking 89 and 91 as speed would give equal but opposite movements? Well no, one will be more powerful so the orientation of the Ultrasonic sensor is slightly more to the left or right with each oscillation! It's a hassle that I couldn't figure out.
Thanks for coming to check out this page, I've very tired as I'm writing this since I've stayed up all night so please excuse anything that doesn't make sense in the descriptions above. Please leave feedback below on what you think and how I could improve.