Isi kandungan:

Penyesuai I2C (I-Squared-C) Termurah di Dunia: 5 Langkah (dengan Gambar)
Penyesuai I2C (I-Squared-C) Termurah di Dunia: 5 Langkah (dengan Gambar)

Video: Penyesuai I2C (I-Squared-C) Termurah di Dunia: 5 Langkah (dengan Gambar)

Video: Penyesuai I2C (I-Squared-C) Termurah di Dunia: 5 Langkah (dengan Gambar)
Video: Video Sidang Proposal Skripsi an Muhammad Ilham Sidqi - Prodi Teknik Informatika Universitas Trilogi 2024, Julai
Anonim
Penyesuai I2C (I-Squared-C) Termurah di Dunia
Penyesuai I2C (I-Squared-C) Termurah di Dunia

Buat antara muka sensor untuk komputer anda dengan harga yang rendah! Kemas kini 6/9/08: Setelah meneroka beberapa jalan, saya telah membuat kesimpulan bahawa tidak ada kaedah praktikal untuk menerapkan teknik ini di Microsoft Windows. Ini bukan masalah kecil OS, saya benar-benar berjaya! Maaf! Pengguna Windows yang memerlukan keupayaan I2C dilayan dengan baik oleh penyelesaian berasaskan USB yang ada. Kemas kini 5/24/08: Sokongan Linux telah ditambahkan, serta contoh kod untuk pengawal Nintendo Wii Nunchuk dan BlinkM "LED pintar." Lihat fail README.txt yang disertakan dengan kod sumber untuk arahan mengenai penyusunan dan penyediaan di Linux. I2C (singkatan dari Inter-Integrated Circuit) adalah bas bersiri dua wayar yang biasanya digunakan di komputer untuk komunikasi tahap rendah antara komponen dalaman. I2C juga popular dalam robotik. Semua jenis sensor dan penggerak boleh didapati dalam bentuk yang serasi dengan I2C: pengintai jarak ultrasonik, sensor untuk pecutan, kecondongan, suhu dan tekanan, pengawal servo, dan pengembang bas yang menyediakan garis tujuan umum (GPIO) tambahan. Pengawal mikro moden (Atmel, Microchip PIC, dan lain-lain) mempunyai sokongan untuk I2C yang dibina. Tetapi daya pemprosesan yang tersedia pada mikrokontroler adalah terhad, dan pengembangan perisian - dengan penyusun silang khusus dan persekitaran pengaturcaraan - kadang-kadang boleh menjadi tugas. Dengan komputer riba dan papan tunggal menjadi semakin kecil dan lebih berpatutan, semakin biasa untuk melihat sistem ini digunakan secara langsung dalam projek robotik dan elektronik. Ini memberikan kekuatan yang cukup untuk kemampuan baru seperti pemrosesan penglihatan dan AI yang lebih canggih, dan ini sangat memperluas ruang lingkup alat dan bahasa pengembangan yang tersedia … tetapi juga menghadirkan masalah baru: menghubungkan sistem "biasa" ini ke periferal biasanya dilakukan melalui arus perdana port bertaraf pengguna seperti USB; tidak ada "port I2C" yang tersedia secara luaran yang dapat kita gunakan untuk memanfaatkan sensor kita … atau ada?

Langkah 1: Pilihan Yang Ada

Pilihan Yang Ada
Pilihan Yang Ada
Pilihan Yang Ada
Pilihan Yang Ada

Salah satu cara menghubungkan peranti I2C ke komputer desktop atau komputer riba biasa adalah melalui penyesuai USB-ke-I2C. Terdapat sekurang-kurangnya selusin pilihan seperti itu, mulai dari peralatan do-it-yourself dengan perisian sumber terbuka, hingga unit komersial canggih dengan setiap loceng dan peluit.

Satu kelemahan pendekatan USB-to-I2C adalah kos. Model komersial yang lengkap boleh berharga $ 250 atau lebih. Malah pilihan homebrew "percuma" menganggap koleksi bahagian dan pelaburan sebelumnya dalam pengaturcara mikrokontroler dan pengetahuan yang berkaitan untuk memanfaatkannya. Kelemahan lain adalah kekurangan sokongan pemandu di luar lipatan Windows yang popular. Sebilangan kecil peranti ini berfungsi secara asli pada komputer Macintosh atau Linux.

Langkah 2: DDC Adalah I2C

DDC Adakah I2C
DDC Adakah I2C
DDC Adakah I2C
DDC Adakah I2C
DDC Adakah I2C
DDC Adakah I2C

Ketika saya menyatakan dalam pengenalan bahawa tidak ada port I2C luaran di kebanyakan komputer, saya berbohong. Ternyata ada, dan sudah ada selama hampir satu dekad sekarang, kebanyakan duduk tidak aktif.

Sebilangan besar kad grafik dan monitor moden mempunyai sokongan untuk sesuatu yang dipanggil Display Data Channel (DDC), pautan komunikasi dalam kabel video yang membolehkan komputer dan paparan untuk merundingkan resolusi yang saling serasi dan membenarkan kawalan perisian fungsi monitor yang biasanya diakses dengan butang fizikal pada paparan. DDC, sebenarnya, hanyalah pelaksanaan bas I2C dengan beberapa peraturan yang ditetapkan. Dengan memanfaatkan hubungan ini antara komputer dan monitor (atau menggunakan saluran DDC pada port video yang tidak digunakan, seperti sambungan monitor luaran pada komputer riba), seseorang dapat berinteraksi dengan beberapa peranti I2C hampir tanpa perbelanjaan, dengan melewati keperluan biasa untuk peranti penyesuai sepenuhnya. Apa yang kita perlukan untuk mengakses bas I2C ini secara fizikal adalah kabel video yang digodam…

Langkah 3: Mencabut Kabel

Mencabut Kabel
Mencabut Kabel
Mencabut Kabel
Mencabut Kabel

Empat wayar diperlukan untuk antara muka I2C kami: +5V kuasa, tanah, data bersiri dan jam bersiri. Pinout untuk pelbagai jenis port video boleh didapati di Wikipedia atau Pinouts.ru. Ingatlah jika menggunakan kabel VGA untuk mendapatkannya dengan pin lengkap; beberapa hanya termasuk subset. Memotong penebat dan pelindung dari luar kabel, kemungkinan anda akan menemui dua kumpulan wayar di dalamnya. Kawat yang lebih tebal, atau sekumpulan wayar yang dibungkus dengan pelindung tambahan, biasanya membawa isyarat video. Kami tidak berminat dengan perkara ini dan mereka boleh dikurangkan kembali. Kawat yang lebih nipis dan tidak terlindung biasanya membawa isyarat DDC (I2C) antara lain. Penguji multimeter atau kesinambungan dapat membantu mencari empat wayar yang betul untuk kabel anda. Menggunakan penyambung kosong boleh menjadi kelebihan di sini, kerana anda hanya perlu menyolek empat wayar ke pin yang menarik. Catatan mengenai kuasa + 5V: arus yang tersedia sangat terhad; kira-kira 50 mA mengikut spesifikasi DDC. Sebilangan besar peranti I2C menghirup sedikit arus, jadi boleh dijalankan beberapa sekaligus … tetapi jika menggunakan lebih dari satu atau dua LED (atau peranti arus tinggi yang lain), kuasa luaran harus disediakan.

Langkah 4: Penyesuai Selesai

Penyesuai Selesai
Penyesuai Selesai

Inilah penyesuai siap. Itu sahaja yang ada! Saya menjadikan saya lebih gemuk sehingga boleh muat dengan mudah di dalam beg komputer riba saya, dan menambahkan palam empat pin yang menghubungkan terus ke alat kawalan servo I2C yang saya ada.

Langkah 5: Perisian dan Projek

Perisian dan Projek
Perisian dan Projek
Perisian dan Projek
Perisian dan Projek

Kod sumber Mac OS X dan Linux untuk bekerja dengan penyesuai boleh dimuat turun dari laman web saya (pautan muat turun ada di bahagian bawah halaman). Ia ditulis dalam C, dan anda perlu memasang gcc (Linux biasanya menyertakannya secara lalai, sementara pengguna Mac perlu memasang alat pembangun yang merupakan pemasang pilihan pada cakera OS asal anda, atau boleh dimuat turun secara percuma dari Apple). Contoh kod disertakan untuk membaca sensor suhu, memancarkan "LED pintar" BlinkM, menulis dan mengesahkan EEPROM bersiri, membaca pengawal Nintento Wii Nunchuk (Linux sahaja), dan berkomunikasi dengan papan pengawal servo. Sayangnya skema penyesuai ini tidak serasi dengan semua sistem. Sokongan untuk DDC tidak diamanatkan, jadi tidak semua kad video menyokong kemampuan ini. Sejauh ini saya telah berjaya dengan sistem Mac yang mempunyai cip grafik ATI atau Intel, tetapi sistem berasaskan NVIDIA tidak bernasib baik. Di sisi Linux, saya hanya berjaya menguji IBM ThinkPad A31p (grafik ATI), tetapi ia tidak akan berfungsi dengan Asus EeePC (Intel). Gambar di sini menunjukkan rig ujian yang menunjukkan pelbagai peranti I2C beraksi. Komputer terus membaca suhu persekitaran dari sensor suhu I2C, secara berkala memasukkan data ini ke cip EEPROM bersiri I2C (ya, hanya boleh mencetak ke fail, tetapi ini untuk menunjukkan aplikasi I2C lebih lanjut), dan kemudian servo (melalui pengawal I2C) berfungsi sebagai dail penunjuk sementara. Dengan pustaka dan contoh kod untuk peranti ini sudah tersedia, hanya memerlukan beberapa minit untuk mengumpulkan demo ini (dan kebanyakannya adalah untuk membuat penunjuk).

Disyorkan: