. : New eShop! - Mobilní verze - Pandatron.cz - Pandatron.sk - Diskuzní fórum - Zakázkový vývoj : .
 
Kamera s JPG kompresí
1.ledna 2008 | Jaroslav Nečesaný | Kamera s JPG kompresí | Komentářů: 3  
Kamera s JPG kompresi

Kamera s JPG kompresí

Víkendová nuda počas vianočných sviatkov sposobila to, že som sa odhodlal k rozlušteniu záhady externej kamery k telefonu Siemens S55 ktorá sa určite nájde v nejednom šuplíku bez vidiny nejakho dalšieho využitia. Dúfam že týmto článkom prispejem k tomu, aby táto kamera znova ožila v nejakej zaujimavej aplikácii niekoho z vás.

Pár informácii o kamere:
Pripojenie   datový konektor siemens s55
Komunikačné rozhranie   UART
Komunikácia   ovládanie - 19200baud
    výstup dat - 115200baud
Formát výstup. dát   JPG
Možnosť použiť blesk   ANO
Rozlíšenie   640:480 / 160:120
Možnosti   2 stupne kvality (podložím obrázkami)

Obr. 1: Kamera k S55

Z referencii je vidno, že kamera má celkom pekné možnosti. Je možné ovládať ju buďto cez terminál v PC (odporúčam použiť terminál BRAY++ (http://www.hw-group.com/download/utils/bray_termimal.zip) kvoli možnosti prepinania baudratu počas komunikácie) alebo pomocou mikrokontrolera a ukladanie výstupných súborov trebarz na USB disk pomocou obvodov VINCULUM (http://pandatron.info/elektronika2/clanek.php?&rubrika=mi&clanek=27&vinculum_dil_1).

Pripojenie kamery:
Pripojenie je velmi jednoduché. Spočíva v priložení napájacieho napetia 3,7V (zvládla aj 5V ale moc neodporúčam) na piny 1 a 2. Ďalej je nutné pripojiť dátové vodiče TX a RX na piny 3 a 4. Pin 6 musí byť stále pripojený na log 1, inak sa kamera nerozbehne. Pin 5 ovláda výstup dat. Počs komunikácie s kamerou musí byť nastavený na log 1 a počas výstupu dát sa nan musí priviesť logická 0. Týmto pinom si može mikrokontroler riadit tok dat aby bol schopný prijate data spracovavať(0-data tečú, 1-data stoja a čakajú na 0) jednoducho povedané handshaking :-)


Obr. 2: Popis pinov na konektore kamery

Ako som už spomínal, kameru je možné pripojiť k počítaču pomocou RS232 a prevodníka úrovní. Odporúčam použiť klasický prevodník s obvodom MAX232.

Náčrt zapojenia:


Obr. 3: Náčrt schémy zapojenia


Obr. 4: Prvé pokusy s kamerou

Toto zapojenie je vhodné na odskušanie kamery. Po zapojení zapneme terminál, nastavíme baudrate 19200bd, 8 bitov, bez parity, 1 stop bit a none handshaking. Priložíme napájanie kamery. Mala by sa rozsvietit dioda na kamere a terminal by mal prijať zprávu “AT&F”.
Na nu musí uživatel (v aplikácii mikrokontroler) odpovedat frázou “OK” za ktorou bude nasledovat ukončovací znak <CR> (odpovedá klávese ENTER). Potom budú od kamery nasledovať správy:

ATE0
AT+CMEE=1
AT^SACD=1
AT^SACD=2,"17"
AT^SACD=2,"17,00,2,IQP5 01.05"
AT^SACD=2,"17,04,2,3"

Po každej z nich je nutné odoslať „OK“<CR> (dalej budem uvádzať len OK, ale vždy treba frázu ukončiť pomocou <CR>), čiže celkovo 7 x OK…po tejto procedure je kamera zapnuta a pripravená na fotenie. Toto sa inicializuje odoslaním „^SACD: 17,04,2,1“<CR> kamere. Tá zareaguje a odošle„ AT^SACD=2,"17,04,OK" “na to je nutné odpovedať OK. Kamera opeť oznámi „AT^SACD=2,"17,04,2,1"“ mi odpovieme OK. Fotka už je urobená a kamera nám oznámi jej veľkosť formou „ AT^SACD=2,"17,04,2,2,5377,32183" “

Číslo zakrúžkované zelenou odpovedá počtu bajtov výstupného súboru JPG vo vyššom stupni kompresie (čiže nižšia kvalita) a číslo zakrúžkované červenou odpovedá počtu bajtov kvalitnejšieho súboru. Opeť odpovieme OK. Ďalšiu věc ktorú je nutné urobiť je odoslať frázu v podobe „ ^SACD: 17,01,2,X“<CR>. Za X dosadíme číslo 1 alebo 2.
Ak dosadíme 1, obdržíme menej kvalitný záber, ak 2 kamera nám pošle kvalitnejšiu fotku. Po odoslaní nám kamera odpovie „AT^SACD=2,"17,01,OK"“.
Mi pošleme OK a ako odpoveď obdržíme skupinku nejasných znakov. Je to preto, že kamera sa prepla na 115200baud a v skutočnosti nám poslala
“AT^SADT=1,115200“. To je pre nás znamenie aby sme terminál tiež prepli na 115200 baud a mohli pokračovať v komunikácii. Nesmieme zabudnúť zapnúť zachztávanie textu do súboru aby sme z celeho fotenia vobec niečo mali?. V termináli klikneme na „StartLog“ a zadáme názov výstupného súboru s príponou .log . Potom (ak už máme prepnuty baudrate) kamere pošleme „CONNECT“<CR>. To inicializuje samotný prenos dát z kamery. Ak ste inšpirovaný mojim vyššie uvedeným náčrtom zapojenia a kamera nič neposiela, nelakajte sa. Je to preto, že na pine CTS pretrváva logická 1. Stlačením tlačítka teda privedieme logickú 0 a data začnú tiecť. Odporúčam prenos dát dávkovať po krátkych balíčkoch aby buffer terminálu stíhal data prijímať. Po pretečení dát klikneme v termináli na StopLog a kamere pošleme OK. Opeť obdržíme vela nezmyselných dát, kamera sa totiž opeť prepla, tentoraz na 19200baud. Prepneme sa teda aj my. Komunikáciu ukončíme frázou
“^SACD: 17,02,2“<CR> a potom 2 krát OK. Možeme inicializovať ďalšie fotenie alebo kameru odpojiť a venovať sa získanej fotke. Z nej je treba odstrániť prebytočné údaje. Nieje však možné použiť klasický textový editor(notepad, wordpad), pretože ten si dotvára textový formát a „všade pchá CR+LF“ a data v súbore dopĺňa. K 0Ah pridá 0Dh, k 0Dh pridá 0Ah a 0Bh nahradí 0Ah+0Dh. Tým sa výstupný súbor znehodnotí(chvílku trvalo kým som na to prišiel). Preto treba doeditovať súbor v nejakom „normálnom“ programe, trebarz HEXA EDITOR (
http://www.chmaas.handshake.de/delphi/freeware/xvi32/xvi32.htm#download). V ňom stačí len zmazať prebytočné údaje zo začiatku a konca súboru. Poradím že JPG súbor začína datami FF D8 FF a končí D9. Po úprave do tohoto tvaru mu stačí zmeniť príponu z .log na .jpg a možeme sa kochať krásnou fotkou?. Na obrázku nižšie je vidieť fotky v nižšom a vyššom stupni kvality.


Obr. 5: Nižšia kvalita


Obr. 6: Vyššia kvalita

Kamera vie fotiť aj s bleskom. Nemám to sice overené nakoľko blesk na mojej kamere nieje funkčný, ale postup by mal byť nasledovný.
Před zahájením fotenia je nutné blesk nabiť. Postará sa o to príkaz
„^SACD: 17,03,2“<CR> ktorý kamere odošleme pred zahájením fotenia. Kamera nám oznámi AT^SACD=2,"17,03,OK" a mi odpovieme OK. Po nabití blesku (treba pár sekund počkať) kamera odošle jednu alebo 2 frázy (treba overiť) na ktoré taktiež odpovieme OK. Teraz by mal byť blesk nabitý a možeme fotiť.
Postup je totožný jako pri fotení bez blesku, až na to, že pre inicializáciu použijeme príkaz „^SACD: 17,04,2,2“<CR> namiesto
„^SACD: 17,04,2,1“<CR>. Ďalší postup je totožný s vyššie uvedeným.

Priznám sa že nepoznám presný význam uplne všetkých používaných fráz keďže internet v tomto prípade ako zdroj informácii zlyhal ;) a musel som sa spolahnúť len na sledovanie komunikácie medzi telefonom a kamerou. Myslím si však že táto skutočnosť nebráni používaniu kamery nakoľko som si to sam odskúšal a naozaj to funguje;). Ak čas dovolí skúsim zrealizovať konštrukciu jednoduchého fotoaparátu aby aj skeptici videli že to ide.

