Den omvända Andycache (Android-driv omvänd geocache)
Jag läste om detta tillbaka i 2009 och trodde det var en cool idé, även köpa vissa delar för den omvända geocache, men jag fick aldrig vilket gör det till.
Spola fram till 2013, och när han såg de delar lämnas ensamma i en ensamstående Sparkfun låda, beslöt jag att återuppliva projektet.
Se, att införa den omvända Andycache!
Min GPS-modulen var i ordning och jag saknar en skärm, men jag definitivt saknas inte i antalet Android-telefoner jag hade tack vare vänner som nådigt begåvad gamla Android telefoner. Så varför inte återanvända en av dessa telefoner för detta projekt? Trots allt har en smartphone GPS och en skärm som jag kan använda gratis!
Hejduk, den omvända Andycache (kort för omvänd Android-Geocache) föddes. Men här är vad som skiljer det från alla andra omvänd geocacher: det är en multipurpose låda. Det är för tillfället inställd som en omvänd geocache, men på grund av hur det kontrolleras och drivs, kan också användas för andra ändamål utan att någonsin röra firmware på rutan.
(För att förtydliga, du behöver bara en extra Android telefon om den person du ger detta att inte har en Android-telefon. I mitt fall har mottagaren en iPhone.)
Källkoden för min app kan hittas här.
Som jag kommer att gå in i tävlingen gör att lära ungdomar, är här mina svar på fyra frågor:
Vad gjorde du?
Jag gjorde en omvänd geocache låda som använder en Android-telefon som UI samt GPS. Rutan själv har ingen skärm eller GPS, ett avsteg från traditionella mönster. I telefonen och fält kommunicera via Bluetooth och all programmering logik görs på telefon (med data lagras säkert på en EEPROM chip inuti boxen). Annars, det fungerar för närvarande som en standard omvänd geocache låda.
Skönheten i denna design är att eftersom all programmering logik är gjort på telefonen, rutan är modulära och kan vara repurposed för andra saker (till exempel en lockbox, eller kanske en mycket bra larmsystem som skulle dölja en vanlig väckarklocka i rutan >: D) genom att helt enkelt skriva en annan app som använder den box-funktionalitet på ett annat sätt.
Den omvända Andycache krävs en omfattande lista med material och verktyg, till exempel IOIO mynta, några diverse elektronik bitar och bitar, en servo, en gammal telefon och verktyg som en borr, såg och lödkolv.
Hur gjorde du det?
Jag hade blivit inspirerad av den ursprungliga designen tillbaka i 2009 men aldrig riktigt haft tid för att arbeta på en låda med min egen. Så när jag tänkte på kreativa sätt att be någon min senior prom (eftersom det är mitt sista år i high school), tänkte jag så småningom att göra en av dessa.
Elektronik och programmering var 100% utformad, byggd och kodad av mig (med lite programmering hjälp från Ytai Ben-Tsvi, skaparen av IOIO). Montering, borrning och andra fysiska aktiviteter krävs viss hjälp från mamma och farbror, som har ett garage full av verktyg och förnödenheter.
Där gjorde du det?
Jag arbetade på rutan mestadels hemma, med lite arbete i mitt hotellrum i San Diego. Över 100 timmar var sätta in skriva koden (som visserligen är ganska grov i kvalitet, men som förväntas skriva så mycket kod i så lite tid), och omkring 20 timmar sattes i planering elektroniken, ledningar dem upp och bygga rutan.
Jag tänkte att eftersom jag skulle fråga på balen i en annan första robotics laget, ett projekt som den här skulle gå perfekt.
Vad lärde du dig?
Aldrig förvänta sig att avsluta ett stort företag som detta på mindre än en vecka: P
Lyckligtvis när du kommer med något sådant för en prom förslag, hittade jag det finns alltid människor som är villiga att hjälpa! Stort tack till mina vänner som tillhandahålls material, feedback, telefoner, eller bara tyckte det var häftigt och ville hjälpa på sättet som möjligt.
Jag lärde mig att använda IOIO-plattformen med Android (och Ytai har gjort ett fantastiskt jobb i vilket gör det lätt att använda i Android-utveckling) samt hur du använder SMS meddelande (till en grad), blockera läge kapning i apps, och hur du använder servon.
Några fallgropar som jag noterade:
-Galaxy S-serien av enheter har problem med låsning på GPS (bekräftat använder GPS Test/GPS-Status apps). Flasha ny Rom verkade lösa frågan.
-IOIO är bara kan en maximal 127-byte Läsåtgärd över I2C (jag försökte läsa 256). Ytai påpekade detta besynnerlighet i IOIO firmware. Min kod nu gör bara 64-byte läsningar på mest.
-Android 4.2.2 implementerar vitlistning för Android Debug Bridge, och min bärbara USB-portar är icke-funktionella. Jag slutade med att transplantera manuellt min laptop RSA nyckel på min telefon till vitlista det för trådlösa ADB.
-Servo låsmekanismen är en av de svåraste delarna av den fysiska bygget: mekanismen måste säkerställa rutan förblir låst, det måste vara fysiskt stark och motstå tvingade försöker öppna, och det måste vara tillförlitligt kontrollerbar. Jag gick igenom 4 olika låsning mekanism idéer innan han gick på den här.
-Att göra en styrelse från grunden är alltid en smärta. Jag skulle prova att ha en PCB etsade nästa gång.
Jag stoltaste av efter att ha avslutat detta projekt på så kort tid sig kraven från skolan, scholarship program, robotics, etc. Skriva över 1500 rader kod (huvuddelen av min app) i 3 dagar är ingen lätt bedrift. Och min vända Andycache färdiga utseende är estetiskt tilltalande, alltid en bonus.
Om jag skulle göra det igen, skulle jag spendera mer tid att göra en bättre UI (jag personligen tycker jag suger att göra funktionella UIs) samt skriva renare kod. Dessutom skulle jag försöka få en bättre lödkolv och använda att (det är alltid jobbigt att använda firestarters, men jag verkligen inte hade något annat alternativ för detta projekt).