Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Manufacturing Technology >> Proses manufaktur

Sensor jarak analog sederhana dengan antarmuka digital (untuk Raspberry Pi) [pembaruan terakhir:7 Feb 2014]

Raspberry Pi memiliki chip Broadcom BCM2835, yang mengontrol 26 pin GPIO (input/output tujuan umum). Ada pustaka C atau paket python RPi.GPIO yang tersedia online yang dapat digunakan untuk mengontrol pin. Paket RPi.GPIO secara default disertakan di sebagian besar sistem Raspberry Pi, seperti Raspbian, versi RPi dari sistem linux Debian.

Salah satu kelemahan RPi, dibandingkan dengan arduino, adalah tidak memiliki pin analog. Semua pin GPIO murni digital. Sebagai contoh, jika pin A adalah pin output, pin A hanya dapat mengeluarkan output LOW (0V) atau HIGH (3.3V), direpresentasikan sebagai 0 atau 1. Jika pin A adalah pin input, untuk tegangan di bawah 0.8V diterapkan pada pin A , dibutuhkan sebagai LOW atau 0; untuk setiap tegangan di atas 1.3V (sangat rendah sebenarnya!), dibutuhkan sebagai TINGGI atau 1 [ref:RPi GPIO].
Di dunia nyata, bagaimanapun, murni 0 atau 1 jarang terjadi. Kami selalu mendapatkan informasi yang dapat memiliki nilai kontinu dalam jangkauannya. Misalnya, suhu bisa 10C atau 50F, atau 100C atau 212F. Angka ini mengandung lebih banyak informasi daripada sekadar "dingin" atau "panas". Jarak bisa 2 cm atau 10 m, dan tidak cukup hanya mengetahui "dekat" atau "jauh".

Ada beberapa cara untuk mengatasi kelemahan ini. RPi memang mendukung antarmuka SPI atau I2C, sehingga kita dapat menggunakan beberapa eksternal analog to digital converter (ADC) dan menggunakan antarmuka SPI atau I2C untuk mendapatkan sinyal kuasi-analog melalui ADC ini, seperti MCP3008, TLC549, MCP23017, dll. Chip ini biasanya biaya beberapa dolar. Namun, dengan sensor komersial tambahan, seluruh bagian dapat berharga lebih dari $20 hingga $30, dan sulit untuk membuat sistem ini kompak. Untuk proyek robot biasanya membutuhkan lebih dari satu sensor, dan biayanya dapat bertambah dengan mudah.

Bahkan, dalam banyak situasi, sebenarnya mungkin untuk menghindari penggunaan perangkat eksternal ini, dan masih bisa mendapatkan analog sinyal melalui digital pin!

Kuncinya adalah mengubah sinyal analog menjadi durasi waktu. Karena waktu selalu analog!

Saya membangun sensor jarak inframerah sederhana menggunakan beberapa LED inframerah, satu fototransistor, satu transistor NPN 2N3904, kapasitor keramik 100nF dan beberapa resistor daya rendah. Dan saya bisa mendapatkan beberapa pembacaan analog.

Semua elemen termasuk yang termurah di pasar elektronik.

Tidak masalah apa LED, fototransistor, atau transistor NPN yang digunakan. Mereka hampir sama.

Satu-satunya hal yang mungkin sedikit penting adalah kapasitor 100nF (0,1uF). Saya menggunakan keramik profil rendah, yang mungkin bukan pilihan terbaik. Keramik kelas 1, atau kapasitor film, akan lebih cocok di sini.

Hubungkan kabel +5V dan GND ke catu daya 5V eksternal, sambungkan juga kabel GND ke ground pin Raspberry Pi GPIO. Pilih satu pin GPIO, katakanlah, Pin A sebagai pemicu dan hubungkan ke kabel Pemicu. Pilih pin GPIO lain, misalnya Pin B, sebagai input/output sinyal dan hubungkan ke kabel OUT.