Na záver by som si ešte dovolil poprosiť každého kto sa kamere bude venovať a odhalí nejaku z jej ďalších, tu neuvedených, možností nech sa mi ozve, popíše na čo prišiel a ja rád článok doplním.

Autor: Jaroslav Nečesaný
email: gascan666@azet.sk
ICQ: 193946161

Odkazy & Download:
BRAY++ - terminálový program
HEXA EDITOR - hexa editor







GooglePlus1 FaceBook Twitter del.icio.us DiGG Google StumbleUpon Google Buzz Email RSS PDF Tisk

Komentáře (24):

Zobrazit starší 30 dnů (24)...



Název příspěvku: Vaše jméno: host
                 
  Zakázat formátování [Zakáže kódování a nahrazování smajlíky.]
Připojit soubory
reklama:
Anténa GPS 2J431 - SMA
Aktivní GPS anténa 2J431 s SMA konektorem
Skladem od 223 Kč

Informace uvedené v článcích jsou platné v době jejich vydání a samotné články jsou určeny pouze jako zdroj informací. Autor článku ani správce webu nenesou žádnou zodpovědnost za případné újmy na majetku a zdraví. Názvy společností a výrobků, loga a další multimediální materiál mohou být ochrannými známkami příslušných společností.
RSS kanály: | |
+420 723 846 377
info@pandatron.cz
Všechna práva vyhrazena | mobilní verze | © Copyright 2000 - 2016 ISSN 1803-6007