Talaan ng mga Nilalaman:

Cheapest I2C (I-Squared-C) World Adapter ng World: 5 Hakbang (na may Mga Larawan)
Cheapest I2C (I-Squared-C) World Adapter ng World: 5 Hakbang (na may Mga Larawan)

Video: Cheapest I2C (I-Squared-C) World Adapter ng World: 5 Hakbang (na may Mga Larawan)

Video: Cheapest I2C (I-Squared-C) World Adapter ng World: 5 Hakbang (na may Mga Larawan)
Video: Bikin Penambang Koin Kripto Mini dengan NodeMCU ESP8266 2024, Mayo
Anonim
Ang Pinakamurang sa World I2C (I-Squared-C) Adapter
Ang Pinakamurang sa World I2C (I-Squared-C) Adapter

Gumawa ng isang interface ng sensor para sa iyong computer para sa ilalim ng isang tunog! Update 6/9/08: Matapos ang paggalugad ng maraming mga landas na napagpasyahan kong walang praktikal na paraan ng pagpapatupad ng diskarteng ito sa Microsoft Windows. Hindi ito maliit na pag-bash ng OS, talagang nag-utos ako ng isang pagsubok na nut! Pasensya na! Ang mga gumagamit ng Windows na nangangailangan ng mga kakayahan ng I2C ay pinakamahusay na hinahain ng mga umiiral na mga solusyon na nakabatay sa USB. I-update ang 5/24/08: Ang suporta sa Linux ay naidagdag, pati na rin ang sample code para sa Nintendo Wii Nunchuk controller at ang "smart LED" ng BlinkM. Tingnan ang file na README.txt kasama ang source code para sa mga direksyon sa pag-iipon at pag-set up sa Linux. Ang I2C (maikli para sa Inter-Integrated Circuit) ay isang dalawang-wire na serial bus na karaniwang ginagamit sa mga computer para sa mababang antas ng komunikasyon sa pagitan ng mga panloob na bahagi. Sikat din ang I2C sa robotics. Ang lahat ng mga uri ng sensor at actuator ay magagamit sa isang form na tumutugma sa I2C: mga ultrasonic rangefinder, sensor para sa pagpapabilis, ikiling, temperatura at presyon, mga control servo, at mga pampalawak ng bus na nagbibigay ng mga karagdagang linya ng pangkalahatang layunin (GPIO). Karamihan sa mga modernong microcontroller (Atmel, Ang Microchip PIC, atbp.) Ay may suporta para sa built-in na I2C Ngunit ang kapangyarihan sa pagpoproseso na magagamit sa mga microcontroller ay limitado, at pag-unlad ng software - na may dalubhasang mga cross-compiler at mga kapaligiran sa pagprograma - kung minsan ay maaaring maging isang gawain. Sa mga laptop at solong-board na computer na nagiging mas maliit at mas abot-kayang, mas madalas na makita ang mga sistemang ito na direktang ginamit sa mga proyekto ng robot at electronics. Nagbibigay ito ng sapat na lakas para sa mga bagong kakayahan tulad ng pagpoproseso ng pangitain at mas sopistikadong AI, at lubos nitong pinalalawak ang saklaw ng mga magagamit na tool sa pag-unlad at wika … ngunit nagpapakita rin ito ng isang bagong problema: ang pag-interlok ng mga "regular" na system na ito sa mga peripheral ay karaniwang ginagawa sa pamamagitan ng pangunahing mga port sa antas ng consumer tulad ng USB; walang magagamit na panlabas na "I2C port" maaari lamang kaming mag-tap upang magamit ng aming mga sensor … o doon?

Hakbang 1: Mga Umiiral na Pagpipilian

Umiiral na Mga Pagpipilian
Umiiral na Mga Pagpipilian
Umiiral na Mga Pagpipilian
Umiiral na Mga Pagpipilian

