Saya membutuhkan sejumlah output digital untuk menghubungkan komputer saya ke dunia nyata, namun tampaknya pekerjaan ini tidak semudah yang saya harapkan.
Saya telah melihat ke sejumlah metode yang berbeda, mulai dari kartu I / O digital khusus, pengontrol mikro dengan antarmuka USB, port serial, port paralel, dll. Namun semua solusi tampaknya terlalu mahal, terlalu banyak pekerjaan, atau teknologinya terlalu tua.
Saya berharap ada 64+ output digital yang berjalan di masing-masing sekitar 1khz, dapat dikontrol secara individual. Sejauh ini ide terbaik yang dapat saya buat adalah menempelkan output dari port serial ke serial 8-bit ke register geser paralel dan mengirim karakter ke koneksi serial setiap kali saya ingin mengubah dan output (dijalankan dari USB ke port serial) adaptor). Saya belum menguji ini jadi saya tidak tahu apakah itu akan berhasil.
Apakah ada metode cepat dan kotor lainnya untuk mendapatkan sejumlah besar output digital murah dari komputer yang dapat saya kontrol dengan mudah dengan perintah C ++ yang sangat mendasar?
sumber
Jawaban:
Sepertinya Anda berniat untuk menyalakan lampu Natal. :-)
Adakah yang salah dengan menggunakan Arduino atau sejenisnya? Akan cukup mudah untuk memperluas jumlah port IO jika jumlah port mengatakan pada mega 1280/2560 tidak cukup. Anda dapat mengendarainya melalui terminal serial / USB. Anda dapat menggunakan register geser pada pin output Arduino atau Anda dapat menggunakan expander port i2c dan berkendara melalui itu.
Menggunakan komponen standar seperti itu akan memberi Anda waktu prototyping paling singkat.
Catatan, cara saya mungkin bukan yang termurah. Tetapi ini efektif dan benar-benar akan membuat Anda berputar dengan cepat.
sumber
Register shift serial ke paralel akan berfungsi. Menggunakan port SPI Anda tidak akan memiliki masalah dengan kecepatan pembaruan 1KHz. IIRC pada ATmega328 dengan kristal 8MHz (atau lebih tinggi) Anda harus bisa mendapatkan 1Mbits per detik. Banyak mikrokontroler lain akan berfungsi juga.
Pilihan lain adalah menggunakan beberapa mikrokontroler. Misalnya - menggunakan ATmega328 (yaitu sekitar $ 5 dengan pasif) akan memberi Anda 18 baris sekaligus menjaga garis TXD dan RXD gratis. Paralelkan garis RXD dan kemudian semua UC akan menerima string perintah yang sama. Anda perlu mengurai string perintah pada UC. Gunakan kabel FTDI untuk sampai ke USB. Tambahkan bootloader Arduino ke UC dan Anda bisa menggunakan alat Arduino.
Konversi serial ke paralel lebih lurus ke depan. Jika aplikasi Anda dapat menggunakan keluaran saluran terbuka, Anda bisa menggunakan driver LED 16 saluran. Ini berarti menambahkan empat chip.
sumber
Pilihan paling sederhana yang saya temui tampaknya adalah IOIO-OTG . Ini adalah perangkat USB OTG eksternal berbasis PIC-controller, dirancang untuk android, tetapi dapat digunakan dengan PC, melalui Eclipse dan Android Development Toolkit. Ini memiliki 46 pin 3.3IO GPIO , serta banyak hal berguna lainnya. Ini tidak memiliki 64 pin yang diperlukan untuk proyek Anda, tetapi Anda bisa menggunakan beberapa register bergeser serial ke paralel, seperti yang disebutkan oleh jluciani (atau menggunakan pengontrol motor stepper, dan menggunakan lebih sedikit pin).
Ada juga papan IO USB berbasis PIC ini , yang melakukan hal serupa, tetapi memiliki pin yang lebih sedikit.
sumber