Smartshoe, a shoe that knows how you walk! If you walk good, you hear music, otherwise ... silence.
Een slimme schoen die weet hoe je wandelt! Als je goed wandelt, hoor je musiek, anders ... stilte
Finale versie is een enkele Wemos, met accelerometer sensor, en MP3 module. Je vindt deze in de src folder. Meer info op de TijlPlay pagina.
Contact in de zool in de hiel. Problemen evenwel die zorgen ermee niet verder te doen
- duurzaamheid: zolen verslijten in 6 maand
- stroom en radio-communicatie voorzien in de schoen
- zolen veranderen van schoenen, eenvoud van gebruik.
Micro-bit heeft een goede accelerometer. Prototype 2 maakt er gebruik van.
Alle info van Microbit terug te vinden op microbit.org
Je kan code schrijven in de python programmeertaal voor MicroBit online, zie Microbit v1.1 editor
De feather als update over de microbit .. deze ontplofte evenwel, dus gezien trage levering, overgeschakeld over wemas D1 Mini
Finale prototype
We ontwikkelen op linux voor Microbit. Op linux doe voor installatie
pip3 install mu-editor
Daarna start de editor via
python3 ~/.local/lib/python3.6/site-packages/mu/__main__.py
Open de test code van /testsketches/test01_microbit.py
, connecteer je microbit via een micro usb kabel met je PC. Je PC zal die herkennen als een usb drive, open die met de file manager. Je kan nu via de mu editor code flashen via de Flash knop in het menu.
Test nu de accellerometer in de microbit met de test sketch /home/mcciocci/git/smartshoe/testsketches/test02_microbit_accelerometer.py
.
Druk in de mu-editor op de plotter om de output te zien. Je stelt vast dat de output rond 980 correspondeert met 1g dus 9.8 m/s2. Als microbit naast je schoen hangt, met je zool plat op de grond, krijg je Y-waarde tussen 950 and 1050, dit omdat Y+ op Microbit naar beneden wijst. Hiermee kunnen we de beweging van de voet volgen, maar schokken zullen problematisch zijn... wiskunde nodig!
We dienen te meten wat effect is van verschillende manieren van stappen. Hiermee zoeken we een patroon welke we kunnen gebruiken om juist of fout stappen te herkennen.
Laat op de microbit de code test02a_microbit_accelerometer.py
, welke accelerometer data naar serial schrijft elke 20 milliseconden, en we gebruiken
om het patroon te besturen. Op de computer die je aan de microbit connecteert laat je test02b_saveserial2csv.py
lopen. Deze slaat de data op in een
csv file welke je met een spreadsheet kunt bestuderen.
Met een PC in de hand lopen is niet handig. We passen de code daarom aan om via bluetooth de data door te sturen ipv via serial connectie. Op je PC, schakel
bluetooth aan. Kijk naar de devices die aanwezig zijn. Op de microbit flash je de hex code test03a_sendaccel2bluetooth.hex
door de microbit aan de PC te hangen
en deze hex op de usb folder te copieren.
Deze hex file komt overeen met javascript test03a_sendaccel2bluetooth.js
welke je via makecode editor in een
hex kan omvormen.
We vangen de data op die de microbit uitstuurt. Hiertoe hebben we bluepy nodig op onze linux PC. Doe hiervoor:
sudo apt-get install python3-pip libglib2.0-dev
sudo pip3 install bluepy
Eerst moet je nog je PC pairen met de microbit. Dit moet je doen telkens je een nieuwe hex op de microbit zet. Volg de guide op microbit. Dus 3 toesten indrukken, wachten op LEDs op scherm, reset loslaten. Hierna zou je in de bluetooth app van je PC de microbit moeten zien verschijnen. Doe connect, om te zorgen dat je paired bent met de microbit. Enkel deze PC zal nu aanvaard worden. Doe disconnect als gelukt.
We zullen nu een connect doen met de microbit vanuit een python script. Dit script zal dus het paspatroon opvangen en opslaan om zo het te kunnen besturen. Start script met
python3 test03b_capturebluetooth.py
Lees output data via een spreadsheet, en kijk welke patronen je kan herkennen.
Dit is de beste accelerometer-gyroscope op de markt op dit moment voor makers. De logic is 3.3V, dus geschikt voor wemos of nodemcu, anders een logic voltage converter nodig.
Uitlezen van data kan via i2cdevlib. Download de source code
git clone https://github.com/jrowberg/i2cdevlib.git
We connecteren een mp3 speler. Zie eigen documentatie
Als finale prototype combineren we een microbit met een arduino nano. De nano draait programma ToeWalkBelt.ino en stuurt de MP3 player aan. Dit door een pin op de Microbit te lezen die aanduidt of correct of fout gewandeld wordt. De mp3 kan via een knop ook in MP3 modus gebracht worden waarbij het mediabestand afgespeeld wordt (en via pauze knop gepauzeerd).
De microbit doet de berekening om te weten of een persoon al dan niet juist wandelt. Deze code is test04_detect_toewalk.py. Er zijn twee calibratiecurves opgenomen. Met knop B van de microbit schakel je tussen de twee. Je dient te wandelen met een snelheid > 80 stappen per minuut (1 been neer is 1 stap, dus normale snelheid is 100 tot 140 stappen), en de gemeten schokken dienen onder de calibratiecurve te liggen. In dat geval wordt pin1 LOW, anders HIGH. De nano leest dit in om hierop te reageren.
Alles wordt gevoed via een batterij: Samsung Li-ion INR18650 25R 20A 2500 MAH - ONBEVEILIGD. Een laadcircuit is aanwezig (TP4056), en een step-up cicuit om dit naar 5V te brengen nodig voor de Nano. This setup is explained for example here
Er is aangetoond dat het geheel moet werken. Voor het eindproduct willen we het aantal componenten reduceren. We gebruiken daarom een Adafruit Feather.
- arduino thread on toe walker
- Toe walking video
- Adafruit sneakers with pressure/step detection
- Filtering and presenting gyro and accelerometer data
- DIY smart insoles with pressure sensors
- simple pedometer with accelerometer
- linux bluetooth connection to microbit
- accelerometer datalogging example
- uart bluetooth example microbit-python