Stick2Cane - aldrig förlora din vandrande sockerrör (1 / 3 steg)
Steg 1: En historia av misslyckas
Känn dig fri att hoppa över detta steg. Jag bara dokumentera hur jag fick till denna specifika lösning.
TL; DR: även om detta projekt lyckats, jag tvivlar på om jag någonsin använda 433 / 315MHz kit för något allvarligt (åtminstone inte de enkla som). RF-brus Arduino själv genererar (särskilt om ansluten till och [eller] sända följetong) gör dessa saker ganska värdelös IMHO. Specifikt - Arduino Micro är mycket värre (och när vi ändå håller på: mikro tar också mäktiga lång tid att återställa. Där. Fick bort mitt bröst).
I början fungerade det
Det fanns en fungerande prototyp (se foto). Det hade en annorlunda algoritm, men det fungerade.
Sedan jag kom tillbaka hem, byggde det igen (se Tupperware foto), det fungerade, men med massor av falsk detektion (upptäckt signal där det inte fanns någon), men jag har lyckats att finjustera saker och det fungerade.
Sedan kom Arduino mikro
Då jag försökt en mindre mottagare baserat på en Arduino mikro (se tvålkopp foto), och allt gick fel: saken kan endast identifiera signal om det var några Cm från sändaren (och även då var det lite osäkert).
Så jag började göra en del "ekologiska debugging"(TM): Jag har ansluten piezo summern direkt till mottagaren data stift, och började lyssna - saken var att göra en hel del RF-brus: även när sändaren var utanför.
Även ute i fält (från något elektriska).
Det blev bättre när jag berättade det att sluta använda följetongen, men fortfarande - du kan lyssna på bifogade ljudet (innan / efter jag slå på sändaren, och när det blir 20-30cm från sändaren).
För referens, har jag byggt en krets med endast ta emot och en piezo Summer på data stift. Du kan lyssna på bifogade ljudet (innan / efter jag slå på sändaren, och medan jag [bullrande] promenad bort ~ 2m).
Så jag bestämde mig att gå mainstream
Jag började tänka: kanske tanken att inte ha en Arduino på sändaren sida är dum. Kanske är bibliotek som VirtualWire eller RadioHead där för att få allt på en så låg signal/brus-nivå. Så jag försökte ett enkelt "Hej" exempel mellan en Arduino som sändaren och Arduino mikro som mottagare, fick ingen mottagning. Bytte mellan stora Arduino och mikro, Nada.
Jag bränna min mottagare?
Efter några experiment även "Tupperware prototypen" blev (en som brukade arbeta) en mycket sämre. Så jag har beslutat jag har skadat mottagaren. Kanske under alla dessa experiment, var en sändare skiss laddade till fel maskin och skickade signal till mottagarens uppgifter. Inte säker på att det är viktigt (om du vet svaret, kommentera gärna), men när du inte vet om du har bränt den enda mottagaren har du eller inte - det verkligen suger.
Så jag har beställt några fler RF kit [och väntade...]
När kom den nya kit - nada. Jag kunde inte få det VirtualWire exemplet att arbeta. Så jag har sökt i forumet och hittade någon med liknande problem (min kursivering):
Jag köpte detta kit och med VirtualWire hade det fungerar perfekt... Då plötsligt det slutade fungera. ... Jag brukade få massor av buller kommer igenom... nu finns det ingenting.
och det finns ett svar säger:
USB strömkälla är mycket dåliga. Prova att slå av batteri. Litet avstånd mellan rx och tx är inte bra. Litet avstånd till PC är inte bra (de är som en hf jammer).
Så försökte jag att felsöka grejer utan att använda följetong eller yttre makt
Som "sladdlös felsökningsverktyg" Jag försökte använda en I2C LCD, men problemet var att få det att fungera på batteri (en seriell kabel till en PC eller ens vägguttaget sylt rf dåligt), men jag hade bara en gammal Arduino (jag ska beställa några moderna sådana snart) med en manuell USB/batteri urval bygel och var det inte trivialt att få I2C LCD monitor arbetet i "batteri" läget (om du har liknande problem här är en howto jag skrev).
Framgång
När jag fick LCD problemet ur vägen, skrev jag en version av stick2cane som presenterade histogrammet (se algoritm senare. Det är mycket enklare än den tidigare). Tricket var att se histogram visuellt och studera dem. Ingen mängd av seriell felsökning kan ge sådana insikter (om inte du importera CSV- eller json via serial - en idé om ett framtida projekt ;)).