Talaan ng mga Nilalaman:

Pag-hack ng isang Keychain Digital Camera para sa Arduino Control: 6 Mga Hakbang
Pag-hack ng isang Keychain Digital Camera para sa Arduino Control: 6 Mga Hakbang

Video: Pag-hack ng isang Keychain Digital Camera para sa Arduino Control: 6 Mga Hakbang

Video: Pag-hack ng isang Keychain Digital Camera para sa Arduino Control: 6 Mga Hakbang
Video: CS50 2015 - Week 10 2024, Nobyembre
Anonim
Pag-hack ng isang Keychain Digital Camera para sa Arduino Control
Pag-hack ng isang Keychain Digital Camera para sa Arduino Control
Pag-hack ng isang Keychain Digital Camera para sa Arduino Control
Pag-hack ng isang Keychain Digital Camera para sa Arduino Control
Pag-hack ng isang Keychain Digital Camera para sa Arduino Control
Pag-hack ng isang Keychain Digital Camera para sa Arduino Control

Ang mga pagpipilian sa potograpiya para sa Arduino ay kaunti at malayo sa pagitan. Ang mga Webcam ay hindi praktikal para sa mga aplikasyon tulad ng saranggol saranggola o pampublikong litratista, maliban kung nais mong bumili ng isang 200 talampakang USB cable. At ang mga kasalukuyang diskarte para sa nag-iisa na potograpiyang Arduino ay karaniwang subukan na makuha ang raw data ng imahe mula sa mga camera ng CMOS na na-pop out ng mga cell phone … at maniwala ka sa akin, maliban kung kailangan mong digital na i-upload o baguhin ang mga larawang iyon nang real time, ayaw mong pumunta sa daang iyon. Bakit walang normal, murang, pagpapatakbo ng mill digital camera na makokontrol ng Arduino?

Lumalabas mayroong hindi bababa sa isa - at ibinebenta nila ito sa iyong lokal na tindahan ng gamot (CVS / Rite-Aid / Walgreens / atbp.) Ito ang mga chintzy maliit na keychain camera na ibinebenta nila sa halagang $ 10-15 isang pop. Ang potograpiya sa kanila ay hindi kalahating masama na may resolusyon na halos 300 hanggang 200, maaari silang mag-imbak sa pagitan ng 20 at 240 na mga larawan (depende sa nakikita mo), at lumalabas na ang mga maliit na tao ay ginawa lamang na ma-hack. Maaari mo ring gawin ang parehong pag-hack na ito sa isang murang 1 o 2 megapixel camera na kumukuha ng mga SD card kung kinakailangan (tingnan sa ibaba), ngunit susundan namin ang proseso na ginamit sa mas karaniwang nahanap na 300 ng 200 camera. Dadalhin ka ng Instructable na ito sa proseso ng pag-disassemble, pagbabago at muling pagsasama-sama ng isang off-the-shelf keychain camera. Dadalhin ka nito sa pamamagitan ng mga kable ng isang simpleng hanay ng mga transistor switch circuit na maaaring magamit ng Arduino upang i-off at i-on ang camera at i-snap ang mga larawan kahit kailan mo nais ang iyong programa. Magkakaroon din ito ng sample code at maraming magagandang larawan. Bago kami magsimula, ilang tala: * Ang camera na na-hack ay maaaring baguhin mula sa asul hanggang pilak at ibalik sa mga larawan. Huwag magalala, ang panloob ng parehong mga camera ay pareho (nakikipagtulungan ako sa pareho sa sandaling ito para sa pagsasaliksik.). Ang parehong camera na ito ay ibinebenta sa buong bansa sa iba't ibang mga kulay, sa ilalim ng iba't ibang mga pangalan ng tatak at kahit na may bahagyang magkakaibang mga pisikal na casing. * Kung pamilyar ang diskarteng ito, maaaring dahil ang ginagawa namin sa camera mismo ay halos kapareho ng diskarteng ginamit ng CatCam, isang proyekto na naging viral dalawang taon na ang nakalilipas sa pamamagitan ng paglalagay ng maliliit, time-lapse camera sa mga kwelyo ng mga panlabas na pusa at nanonood kung saan sila pupunta. Ang pamamaraan ng CatCam ay gumagamit ng isang camera na hindi madaling magagamit sa Estados Unidos, at isinulat bago pa man tuluyang mag-ar Arinoino - sana ang muling pagrepaso sa pamamaraan na ito ay makakatulong sa komunidad ng DIY na matuklasan muli at maibalik ito sa kanilang mga proyekto. Natuklasan ko ang CatCam habang ang proyektong ito ay nakabalot, at ang parehong mga diskarte ay nabuo nang nakapag-iisa - kaya't ang aking pamamaraan ay malamang na nag-iiba mula sa diskarteng CatCam; huwag mag-atubiling pumili at pumili ng mga diskarte mula sa dalawa. * Kung nasa labas ka ng US o handang direktang mag-order mula sa CatCam, ang na-hack na camera na ibinebenta nila ay may mas mataas na kalidad - 1 o 2 Megapixel - at maaaring i-save ang mga larawan nang direkta sa isang SD card. Napakaganda para sa maraming mga proyekto (ngunit hindi kinakailangan para sa lahat.) Ngunit kung nais mo ng isang camera ngayon, magtungo sa anumang Rite-Aid, CVS, atbp at kunin ang camera na ipinakita dito - isang Digital Concepts camera, karaniwang ipinamamahagi ng Sakar international. * Ang aking pagsasaliksik ay talagang kontrolado ko ang camera na ito sa pamamagitan ng isang stand-alone na ATMega chip. Kung interesado ka sa pag-alam ng diskarteng iyon sa ilang kadahilanan, ipaalam sa akin - kung may sapat na interes kukunin ko ang iba pang Makatuturo. (Naisip ko na magkakaroon ng higit pang pangangailangan para sa paggawa nito sa pamamagitan ng Arduino.) UPDATE: Sa pamamagitan ng kahilingan naidagdag ko ang circuit diagram upang i-wire ang nag-iisang ATMega chip sa maliit na tilad bilang huling larawan sa ibaba. Hindi ito magiging kapaki-pakinabang para sa marami sa inyo, at humihingi ako ng paumanhin para sa mga iyon - Inaasahan kong bigyan ang hakbang na ito ng nararapat na pagsusumikap - ngunit para sa mga determinado, mas mabuti ito kaysa wala (sana). * Ang pamamaraan na ito ay nai-dokumentado bilang bahagi ng aking pagsasaliksik sa programa ng Master of Tangible Interaction Design ng Carnegie Mellon University, sa Pittsburgh, PA. Kung isinasaalang-alang mong bumalik sa paaralan, masiyahan sa paggawa ng mga bagay at interesado sa intersection ng teknolohiya at disenyo o sining, ihulog sa amin ang isang linya!:) Inaasahan kong natulungan mo ito - maligayang pagdating sa mga komento sa parehong teknolohiya at aplikasyon! Huwag mag-atubiling isulat ako nang direkta o magkomento kung mayroon kang anumang mga katanungan o nais ng anumang mga paglilinaw.

Hakbang 1: Magtipon ng Mga Supply at Tool

Ipunin ang Mga Pantustos at Kasangkapan
Ipunin ang Mga Pantustos at Kasangkapan
Ipunin ang Mga Pantustos at Kasangkapan
Ipunin ang Mga Pantustos at Kasangkapan
Ipunin ang Mga Pantustos at Kasangkapan
Ipunin ang Mga Pantustos at Kasangkapan
Ipunin ang Mga Pantustos at Kasangkapan
Ipunin ang Mga Pantustos at Kasangkapan

Kakailanganin mo ng ilang mga tool at supply bago ka ma-ground sa Instructable na ito. Masagasaan natin sila ngayon di ba?

Mga tool: * Isang maliit na driver ng tornilyo ng Philips-head. (Tungkol sa laki ng isa na maaari mong gamitin upang ayusin ang mga baso, o sa isang pagkumpuni ng computer.) * Nakatutulong, ngunit hindi kritikal kung mayroon kang mahabang mga kuko - isang maliit na driver ng flat-head screw na gagamitin bilang isang plier. * Wire cutter / wire strippers * Nakatutulong, ngunit hindi kritikal - multimeter. * Panghinang at bakalang panghinang. (Ngayon, ngayon, huwag magalala. Ang kailangan mo lang gawin ay painitin ang umiiral na panghinang at idikit ang ilang mga hinubad na wire na nagtatapos sa mga umiiral na koneksyon. Pangunahing kaalaman lamang sa paghihinang na kinakailangan. Maaari ka ring makalayo na may wire na pandikit sa ilang mga modelo, ngunit mas ligtas ang paghihinang.) Mga Pantustos: * Isang off-the-shelf na Keychain Digital Camera. Kadalasang ibinebenta sa ilalim ng mga tatak na "Digital Concepts" o "Shift." Nabenta sa CVS, Rite-Aid, Walgreens, ilang Walmart, at sa buong Internet. * Nakatutulong ngunit hindi kritikal - ilang ekstrang mga baterya ng AAA. Ang camera ay dapat na may isang baterya ng AAA. Ngunit kung balak mong gamitin ang iyong proyekto nang higit sa ilang beses o sa mahabang panahon, kakailanganin mo ng mga ekstrang - kinakain sila ng camera. * Ilang paa ng insulated wire. (Ang alinman sa normal na sukat na plastik na insulated, ipinakita, o manipis na sukat na insulated na pintura ay mabuti - pareho ang kanilang mga kalamangan at kahinaan; May posibilidad akong gumamit ng pinturang insulated sapagkat gumagawa ako ng mga pasadyang header ng lalaki para sa aking mga koneksyon.) * Breadboard o iba pang protoboard. * Dalawang matagal na piraso ng puting kawad (para sa pagkonekta ng mga transistor sa Arduino) * Dalawang pangmatagalang mga piraso ng itim na kawad (para sa pagkonekta sa lupa mula sa Arduino hanggang sa breadboard) * Dalawang matagal na piraso ng pulang kawad (para sa pagkonekta ng mataas na lakas mula sa Arduino sa breadboard) * Nakatutulong, ngunit hindi kritikal - isang LED (para sa pag-debug ng output). * Dalawang transistor (Gumagamit ako ng NPN 2N3904 transistors.) * Isang Arduino na may USB cable.

Hakbang 2: Buksan ang Crack at i-disassemble ang Keychain Camera

I-crack at I-disassemble ang Keychain Camera
I-crack at I-disassemble ang Keychain Camera
I-crack at I-disassemble ang Keychain Camera
I-crack at I-disassemble ang Keychain Camera
I-crack at I-disassemble ang Keychain Camera
I-crack at I-disassemble ang Keychain Camera
I-crack at I-disassemble ang Keychain Camera
I-crack at I-disassemble ang Keychain Camera

Una sa mga unang bagay - sinisimulan mo ang pag-hack na ito sa pamamagitan ng pagkuha ng iyong distornilyador at kuko / kuko sa camera na ito at isama ito. Sa mga tala ng imahe sa ibaba, makakakita ka ng isang hakbang-hakbang na paghiwalay ng camera - Ituturo ko kung saan matatagpuan ang bawat tornilyo sa mga tala ng imahe. Kapag ang iyong camera ay disassembled at mukhang katulad ng huling larawan (kahit na may higit pang mga piraso), magpatuloy sa Hakbang 3.

Hakbang 3: I-hack ang Bahagi ng Camera I (Maghinang Sa Mga switch)

Hack ang Bahagi ng Camera I (Maghinang Sa Mga switch)
Hack ang Bahagi ng Camera I (Maghinang Sa Mga switch)
Hack ang Bahagi ng Camera I (Maghinang Sa Mga switch)
Hack ang Bahagi ng Camera I (Maghinang Sa Mga switch)
Hack ang Bahagi ng Camera I (Maghinang Sa Mga switch)
Hack ang Bahagi ng Camera I (Maghinang Sa Mga switch)
Hack ang Bahagi ng Camera I (Maghinang Sa Mga switch)
Hack ang Bahagi ng Camera I (Maghinang Sa Mga switch)

Ito ang pinakamahirap na bahagi ng pag-hack - ngunit hindi ito * ganon kahirap, Sumusumpa ako. Kaya huminga ka ng malalim at maghinang tayo!

Para sa hack na ito, aalis kami sa circuit board ng camera na buo. Ang gagawin lang namin ay ang paghihinang ng aming sariling mga koneksyon sa circuit board sa magkabilang panig ng mga switch ng push button na ginamit upang mapatakbo ang camera. Pinapayagan kaming gamitin ang aming Arduino upang digital na "itulak pababa" sa bawat pindutan tuwing nais namin (sa pamamagitan ng panlabas na mga transistor na kumikilos bilang mga switch). Kapag hawakan ang circuit board, subukang hawakan ito sa mga gilid nito hangga't maaari. Ang circuit board ay medyo matibay, ngunit sa pagtatapos ng araw ay nakalantad pa rin ang electronics, at sulit na hindi ito hawakan nang direkta nang higit pa kaysa sa kinakailangan. Gupitin at hubarin ang mga dulo ng apat na piraso ng kawad, bawat isa ay hindi bababa sa isang talampakan ang haba. (Mas mahusay na mas mahaba kaysa sa mas maikli sa kasong ito; hindi ito isang bagay na nais mong gawing madalas.) Pagkatapos, tingnan ang dalawang pares ng mga solder joint na itinuro sa larawan sa ibaba, isang pares sa paligid ng bawat dalawang switch ng pushbutton. Gamit ang pagpapatuloy / pagpapaandar ng maikling circuit sa iyong multimeter, maaari mong kumpirmahing natagpuan mo ang tamang mga pares ng mga kasukasuan upang maghinang sa pamamagitan ng paghawak ng mga dulo sa parehong mga switch ng magkasanib at manu-manong pagpindot sa pindutan upang makita kung lumilikha ito ng isang maikling pagitan ng mga kasukasuan. Kung gagawin ito (ang paglaban sa pagitan ng dalawang patak mula sa infinity hanggang sa malapit sa zero) nahanap mo ang tamang dalawa. Kung wala kang isang multimeter, maaari ka lamang huminga nang malalim at magtiwala sa larawan. Sa sandaling sigurado ka na natagpuan mo ang tamang mga kasukasuan, gamit ang iyong panghinang, tunawin ang panghinang sa bawat apat na mga kasukasuan at ilakip ang isang dulo ng isa sa apat na mga piraso ng kawad sa bawat isa sa apat na magkasanib. Kung mayroon kang isang kamay na tumutulong sa iyong pag-setup ng paghihinang, sa lahat ng paraan gamitin ito upang mapanatili ang iyong circuit na matatag (paglalagay ng isang maliit, nakatiklop na piraso ng pahayagan sa pagitan ng mga clamp upang maprotektahan ang circuit board.)

Hakbang 4: I-hack ang Bahagi ng Camera II (Maghinang ng isang Koneksyon sa Ground)

Hack ang Bahagi ng Camera II (Maghinang ng isang Koneksyon sa Ground)
Hack ang Bahagi ng Camera II (Maghinang ng isang Koneksyon sa Ground)

Natapos mo lang ang pinakamahirap na bahagi ng hack na ito - binabati kita! Sinabi nito, mayroon kang isa pang (mas madaling) solder joint upang magawa. Ang isang ito kakailanganin mo ng ilang sariwang panghinang.

TANDAAN: Mangyaring huwag pansinin na sa larawang ito, ang circuit board ay nasa loob ng plastic front case. Huwag gawin kung ano ang mukhang ginagawa ko rito - mangyaring solder ang koneksyon na ito BAGO ibalik ang circuit sa kaso nito, upang maiwasan ang aksidenteng matunaw ang plastic case. (Ako ay palpak lamang sa pagkuha ng litrato ng hakbang na ito at susubukan itong ayusin sa paglaon.) Kumuha ng isang ikalimang piraso ng kawad, at gupitin ito sa kahit isang paa lamang ang haba na may mga gilid na hinubaran. Sa isip, ang piraso ng kawad na ito ay dapat na may kulay na itim, o kahit papaano naiiba mula sa unang apat. Ngayon, maghinang ng isang dulo nito sa panlabas na bahagi ng ground end ng may hawak ng baterya, tulad ng ipinakita. Kakailanganin mong idagdag ang iyong sariling panghinang sa koneksyon na ito at direktang panghinang sa metal dito. Nalaman kong ito ay mas madali kaysa sa pagtatangka upang idagdag ang iyong kawad sa mayroon nang solder na humahawak sa may hawak ng baterya sa circuit board. (Ituturo ko ang tama at maling paraan sa mga larawan.) Bakit natin ito ginagawa? Kaya, para sa isang kontroladong Arduino na transistor upang makontrol ang mga switch sa keychain camera, ang Arduino circuit at ang keychain camera circuit ay kailangang magbahagi ng isang karaniwang ground ground. Hinahayaan ka lamang ng kawad na ito na pisikal na ikonekta ang lupa ng camera sa lupa ng Arduino mamaya, sa pamamagitan ng isang karaniwang hilera sa breadboard.

Hakbang 5: I-hook ang Camera sa Iyong Arduino

I-hook ang Camera sa Iyong Arduino
I-hook ang Camera sa Iyong Arduino
I-hook ang Camera sa Iyong Arduino
I-hook ang Camera sa Iyong Arduino
I-hook ang Camera sa Iyong Arduino
I-hook ang Camera sa Iyong Arduino

Ngayon ay oras na upang simulan ang pag-hook ng iyong camera hanggang sa iyong Arduino.