Ang isang paraan ng pagkonekta sa mga aparato ng I2C sa isang ordinaryong desktop o laptop computer ay sa pamamagitan ng isang USB-to-I2C adapter. Mayroong hindi bababa sa isang dosenang mga naturang pagpipilian doon, mula sa mga do-it-yourself kit na may bukas na mapagkukunan ng software, hanggang sa sopistikadong mga yunit sa komersyal sa bawat kampanilya at sipol.

Ang isang downside sa diskarte ng USB-to-I2C ay gastos. Ang isang buong tampok na modelo ng komersyal ay maaaring nagkakahalaga ng $ 250 o higit pa. Kahit na ang "libre" na mga alternatibong homebrew ay ipinapalagay ang isang koleksyon ng mga bahagi at isang naunang pamumuhunan sa isang programmer ng microcontroller at ang kaugnay na kaalaman upang magamit ito. Ang isa pang downside ay ang kamag-anak kakulangan ng suporta ng driver sa labas ng tanyag na Windows fold. Ilan sa mga aparatong ito ay gumagana nang natural sa mga Macintosh o Linux computer.

Hakbang 2: Ang DDC Ay I2C

Ang DDC Ay I2C
Ang DDC Ay I2C
Ang DDC Ay I2C
Ang DDC Ay I2C
Ang DDC Ay I2C
Ang DDC Ay I2C

Nang sinabi ko sa pagpapakilala na walang panlabas na port ng I2C sa karamihan ng mga computer, nagsinungaling ako. Lumalabas doon, at nandoon ito sa halos isang dekada ngayon, karamihan ay nakaupo.

Karamihan sa mga modernong graphics card at monitor ay may suporta para sa isang bagay na tinatawag na Display Data Channel (DDC), isang link sa komunikasyon sa loob ng isang video cable na nagpapahintulot sa computer at ipakita na makipag-ayos sa kapwa katugmang mga resolusyon at pahintulutan ang kontrol ng software ng mga pagpapaandar ng monitor na karaniwang na-access sa mga pisikal na pindutan sa ipakita Ang DDC, sa katunayan, ay simpleng pagpapatupad ng isang I2C bus na may ilang itinakdang mga panuntunan. Sa pamamagitan ng pag-tap sa koneksyon na ito sa pagitan ng computer at monitor (o paggamit ng mga linya ng DDC sa isang ekstrang hindi ginagamit na video port, tulad ng panloob na koneksyon ng monitor sa isang laptop), maaaring makipag-ugnay ang ilan sa ilang mga aparato ng I2C na halos walang gastos, pag-bypass sa karaniwang kailangan para sa isang adapter device nang buo. Ang kailangan lang namin upang ma-access nang pisikal ang I2C bus na ito ay isang naka-hack na video cable …

Hakbang 3: Ang pagdidiskubre ng Cable

Pagdidisekta ng Cable
Pagdidisekta ng Cable
Pagdidisekta ng Cable
Pagdidisekta ng Cable

Apat na mga wire ang kinakailangan para sa aming interface ng I2C: + 5V lakas, lupa, serial data at serial clock. Ang mga pinout para sa iba't ibang uri ng mga video port ay matatagpuan sa Wikipedia o Pinouts.ru. Tandaan kung gumagamit ng isang VGA cable upang makahanap ng isa na may buong pandagdag ng mga pin; ang ilan ay nagsasama lamang ng isang subset. Ang pagputol ng pagkakabukod at pagtatanggol mula sa labas ng cable, malamang na makahanap ka ng dalawang pangkat ng mga wire sa loob. Mas makapal na mga wire, o mga bundle ng mga wire na nakabalot sa karagdagang kalasag, na karaniwang nagdadala ng signal ng video. Hindi kami interesado sa mga ito at maaari silang mai-trim back. Ang mga mas manipis, hindi naka-wire na mga wire ay karaniwang nagdadala ng mga signal ng DDC (I2C) bukod sa iba pa. Ang isang multimeter o pagpapatuloy na tester ay maaaring makatulong sa paghahanap ng tamang apat na mga wire para sa iyong cable. Ang paggamit ng isang hubad na konektor ay maaaring maging kapaki-pakinabang dito, dahil kailangan mo lamang maghinang ng apat na mga wire sa mga pin ng interes. Ang isang tala sa lakas na 5V: ang magagamit na kasalukuyang napaka-limitado; tungkol sa 50 mA ayon sa pagtutukoy ng DDC. Karamihan sa mga aparatong I2C ay sumisipsip lamang ng kaunting kasalukuyang, kaya't dapat posible na magpatakbo ng maraming nang sabay-sabay … ngunit kung gumagamit ng higit sa isa o dalawang mga LED (o iba pang mga medyo mataas na kasalukuyang aparato), dapat ibigay ang panlabas na lakas.

Hakbang 4: Ang Nakumpleto na Adapter

Ang Kumpletong Adapter
Ang Kumpletong Adapter

Narito ang natapos na adapter. Iyon lang ang mayroon dito! Ginawa ko ang aking labis na strawby upang madali itong magkasya sa aking laptop bag, at nagdagdag ng isang apat na pin na plug na kumokonekta nang direkta sa isang I2C servo controller na mayroon ako.

Hakbang 5: Software at Mga Proyekto

Software at Mga Proyekto
Software at Mga Proyekto
Software at Mga Proyekto
Software at Mga Proyekto

Ang Mac OS X at Linux source code para sa pagtatrabaho sa adapter ay maaaring ma-download mula sa aking web site (ang link sa pag-download ay nasa ilalim ng pahina). Nakasulat ito sa C, at kakailanganin mong magkaroon ng naka-install na gcc (Karaniwang isinasama ito ng Linux bilang default, habang kailangang i-install ng mga gumagamit ng Mac ang mga tool ng developer na isang opsyonal na installer sa iyong orihinal na OS disc, o mai-download nang libre mula sa Apple). Kasama ang halimbawa ng code para sa pagbabasa ng isang sensor ng temperatura, pag-flashing ng isang "smart LED" ng BlinkM, pagsulat at pag-verify ng isang serial EEPROM, pagbabasa ng isang Nintento Wii Nunchuk controller (Linux lamang), at pakikipag-usap sa isang board board ng servo. Sa kasamaang palad ang adapter scheme na ito ay hindi katugma sa lahat ng mga system. Ang suporta para sa DDC ay hindi inatasan, kaya't hindi lahat ng mga video card ay sumusuporta sa kakayahang ito. Nagkaroon ako ng magandang kapalaran sa ngayon sa mga system ng Mac na mayroong ATI o Intel graphics chips, ngunit ang mga sistemang nakabase sa NVIDIA ay wala ng swerte. Sa panig ng Linux matagumpay ko lamang nasubukan ang isang IBM ThinkPad A31p (ATI graphics), ngunit hindi ito gagana sa isang Asus EeePC (Intel). Ipinapakita ng mga imahe dito ang isang pagsubok na nagpapakita na nagpapakita ng iba't ibang mga aparato ng I2C sa pagkilos. Patuloy na binabasa ng computer ang nakapaligid na temperatura mula sa isang sensor ng temperatura ng I2C, pana-panahong nai-log ang data na ito sa isang I2C serial EEPROM chip (oo, maaari lamang itong mai-print sa isang file, ngunit ito ay upang higit na maipakita ang mga aplikasyon ng I2C), at pagkatapos ay isang servo (sa pamamagitan ng isang I2C controller) ay nagsisilbing isang pansamantala dial dial. Gamit ang library at sample code para sa mga aparatong ito na nasa lugar na, tumagal lamang ng ilang minuto upang pagsamahin ang demo na ito (at ang karamihan sa mga iyon ay ginagawa ang dial ng tagapagpahiwatig).

Inirerekumendang: