Många vandringsdjur, som fåglar och fiskar, sägs känna till kompassriktningen när de vandrar, ibland över mycket långa sträckor, natt eller dag, och ofta i mycket dåligt väder.
För människor kan den här typen av kunskap behövas, till exempel när man plockar bär på en okänd plats eller helt enkelt när man tappar riktningen.
Ett kompassbälte är en rem som hjälper dig att veta var norr är utan att behöva titta på en kompass. Den har små vibrationsmotorer och en givare som känner av jordens magnetfält. När du bär den vibrerar motorn som är vänd mot norr något, vilket ger bäraren en "intuitiv" känsla av riktning.
Varför är det här coolt? Föreställ dig att du är i skogen och plockar svamp i skymningen och tappar lagren. Med den här remmen kommer du alltid att känna norrpolens knäppning, vilket hjälper dig att hålla dig på rätt spår utan kartor eller kompasser.
Jag beställde de elektroniska delarna online för cirka $60.
Sedan sydde och lödde jag fast vibrationsmotorerna på en töjbar rem.
Jag lade till ett plastspänne och använde ett textilrör för att skydda det.
Som orienteringsentusiast med grundläggande kunskaper om elektronik tyckte jag att det här projektet var både roligt och användbart. Oavsett om du utforskar nya stigar eller bara älskar coola prylar kan Compass-remmen vara en bra följeslagare!
Riktningsjustering
Justeringsvred för att justera riktningen 0... 360 grader
vibrationslägen
Dubbelklicka för att växla mellan kontinuerlig och intermittent vibration. Enkelklicka för att växla mellan 1, 2, 3 eller 4 sekunder. Långt tryck för att snabbt testa att alla vibratorer fungerar.
Smart givare
En självkalibrerande magnetometer som känner av om du går, cyklar eller står still.
Batteridriven för många timmars navigering.
Två batterier räcker till ca 3 timmars användning.
Denna krets är utformad för att ansluta en Arduino Mega 2560 eller Arduino Due till olika komponenter, inklusive en dubbelriktad logisk spänningsomvandlare, en trimning potentiometer, flera vibrationsmotorer, en Adafruit BNO085 9-DOF Orientation IMU Fusion och andra komponenter. Kretsen drivs av 18650 batterier och har en vippströmbrytare för kontroll. Arduino Mega 2560 eller Arduino Due är programmerad för kontroll av vibrationsmotorerna baserat på indata från IMU och andra givare, vilket ger haptisk återkoppling om norriktningen.
Ett mikrokontrollerkort baserat på Atmel SAM3X8E ARM Cortex-M3 CPU.
Har flera I/O-bultar, PWM-utgångar och kommunikationsgränssnitt.
Används för säkert gränssnitt mellan olika spänningsnivåer, t.ex. 3,3 V och 5 V.
En variabel resistor med ett motstånd på 10k Ohm, som används för att justera spänningsnivåer.
Två resistorer med ett motstånd på 4,7 kOhm och en med 10 kOhm, används för strömbegränsning och som pull-up-resistorer för I2C-buss.
Flera små motorer används för haptisk återkoppling.
En sensormodul som tillhandahåller orienteringsdata med hjälp av en kombination av accelerometer, gyrometer och magnetometer.
Ger ström till kretsen.
Används för kontroll av strömförsörjning till kretsar.
Används för användarinmatning för kontroll av kretsar.
En DC-DC-spänningsomvandlare som används för att öka spänningen från batteriet.
A2: Ansluten till torkaren på potentiometern för trimning.
A1: Ansluten till stift 1 på resistorn (10 kOhm) och stift 2 på tryckknappen.
D20/SDA3: Ansluten till HV4 på den bidirektionella logiska spänningsomvandlaren.
D21/SCL3: Ansluten till HV3 på den bidirektionella logiska spänningsomvandlaren.
5 V: Ansluten till HV i den bidirektionella logiska spänningsomvandlaren.
GND: Ansluten till GND för den bidirektionella logiska spänningsomvandlaren, resistor (10k Ohm), potentiometer för trimning, Adafruit BNO085, boostmodul MT3608 och vibrationsmotorer.
VIN: Ansluten till L1 på vippströmbrytaren.
D26 till D45: Ansluts till plusklämmorna på olika vibrationsmotorer.
GND: Ansluten till GND på Arduino Mega 2560 eller Arduino Due och andra komponenter.
HV: Ansluten till 5 V på Arduino Mega 2560 eller Arduino Due.
HV3: Ansluten till stift1 på resistorn (4,7 kOhm) och D21/SCL3 på Arduino Mega 2560 eller Arduino Due.
HV4: Ansluten till stift1 på resistorn (4,7 kOhm) och D20/SDA3 på Arduino Mega 2560 eller Arduino Due.
LV: Ansluten till stift2 på resistorn (4,7k Ohm) och ben2 på potentiometern för trimning.
LV3: Ansluten till SCL för Adafruit BNO085.
LV4: Ansluten till SDA på Adafruit BNO085.
Torkare: Ansluts till A2 på Arduino MegA2560 eller Arduino Due.
Leg1: Ansluten till GND på den bidirektionella logiska spänningsomvandlaren.
Ben2: Ansluten till LV i den bidirektionella logiska spänningsomvandlaren.
10k Ohm: stift1 anslutet till A1 på Arduino Mega 2560 eller Arduino Due, stift2 anslutet till GND.
4,7 kOhm: stift 1 anslutet till HV3 och HV4 på den bidirektionella spänningsomvandlaren, stift 2 anslutet till LV på den bidirektionella spänningsomvandlaren.
Plusklämmor: Ansluts till D26 till D45 på Arduino Mega 2560 eller Arduino Due.
Negativa klämmor: Anslutna till GND på Arduino Mega 2560 eller Arduino Due.
3,3 V: Ansluten till LV i den bidirektionella logiska spänningsomvandlaren.
GND: Ansluten till GND på Arduino Mega 2560 eller Arduino Due.
SCL: Ansluten till LV3 på den bidirektionella logiska spänningsomvandlaren.
SDA: Ansluten till LV4 på den bidirektionella logiska spänningsomvandlaren.
seriekopplad, + pol på den första är ansluten till + pol på den andra
- pol på First 18650: Ansluten till VIN- på MT3608.
+ på sekunden: Ansluten till VIN+ på MT3608.
L1: Ansluten till chassinummer för Arduino Mega 2560 eller Arduino Due.
COM: Ansluten till VOUT+ på MT3608.
VIN-: Ansluten till– polen på det första 18650-batteriet.
VIN+: Ansluten till +-polen på det andra 18650-batteriet.
VOUT-: Ansluten till GND på Arduino Mega 2560 eller Arduino Due.
VOUT+: Ansluten till COM på vippströmbrytaren.
Stift1: Ansluten till LV på den bidirektionella logiska spänningsomvandlaren.
Stift2: Ansluten till A1 på Arduino Mega 2560 eller Arduino Due och ansluten till stift1 på 10 k Ohm resistor.
Arduino Mega 2560 eller Arduino Due programmeras med hjälp av en skiss som innehåller flera bibliotek för hantering av den haptiska remmen, kompassen och knapparna. Koden initierar IMU-givaren och ställer in vibrationsmotorerna för haptisk återkoppling. Huvudslingan läser av knappens status och uppdaterar kompassriktningen baserat på data från givare eller seriell ingång. Den haptiska remmen uppdateras för att ge feedback baserat på kompassriktningen.
Github Compass-remLibraries: Innehåller anpassade bibliotek för hantering av den haptiska remmen och kompassen, samt standardbiblioteken OneButton.h för klick på knapparna, Wire.h för I2C-kommunikation och Adafruit_BNO08x.h för BNO08x-givaren.
Bultkonfiguration: Definierar bultar för knappar och vibrationsmotorer.
Givarinitiering: Initierar BNO08x-givaren och ställer in önskade rapporter.
Main Loop: Kontinuerlig avläsning av knapparnas status, uppdatering av kompassens riktning och kontroll av den haptiska remmen baserat på riktningen.
zooma in på de viktiga delarna av huvudritningen
Zooma in på huvudritningens spänningsomvandlare
ett diagram över kretsen. Bilden visar en Adafruit BNO08x, men jag har faktiskt en BNO085 slimeVR. Gränssnitten är desamma. Skyddande frigångsdioder kan användas för att eliminera en plötslig spänningstopp i den induktiva lasten när matningsströmmen bryts. Men här är den nuvarande spiken till synes tillräckligt liten, Arduino har ännu inte gått sönder.
Lådan består av 6 olika delar: 1: slutare med reglage. 2: överhängsdel för stängning av spåret. 3: Övre låda 4: sänkning av låda. 5: inre kabelpackning. 6: Yttre kabelpackning.
Slidreglaget (1) är utformat som en klammer. Den kan röra sig fram och tillbaka i ett spår. Det finns en plats i facket där lådan kan öppnas. Om skjutreglaget däremot skjuts så att det klämformade skjutreglaget griper tag i tungan kan lådan inte längre öppnas. Spåret skapas genom att limma fast delen (2) på lådans ovansida (3). Vid limningen måste reglaget (1) emellertid redan vara i spåret, eftersom reglaget inte kan sättas i efter att delen (2) har limmats fast. Detta har fördelen att skjutreglaget aldrig går förlorat. Lådans överdel (3) är förbunden med lådans sänkning via två gångjärn. Jag använde svetstråd med en diameter på 4mm. Kabelgenomföringen består av två positioner (5) och (6). Den mindre flänsen (5) trycks in i den större flänsen (6), men först applicerar du limspackel i mellanrummet. Denna putty trycker ihop flatkabeln och skapar en bra tätning. Det förhindrar också att kontakten lossnar från motstycket när det finns en viss spänning i flatkabeln.
Lådan har fyra anslutningar för gummiband, två på sidan och två på ovansidan. Lådan placeras bäst på bröstet. När lådan är på bröstet är det också mycket enkelt att använda potentiometern för att justera riktningen, strömbrytaren och tryckknappen. Min erfarenhet är att det inte räcker att hålla lådan på sidan med ett bälte under löpningen, utan man behöver även hängare av textilelastiska band som viras runt armarna. Dessa hängare träs i de vertikala spännena. Dessa hängare förhindrar att lådan glider ned på grund av stötarna under körning.
på den här bilden kan du se det 3D-tryckta fodralet öppnat framifrån. Arduino i mitten, kontaktdon för vibrationsmotorerna till vänster. Här kan du se att jordkabeln har en liten " böj " i kabelklämman, eftersom GND-kontakten är separerad i kontaktraden. Längst upp till höger ser du BNO085 slimeVR IMU-givare. Den blå kabeln är SCL-kabeln (klocka), den gula kabeln är SDA-kabeln (data), men kabelfärgerna skiljer sig från diagrammet. Nedtill i mitten ser du batteriutrymmet och upptill ser du den lödda brytaren. Alla Arduino-kablar är anslutna med en Dupont-kontakt, så att all ström också kan kopplas bort helt. Kablarna är "limmade" på kanterna med limspackel, så att allt kan tas bort tillfälligt från lådan. Givaren måste alltid vara ungefär vågrät för att ge rätt luftriktning.
Här ser du kompassremmen i sin helhet, framför elektronikhuset, från vänster går kabeln ut till vibrationsmotorns rem, som skyddas av en gul rem. Själva inhägnaden sätter jag min egen stretchiga textiltejp runt magen, alternativt kan den även stoppas ner i en byxficka. Mellan hölstret och själva remmen finns en ögla på cirka 30cm, så att hölstret även får plats i en byxficka, bältesficka eller till och med en ryggsäck. Hölstret har två gummibandsfästen, ett för horisontellt läge och ett för vertikalt läge. Jag tycker att det horisontella läget är bättre för löpning då hölstret floppar mindre. Först försökte jag fästa höljet direkt på vibrationsmotorns rem, men det tar för mycket plats där och vibrationen från vibrationsmotorerna under höljet blir förvrängd och friktionen mellan höljet och motorerna kan eventuellt riva av kontakter och kablar.
Remmen med kompass är klädd med ett gult skydd i syntettyg. Tyget är tunt och slätt så att det torkar snabbt och kan även tas av om du vill tvätta det i tvättmaskin. Orienteringen är svettig och kroppen är ständigt i kontakt med våta och smutsiga grenar och kvistar. Tyget får inte filtas, där små fiberändar sticker ut från tyget och fungerar som små krokar som fäster sig i små sprickor i föremål, dolda kablar och små kontakter, vilket orsakar små veck i kabeln eller kontakten som fastnar i tygluggen. Ellådan ska fästas med egen elastisk textiltejp. Båda remmarna sitter bekvämt tätt mot kroppen, så att allt fungerar även vid orientering. Kabeln mellan hölstret och remmen är nu onödigt lös, den kan kortas med en gummirem. Elektronikhuset får inte flyga omkring, eftersom givaren då ger en felaktig signal när den mäter sin egen position i tredimensionellt utrymme. Givaren kompenserar i princip för eventuell lutning, men som en allmän regel bör den vara i horisontellt läge.
Jag är inte nöjd med enstaka kablar från arduino till varje vibrationsmotor. Det skapar kladd. En flatkabel verkar vara den renare lösningen. Avståndet från bucklan bör mer spegla de verkliga riktningarna, men eftersom människans midja inte är riktigt rund utan mer som en ellips, justera avstånden mellan motorpunkterna. Om andra personer med större midja vill använda remmen använder jag en midjevidd på 110cm. Poängen är att jag vill göra 2 vibrationsremmar, så jag gör allt så att jag får 2 likadana flatkablar. Allt är symmetriskt runt mittmarkeringen. Alla kabeländar förser jag med Dupont-kontakter och– mycket viktigt– testar jag alla kablar för att kunna veta att det inte finns några fel och att varje enskild ledning leder från kontakt till kontakt.
Det flexibla textilbandet med påsytt spänne, ett måttband och den på marken liggande flatkabeln. Jag markerar mittpunkten. På det flexibla textilbandet finns provburar för vibrationsmotorerna som är placerade på avstånd.
Slutet av spännets hondel. Faktum är att spännet är bredare än det normala avståndet mellan två vibrationsmotorer, så det blir ett visst misstag.
Ändarna på flatkablarna är tejpade mot golvet så att flatkabeln sträcks rakt. Antalet kablar på flatkabeln är 26, så jag lämnar de yttre 3 kablarna utan avskärning. Kapstället markeras först med tuschpenna enligt tabellen med kaplängd. Sedan, när alla markeringar har gjorts och även kontrollerats (från båda sidorna ska det vara symmetriskt)
Efter att alla enskilda kablar har markerats använder jag en kniv för att dela flatkabeln runt den markerade punkten. Jag gör en allmän översyn.
Detta är det sista steget. När delningsprocessen är klar fortsätter du med delningsprocessen så att de båda symmetriskt skurna flatkablarna slutligen separeras. Gör slutligen snitten med en avbitartång.
Vibrationsmotorerna levereras med JST-SH-hankontakter. Därför köper jag passande honkontakter. Dessa måste lödas. Kontaktens bultar är mycket små.
Det är bättre att bara använda lite plåt för att hålla vajrarna så flexibla som möjligt. Lödpunkten är sprödare och kräver inte lika mycket böjning.
Jag skrapade upp jordkabeln med en varmlödkolv under ett förstoringsglas. Jag klämde fast flatkabeln med stativet och klammern. Jag tryckte in en plåtbit i mellanrummet mellan jordkabeln och den andra kabeln som underlag. Skrapa sedan försiktigt bort kabelmanteln med en varmlödkolv och var försiktig så att du inte bryter av vajrarna. Kör även lödkolven under vajrarna. Jag har avisolerat alla anslutningskablar i förväg. Vid lödning ska kablarna klämmas fast ordentligt och lödas under ett förstoringsglas. När du har lyckats få den första lödskarven rätt är nästa lödskarv mycket enklare eftersom du bara behöver flytta kabeln.
Det är uppenbart att lödskarvar lätt går sönder om en kabel ständigt utsätts för lätt böjning fram och tillbaka, vilket säkert är fallet med en kompassrem. Därför limmade jag alla lödfogar ordentligt med epoxilim (2-komponentslim). Så först lindade jag scotchtejp runt kontakten för att bilda ett slags tråg. Sedan limmas alla kabeländar med kontakterna fast på bordet med tejp så att ingenting kan röra sig. Sedan blandar jag epoxilimmet och fyller alla lödfogar så gott jag kan med epoxilim.Sedan väntar jag en dag på att allt ska härda. Nästa dag tar jag bort tejpen och lindar isoleringstejp runt de två ledarna.
Bilden visar hur flatkabeln fästs med två klammer. Nedan ser du en stålborste som jag använde för att ta bort den smälta plasten från lödkolven. Stöder det stabila lödkolven med ytterligare en böjbar svanhals. Jag tittar först förbi förstoringsglaset för att se till att lödkolven är ungefär på målet och tittar sedan genom förstoringsglaset.
den gula kabeln fästs i den andra svanhalsklammern underifrån. Lödkolven vilar på den andra svanhalsen. Se till att smörja lödstället med lödvätska. Jag försöker vara sparsam med plåten eftersom förtennad kabel är ömtålig, så det är bäst att ha så kort plåt som möjligt. Lödning med magnetiska flexibla svanhalsklämmor påskyndar arbetet eftersom du behöver mer än två händer.
Bilden visar hur jag lindade eltejp runt uttagskablarna till vibrationsmotorerna för att hålla ihop dem snyggt. Även här kan det finnas en krympslang.
Det är viktigt att krympslangen placeras INNAN kontakten löds. Sedan löder jag alla kontakter och sedan applicerar jag ett epoxilim på alla lödpunkter och sedan drar jag krympslangen över kontakten när epoxin fortfarande är våt.
Bilden visar hela flatkabeln. I detta skede är det viktigt att testa allt för att säkerställa att alla lödpunkter är strömförande. Jag tycker att det här är en mycket snyggare lösning än den tidigare med separata kablar, som liknar spaghetti.
Arrangera ändarna på flatkabeln med en kam. Det är bättre att placera varje kabel i sin egen tand i kammen. Det är viktigt att kablarna placeras i rätt ordning på klämmorna. När du ansluter en Dupont-kontakt till en enda kabelände tenderar de andra kabeländarna att förväxlas hela tiden. Detta kan undvikas genom att använda en kam enligt bilden. Genom att limma fast kablarna med blå tejp tillfälligt på kambultarna förväxlas inte kabelordningen. Den blå tejpen är också viktig, den kan användas för att hålla komponenterna på plats upp och ned under lödning, och den blå tejpen kan användas som buntband, eftersom vanliga buntband är alldeles för stora för den här lilla kabeln.
Detta visar remmen med cylindriska vibrationsmotorer. Den har nu ett gult nät som skydd, men detta skydd är ännu inte komplett på den här bilden. Den gula nättejpen fästs nu endast med runda kardborrband. Tejpens baksida är självhäftande och fäster ganska lätt på tyget. När jag skriver detta tycker jag att det vore bäst att fortfarande köpa lite silkeslent tyg från en textilaffär för att skydda alla sidor av remmen.
Jag köpte en uppsättning vibrationsmotorer för användning med eltandborste (7x25 mm) med JST ZH-kontakter redan monterade. Jag sydde en gråfärgad tub av stretchig textiltejp. Textilrörets diameter är cirka 8mm och längden cirka 50mm. Sedan för jag in vibrationsmotorn i textilröret och syr fast den på remmen. Tyvärr finns det inget korrekt foto av detta skede av arbetet. Men tanken är att vibrationsmotorn inte har några öglor för att fästa den i remmen, utan det kan göras med hjälp av textilröret. Även på det här bältet bestämde jag positionerna på midjan exakt, men det här har ett så långt spänne att jag var tvungen att tugga lite med remmen. När jag sydde på de här rören gjorde jag först en knut i ena änden av sytråden, men eftersom det är ganska tidskrävande bytte jag till att bara göra några stygn och sedan lita på att tråden skulle hålla ändå och bara göra några knutar i slutet av stygnen, så det kändes tillräckligt. Jag sydde inte ihop slangändarna eftersom motorerna sitter ganska hårt i slangen. Jag sydde fast de här grå slangarna i ändarna på den gula remmen. Sedan satte jag in vibrationsmotorerna i de grå rören, anslöt motorerna med kontakter till bandkabeln och testade. Till skillnad från remmen för knappmotorer hade denna inga problem alls med trasiga anslutningar. Testerna visade att alla motorer fungerade felfritt. Det jag lärde mig av detta är att JST-ZH-kontakten i praktiken passar mycket bättre att löda än JST-SH på grund av dess större storlek. Kommer aldrig att använda JST-SH igen.
Jag köpte 3mm tjock spånskiva från en lokal träbutik. Tjockleken på kortet måste vara 3mm eftersom det är vibrationsmotorns tjocklek. Lämplig höjd är 45mm eftersom bredden på det flexibla textilbandet är 50mm och jag tycker att vibrationsmotorhuset bör vara lite smalare. Jag borrar 4 små hål med en diameter på 3mm, som jag sedan använder för att sy fast den här hållaren på den elastiska textiltejpen. För motorn borrar jag ett 10mm hål så att det passar tätt i hålet. Du kan borra flera plåtar samtidigt och sedan finns det 2 extra plåtar under plåtstapeln. När du gör det på detta sätt kommer inga spån från bottenplattan och alla fasningar i borrhålen är rena och jämna. För JST-SH-kontakter räcker det med 8mm borrning. Vibrationsmotorn har en liten utloppstunga och för den här tången måste jag fila en liten fördjupning med måtten ca 2mm x 2mm x 1mm, annars passar inte motorn tätt.
Jag har inget specialiserat crimpverktyg för JST-SH-kontakter. Därför tog jag råd från en youtuber som bara lödde utan krimptång. Den här bilden visar hur jag satte fast kontakten med klammer. Med denna lilla kontakt var det mycket viktigt att endast använda en mycket liten mängd tenn på lödkolven. Om det är för mycket tenn fylls även metallpluggen med tenn, och då fungerar det inte. Jag trycker ihop metalldelen med en liten tång så att den passar exakt i den lilla skåran på kontakten. Efter arbetet ska det testas. Jag lägger också en liten droppe epoxilim där elkabeln kommer ut ur kontakten.
Den här bilden visar alla 20 motorfästen i en bild.
Det finns inga hål i vibrationsmotorn för att sy fast den någonstans, och motorn är bättre lämpad för att fästas på ett mobilskal. Därför tänkte jag att det vore bättre att göra en sådan fixtur. Det övre spåret mellan överkanten och det övre hålet blev nödvändigt, eftersom krymphylsans ände annars inte hade gått in i hållaren.
Denna bild visar hur den transparenta krymphylsan är gjuten runt vibrationsmotorns hölje för att skydda den ordentligt på alla sidor. Jag värmde upp krympslangen med ett ljus och var lite orolig för att motorn inte skulle klara värmen, men den tålde ljusets värme bra, åtminstone en kort stund. Jag sätter lite vanlig tejp runt motorn bara för att undvika att kabeln från motorn böjs för skarpt. På den här bilden kan du se hur den svarta krympslangen på ingångskabeln viks till en "dragspelsform" så att den kan sträckas lite.
Innan jag sydde fast vibrationsmotorerna på den elastiska tygremmen markerade jag punkten på den elastiska textilremmen (B=80mm) med nål och tejp där vibrationsmotorn hör hemma. Självklart skulle en skräddarkrita vara bättre här, men jag hade ingen. För under syfasen måste jag hela tiden flytta remmen när jag syr med nål och tråd. Själva bandkabeln är 160mm längre än själva remmen, så att även en stouter orienteer kan sätta på den.
På det här fotot är alla vibrationsmotorer sydda i en elastisk textiltejp. Flatkabeln är längre och när den dras tillåter den en maximal midjeomkrets på 110cm. Men krympslangarna sträcks inte riktigt så mycket som jag hade förväntat mig, de är ganska styva. De roterar uppåt när de sträcks ut som om de är ledade runt motorhuset, vilket inte är helt lämpligt.
Jag sydde ihop hela den nedre sömmen på den elastiska remmen. Sedan sydde jag fast den övre delen på några få ställen med tråd. Jag hittade också runda kardborreband som jag limmade fast på det elastiska textilbältet.Då kan jag lättare öppna den elastiska remmen om kabeln skadas. Jag sydde ihop ändarna på remmen och lämnade små hål upptill och nedtill så att ändarna bildar en ögla och bandkabeln kommer ut ur det nedre hålet. Jag råkade ha en 4mm lång aluminiumkabel med svart plastbeläggning hemma, kanske 30cm lång. Jag böjde aluminiumtråden till ett gem och flätade ihop den till ett spänne i remmens öglor.