Untuk mengukur jarak suatu objek, kami mengirimkan sinyal pemicu untuk mengaktifkan LED inframerah. Cahaya yang dipancarkan oleh LED ini kemudian dipantulkan oleh objek di depan sensor. Fototransistor di tengah mengumpulkan cahaya yang dipantulkan dan menghasilkan arus proporsional. Arus ini digunakan untuk mengintegrasikan tegangan melintasi kapasitor (I=CdV/dt). Dengan memantau waktu yang dibutuhkan tegangan kapasitor untuk mencapai ambang tertentu, kita dapat mengetahui berapa banyak arus yang dihasilkan oleh fototransistor, atau yang setara, berapa banyak cahaya yang dipantulkan. Ternyata, semakin dekat objek, semakin banyak cahaya yang dipantulkan. Dengan mengkalibrasi waktu sensor secara hati-hati, kita seharusnya bisa mendapatkan pengukuran jarak yang cukup akurat.

Berikut adalah urutan rinci operasi.1. Nol kapasitor

Pertama-tama atur Pin B menjadi pin keluaran dan setel ke nol.

GPIO.setup(PIN_B,GPIO.OUT)
GPIO.output(PIN_B,0)
time.sleep(0.01)

Ini akan melepaskan tegangan sisa pada kapasitor. Perhatikan bahwa waktu RC untuk mengosongkan kapasitor adalah t=RC=500ohm * 100nF =50 us =0,00005 detik. Dengan mempertahankan nol volt pada pin B untuk waktu 200RC, kami memastikan kapasitor benar-benar kosong (tegangan sisa harus e−200=10−87 kali tegangan sisa asli).2. Setel Pin B sebagai Masukan

Sekarang kita menggunakan Pin B sebagai pin input untuk mendapatkan data dari phototransisto.
GPIO.setup(PIN,GPIO.IN)

3. Nyalakan LED

Saatnya menyalakan LED inframerah.

GPIO.setup(PIN_A,GPIO.OUT)
GPIO.output(PIN_A,1)

Ini akan mengatur tegangan pin pemicu menjadi 3.3V. Karena node BE 2N3904 turun 0,7V, tegangan pada R1 adalah 2,6V. Arus yang melalui R1 adalah I=2.6V/4.3kΩ=0.6mA. 2N3904 kemudian memperkuat arus ini sebesar ~150 kali, menghasilkan arus ~100mA dari kolektor ke emitor. Masing-masing LED akan menghantarkan sekitar 50mA untuk periode waktu yang singkat.4. Mengatur waktu durasi Pin B tersisa RENDAH

Mulailah mengukur berapa lama kapasitor mencapai ambang batas RPi sehingga Pin B menjadi TINGGI

counter=0
t1=time.clock()*1000
sementara(GPIO.input(PIN_B)==0)&(counter<1e4):
counter =counter+1
deltat=time.clock()*1000-t1

deltat adalah durasi waktu Pin B tersisa LOW. Karena deltat sebanding dengan kebalikan arus fototransistor (atau jumlah cahaya yang dipantulkan ), dan arus fototransistor secara kasar sebanding dengan kebalikan jarak , deltat kira-kira sebanding dengan jarak .
deltat∝1I∝1light∝distance

Istilah (penghitung<1e4) adalah untuk mencegah situasi yang membutuhkan waktu terlalu lama untuk mengintegrasikan kapasitor karena arus fototransistor yang sangat rendah, atau setara, jarak tak terhingga.

Untuk detail lebih lanjut:Sensor jarak analog sederhana dengan antarmuka digital (untuk Raspberry Pi) pembaruan terakhir 7 Februari 2014]


Proses manufaktur

  1. Ukur suhu dengan sensor DS18B20 1-kawat dan Raspberry Pi
  2. Sensor suhu 1-kawat DS1820 di Raspberry Pi (langsung GPIO)
  3. Integrasi Data Sensor dengan Mikroprosesor Raspberry Pi
  4. Sensor Ultrasonik (HC-SR04) + Raspberry Pi
  5. Sensor pelacakan garis dengan RPi
  6. Membaca Sensor Analog Dengan Satu Pin GPIO
  7. Sistem Sensor Gerak Inframerah DIY untuk Raspberry Pi
  8. Sensor Analog tanpa Input Analog pada Raspberry Pi
  9. Raspberry Pi 1- Sensor Termometer Digital Kawat (DS18B20)
  10. Raspberry Pi digital Hall sensor in JAVA