Una, mag-load ng ilang code na makokontrol ang camera sa Arduino. Sa ibaba, nag-upload / nakakabit kami ng ilang sample na Arduino code na ginamit namin dito upang kumuha ng potograpiya ng time-lapse. Bubuksan ng code ang camera, kumuha ng litrato, at pagkatapos ay antalahin ng isang buong minuto (na sa panahong oras awtomatikong papatay ang camera) bago muling i-powering at kumuha ng isa pang larawan - ulitin ito para sa dalawampung litrato (ang kapasidad ng aking una na-hack na camera.) Ngayon, i-hook natin ang iyong Arduino sa iyong camera. Una, kaunting paliwanag: upang makontrol ang camera nang buo, ang aming code ay tumatagal ng dalawang mga digital output pin at mapa ang isa sa on switch, at isa pa sa shutter switch. Kapag nais ng code na i-on o i-off ang camera o i-switch ang mga mode, panandalian nitong hinahawakan ang camera sa output pin na mataas - at kapag nais ng larawan na kunan ng larawan, hawak nito ang camera shutter output pin na mataas. Ang aksyon na ito ay isinalin sa aktwal na pagpindot ng pindutan sa pamamagitan ng pag-on at pag-off ng isang transistor, na kung saan ay nakakonekta naman sa pamamagitan ng aming mga wire ng camera sa mga switch sa totoong camera. Ang mga bakuran ng kamera at ang Arduino ay naka-link upang bigyan ang Arduino at panlabas na mga circuit ng camera ng isang karaniwang lugar, na pinapayagan ang mga transistors na gumana nang maayos. Kumuha ng dalawang mga wire upang ikonekta ang dalawang mga output pin (camera sa at shutter ng camera) sa iba't ibang mga linya sa breadboard. Pagkatapos, ikonekta ang base pin ng isang transistor sa bawat isa sa dalawang mga pin ng outpit. Sa wakas, ikonekta ang iyong dalawang mga wire para sa bawat kaukulang switch mula sa iyong aktwal na camera sa iba pang dalawa (mga collector at emitter pin) ng transistor. Maaaring kailanganin mong mag-eksperimento kung aling alambre ang pupunta sa kolektor at alin ang pupunta sa emitter sa bawat pares; na kung saan ay depende sa panloob na mga kable ng tukoy na camera na iyong nai-hack. Panghuli, ** at ito ay mahalaga **, kunin ang iyong ground wire mula sa camera at isaksak ito sa ground pin sa Arduino. Ito ay kinakailangan para gumana ang iyong mga transistors at sa gayon ay tumugon ang iyong camera sa iyong arduino!

Hakbang 6: Kumuha ng Mga Larawan

Kumuha ng mga litrato!
Kumuha ng mga litrato!
Kumuha ng mga litrato!
Kumuha ng mga litrato!
Kumuha ng mga litrato!
Kumuha ng mga litrato!

I-plug ang isang AAA na baterya sa iyong camera. Dapat itong beep at i-on. Maghintay ng 30 segundo para patayin ang camera. (Ipinapalagay ng code na isinama ko na ang camera ay naka-off kapag ito ay pinatakbo, at i-on ang iyong camera para sa iyo.) Ngayon, iposisyon ang iyong camera at Arduino para sa iyong nais na anggulo ng pagtingin at i-on ang iyong Arduino. Voila! Marahil ay tinatanong mo - ang camera na ito ay medyo hindi mahirap, na may isang Arduino at breadboard at lahat. Hindi ba natin ito magagawa na medyo mas compact, upang kumuha ng mga larawan mula sa halos saanman nais namin? Ang magandang balita ay, maaari! Idinisenyo ito para magamit bilang isang stand-alone circuit, gamit ang Atmega na hinugot ng isang Arduino, sa isang solong camera / circuit object na maaaring mailagay kahit saan. Isinama ko rin ang isang larawan ng pag-setup na iyon sa ibaba - at kung ang mga tao ay naintriga nito, gagana ako sa isa pang Instructable o kahit papaano idagdag ang mga file ng Eagle sa pahinang ito para magtrabaho ang iba. Ipaalam lang sa akin! Inaasahan kong natulungan mo ito - maligayang pagdating sa mga komento sa parehong teknolohiya at aplikasyon! Huwag mag-atubiling isulat ako nang direkta o magkomento kung mayroon kang anumang mga katanungan o nais ng anumang mga paglilinaw.

Inirerekumendang: