Apa cara saya dapat membuat sirkuit saya berkomunikasi dengan komputer?

8

Saya seorang pemula dalam peretasan elektronik. Saya ingin tahu bagaimana saya bisa membuat sirkuit berkomunikasi dengan PC. Ambil contoh, rangkaian sederhana, dengan satu LED dan sakelar. Namun, saklar pada sirkuit tidak digunakan untuk mengontrol LED. Menekannya mengkomunikasikan keadaan LED saat ini. Saya memiliki program yang berjalan di komputer saya, yang memiliki UI, tombol, dan objek grafik; lingkaran penuh hitam.

  • Saya harus dapat menyalakan dan mematikan LED dari komputer saya dengan mengklik tombol di layar.
  • Menekan tombol di papan tulis, harus berkomunikasi dengan program keadaan LED. Jika LED menyala, lingkaran hitam akan berubah menjadi hijau, jika tidak maka akan menjadi hitam.

Ini situasi hipotetis yang telah saya jelaskan untuk menjelaskan masalahnya. Saya tidak mencari solusi untuk mengimplementasikan hal ini, tetapi ingin tahu bagaimana komunikasi antara sirkuit saya dan komputer ini dapat dicapai, dengan cara yang sederhana, murah, melalui

  1. kawat?
  2. nirkabel?

Dan jika Anda dapat menyarankan di mana saya harus mencari dan apa yang harus saya pelajari untuk memulai dengan proyek elektronik saya, itu akan sangat membantu.

sauparna
sumber

Jawaban:

17

Ada beberapa cara berbeda yang bisa Anda lakukan untuk mencapai ini. Berikut ini beberapa di antaranya:

  1. Anda dapat memprogram mikrokontroler kecil seperti Microchip PIC16F84A untuk menonton tombol dan LED. Setiap kali tombol ditekan, PIC16F84A mengirimkan karakter melalui chip seri FTDI ke port USB di komputer Anda. Di komputer Anda, sebuah program yang ditulis dalam Processing mengamati port USB dan memperbarui gambar di layar. Total biaya: $ 20 untuk beberapa chip dan papan tempat memotong roti.

  2. Anda bisa membeli Bluetooth Arduino dengan perisai prototyping. Arduino berbicara melalui chip Bluetooth ke kartu Bluetooth di PC Anda. Sebuah program yang ditulis dengan Python mendengarkan kartu Bluetooth dan menggambar gambar yang sesuai di layar dengan pustaka Pygame . Total biaya: $ 150 untuk Bluetooth Arduino.

  3. Anda bisa melampirkan webcam ke PC Anda yang menonton LED Anda dan tombolnya. Sebuah program yang ditulis dalam Ruby menganalisis setiap gambar yang berasal dari webcam, membandingkannya dengan gambar sebelumnya. Ketika mendeteksi perubahan di wilayah gambar di dekat tombol, itu terlihat pada warna piksel di wilayah LED dan memperbarui nilai dalam database . Laman web diperbarui secara otomatis menggunakan plugin pengatur waktu jQuery , dan memperbarui gambar di layar berdasarkan nilai dalam basis data. Total biaya: $ 25 untuk webcam jelek.

  4. Anda dapat menemukan PC lama dengan port paralel dan menginstal Ubuntu Linux di atasnya. Anda menghubungkan LED dan tombol ke pin pada port paralel dan kemudian menulis sebuah program dalam C yang bertuliskan alamat 0x378. Berdasarkan data yang dikembalikan, itu membuat panggilan ke perpustakaan grafik C yang melakukan gambar layar yang sesuai. Total biaya: gratis, jika Anda dapat menemukan PC yang cukup tua.

  5. Anda mengganti tombol daya di komputer Anda dengan tombol yang dimaksud, dan LED daya dengan LED yang dimaksud. Anda mengganti BIOS Anda dengan versi OpenBIOS yang telah dimodifikasi untuk menampilkan lingkaran hijau di layar, dan tidak pernah mem-boot sistem operasi apa pun. Total biaya: mungkin biaya PC baru.

Tetapi dalam semua keseriusan

Saya pikir saya akan merekomendasikan Arduino dan Pemrosesan . Mereka sederhana dan bagus untuk pemula. Total biaya: $ 30 untuk Arduino.

Semoga berhasil.

pingswept
sumber
Anda tidak perlu BIOS khusus untuk membaca status tombol daya. Anda harus dapat melakukannya dari Linux tanpa peretasan kernel atau apapun. Saya cukup yakin Anda dapat mengkonfigurasi apa yang terjadi ketika tombol power ditekan.
davr
2
Saya pikir Arduino dan Pemrosesan harus menjadi cara terbaik untuk memulai.
sauparna
7

Dapatkan buku "Making Things Talk" oleh Tom Igoe: http://oreilly.com/catalog/9780596510510

Ini bukan tentang ucapan, ini tentang semua metode berbeda untuk membuat perangkat yang berbeda - misalnya, komputer dan sirkuit Anda - saling berbicara. Di dalamnya, Anda akan menemukan detail berdarah dari semua metode yang dijabarkan orang dalam jawaban lain di sini, lengkap dengan diagram sirkuit dan kode sumber (jika perlu).

Jika Anda ingin mempelajari salah satu atau semua cara berbeda untuk melakukan ini, Anda tidak dapat memiliki titik awal yang lebih baik.

Windell Oskay
sumber
6

Python + FT245

Jatuhkan modul PyUSB , dan tiba-tiba hanya dibutuhkan tiga baris (yah, empat, jika Anda memasukkan impor) kode untuk membuat Python berbicara ke meatspace melalui 8 baris IO Paralel.

import d2xx
hardwareHandle = d2xx.open(0)
#Open the First FTDI device on the computer
hardwareHandle.setBitMode(0xff, 0x01)      
#Put the hardware in Async Bit-bang mode, set all pins as outputs

#Finally
hardwareHandle.write(data)
#And suddenly
#`data` shows up on the FT245 pins!

hardwareHandle.setBitMode(0x00, 0x01)
#set the IO lines to inputs (the first byte is the IO mask)
input = hardwareHandle.read()
#and input is equal to the value on the IO lines!

IO paralel paralel mati-sederhana dari bahasa tingkat tinggi.

Sebagai bonus, biaya perangkat keras total $ 17,95

Connor Wolf
sumber
4

Lihatlah TI Chronos

TI membuat keluarga mikrokontroler 16 bit yang luar biasa ini berdasarkan chip MSP430. Salah satu varian dari chip itu adalah CC430, yang telah tertanam secara nirkabel dalam paket.

Chronos adalah "papan pengembangan" yang mereka jual seharga 49 dolar. Muncul dalam faktor bentuk jam tangan (yang saya gunakan sehari-hari, itu bahkan modis di luar dunia geek :-)) Ini juga dilengkapi dengan dua dongle USB, satu untuk JTAG (programmer) dan satu lagi adalah rekan nirkabel.

Salah satu contoh di devboard adalah mengendalikan mouse secara nirkabel menggunakan arloji, yang cukup keren. Jam tangan ini juga dilengkapi dengan sensor accelerometer, barometer (ketinggian) dan termometer.

Padu Merloti
sumber
Chronos saya akan datang pada hari Jumat! Serius, meskipun, ini hanya bentuk yang sedikit lebih kompleks dari pengaturan PIC -> FTDI.
Kevin Vermeer
1

Kabel atau nirkabel sangat mudah akhir-akhir ini. Anda bisa mendapatkan kit bluetooth yang sudah memberi Anda I / O, dan Anda juga bisa membeli papan I / O USB yang sangat murah. Apa yang ingin Anda gunakan sepenuhnya sesuai dengan kebutuhan dan anggaran Anda.

http://www.hexwax.com/Products/expandIO-USB/

Sesuatu seperti itu (tidak pernah menggunakannya, tidak ada afiliasi dengan perusahaan) mungkin akan membuat Anda pergi dan berjalan sangat cepat dan dengan sedikit keributan. Mereka tampaknya tersedia dari Digikey dan Mouser, dan mungkin yang lain juga.

akohlsmith
sumber
1

Dengan asumsi bahwa PC Anda memiliki port serial, Anda bisa menggunakan USART pada chip dan transceiver RS-232 untuk berkomunikasi antara chip dan PC. Jika PC Anda tidak memiliki port serial, Anda harus berinvestasi dalam konverter USB <-> RS-232.

mjh2007
sumber
1

Jika minat utama Anda adalah untuk mengaktifkan dan menjalankannya dengan cepat, ada banyak kit I / O digital berbasis USB yang menyertakan pustaka pemrograman untuk membaca / menulis status pin. Tidak seperti bekerja dengan Arduino atau papan mikro lainnya, ini berarti Anda hanya perlu khawatir tentang pemrograman PC (dibandingkan harus menulis dan men-debug kode yang berjalan di papan mikrokontroler).

Dulu kabel input dan output melalui joystick PC atau port paralel adalah cara untuk pergi. Tapi itu pada zaman DOS dan Windows hingga sekitar Windows 95. Sejak itu, secara langsung mengakses register untuk mendapatkan perangkat keras semakin sulit dilakukan. Yang mengatakan, itu masih bisa dilakukan - Anda hanya perlu melompati lingkaran pemrograman untuk mendapatkan pin tersebut dari program Anda. Dok laptop ThinkPad saya, misalnya, memiliki port paralel gaya legacy, dan masih didukung oleh OS, haruskah saya memutuskan untuk memasang LaserJet II. :)

Toybuilder
sumber
1

Ada beberapa perangkat USB sederhana yang bagus yang dapat melakukan ini, misalnya Kadtronics USB Digital I / O Commander .

Roket
sumber
0

Metode tercepat dan termudah untuk melakukan itu adalah melalui Labview dan perangkat I / O USB terkait. Tentu saja, ini tidak murah (ribuan dolar). Apa yang Anda gambarkan bukanlah level entry, jelas bukan level 'Hello World'.

Selain menghabiskan banyak uang, Anda mungkin lebih baik menggunakan Arduino dan berkomunikasi dengan program Anda melalui serial dan membuat Arduino menyalakan dan mematikan lampu.

AngryEE
sumber
Ya ampun, ini tidak semudah yang saya kira. Terima kasih atas perspektif ini.
sauparna
Ada Bundel Rumah LabVIEW (lisensi untuk penggunaan hobi / pembuat nonkomersial) tersedia seharga $ 50. Ini dapat digunakan dengan Arduino, Raspberry Pi, atau papan berbiaya rendah lainnya untuk membuat I / O dari komputer, atau membuat perangkat lunak tertanam untuk dijalankan di papan tulis. Walaupun mungkin diperlukan terlalu banyak untuk masalah khusus ini dibandingkan dengan jawaban lain, biayanya wajar dan alatnya harus sangat mampu untuk penggunaan yang jauh lebih kompleks.
mbmcavoy