Senin, 25 Oktober 2010

TPA81 : Coding Kontrol Motor Servo

.
Mungkin agak telat dan nanti akhir maret akan kupindahkan post ini di bulan Oktober 2010 bersamaan dengan penjelasan sensor TPA81.

Penjelasan sebelumnya di post : TPA81 : Mengendalikan Motor Servo
dan sekarang akan saya bahas cara mengendalikan motor servo melalui sensor TPA81.

Coding TPA81 + Servo
Coding disamping TPA_address nya 0xD0

fungsi unsigned char TPA_wirte(char value) ganti dengan void TPA_write(char value), berfungsi untuk menulis data pergerakan sudut servo dan besarnya sudut ditentukan dari nilai value-nya.

Nilai value minimal adalah 0x00 atau 0 dan maksimal adalah 0x1F atau 31 nilai selain itu menyebabkan kontrol motor servo terhenti.

Pengulangan servo dari nilai variabel loop dan nilai sudut servo dari variabel x. Selain itu pada fungsi TPA81_write terdapat tundaan 10mS yang dibutuhkan oleh komunikasi I2C

Coding disamping terdiri dari 3 bagian yaitu :
  • Kontrol motor servo dari nilai 0 hingga nilai 32 dengan tundaan antar nilai adalah 0 mS (sebenarnya 10mS). Fungsi ini akan diulang sebanyak 5 kali.
  • Kontrol motor servo dari nilai 0 hingga nilai 32 dengan tundaan antar nilai adalah 100 mS (sebenarnya 110mS). Fungsi ini akan diulang sebanyak 3 kali.
  • Kontrol motor servo dari nilai 0 hingga nilai 32 dengan tundaan antar nilai adalah 250 mS (sebenarnya 260mS). Fungsi ini akan diulang sebanyak 1 kali.
Coding diatas masukkan langsung di coding sebelumnya yaitu :


Video-nya sudah saya buat dan nanti diupload.

Semoga membantu ...^^v...

Minggu, 24 Oktober 2010

TPA81 : Mengendalikan Motor Servo

Modul Sensor TPA81 adalah sensor thermopile array yang menggunakan mikrokontroller tipe PIC16F88. Selain berfungsi untuk mengakses dan membaca sensor suhu, juga ditambahkan fitur pengendalian motor servo. Oleh sebab itu terdapat pin kontrol motor servo.

Pin ini disediakan dengan maksud sebagai pendukung kerja sensor TPA81 namun tidak menutup kemungkinan digunakan untuk keperluan yang anda inginkan.

Motor servo yang digunakan berfungsi sebagai tempat sensor TPA81 diletakkan yang kemudian motor servo bergerak ke kiri-kanan (atau sesuai keinginan) sehingga dapat digunakan metode scanning untuk mendeteksi / membaca suhu.

Motor Servo
Pada datasheet sensor TPA81, contoh motor servo yang digunakan adalah motor servo Hitec HS-311 dengan spesifikasi berikut :
Link :
Motor Servo Hitec HS-311 A
Motor Servo Hitec HS-311 B



Jika tidak memiliki motor servo tipe tersebut maka bisa digantikan dengan tipe sejenisnya / spesifikasinya mirip, khususnya pada pewaktuan untuk mengontrol sudut pergerakan motor tersebut.

Register Command pada TPA81
Untuk mengakses motor servo, register yang digunakan adalah register 0.
Ingat register ini memiliki fungsi yang berbeda ketika di Baca dan ketika di Tulis.

Saat di Tulis register 0 akan berfungsi sebagai Command register, yaitu register yang akan memberikan perintah posisi motor servo.

Saat di Baca register 0 akan memberikan informasi versi softaware yang diprogram pada modul TPA81.

Posisi Motor Servo
Nilai command / posisi motor servo yang dapat diberikan pada modul TPA81 sebanyak 32 step (nilai command : 0 - 31) dengan tipikalnya untuk mempresentasikan sudut 180 derajat.
Cara menghitung sudut motor servo adalah :

Posisi Motor Servo = (Nilai Command * 60) + 540 uS


Jika nilai command diberikan yaitu nilai 0 - 31 maka range pulsa-nya antara 540 uS hingga 2400 uS dan setiap step perubahan waktunya adalah 60 uS. Menulis nilai command selain 0 - 31 (misalnya 32, 33, 34, dst) akan menghentikan pulsa untuk motor servo.

Coding Motor Servo
Dari tabel tersebut maka nilai command yang dapat diberikan pada register 0 antar 0 - 31 atau 0x00 - 0x1F
Memberikan nilai selain itu akan menghentikan sinyal pulsa motor servo.

Bukannya g mau posting coding-nya, tapi memang belum pernah mencoba mengakses motor servo melalui TPA81. Jadi Codingnya belum ku posting.
Tar lagi nyoba kok, ini lagi nunggu pesanan motor servonya.
Servo datang-program-test-lalu Posting, OK. Sabar ya..

Saya bukan tipe orang yang memposting sesuatu yang belum saya coba sama sekali.
Semoga manfaat ... ^^v...
CMIIW..

Rabu, 20 Oktober 2010

TPA81 : Waktu Sampling Pengukuran

Baca dulu :
Seperti yang sudah saya tuliskan pada post sebelumnya, sensor TPA81 adalah sensor yang dapat mendeteksi dan mengukur suhu secara simultan pada 8 titik/pixel tanpa menyentuh sumber panas tersebut. Dan berbeda dengan sensor PIR yang hanya dapat mendeteksi perubahan suhu, sensor TPA81 dapat mengukur suhu statik (suhu tidak berubah) maupun suhu dinamis.
Oleh sebab itu, sensor TPA81 baik jika digunakan untuk akuisisi pengukuran suhu (pada range tertentu >> suhu relatih rendah).

TPA81 Waktu Sampling
Sensor TPA81 memiliki waktu sampling minimal untuk memperoleh data pengukuran suhu yang valid. Pada datasheet sensor TPA81 halaman 3 tertulis sebagai berikut :



Arti pada 2 kalimat terakhir begini (Bhs Inggris pas-pasan) :
Register 2 - 9 adalah 8 pixel suhu / temperatur.
Akuisisi (pengambilan data) suhu dilakukan secara terus-menerus dan pembacaan akan tepat sekitar 40 mS setelah sensor berada pada posisi yang baru.

Bisa diartikan bahwa, Agar data yang diperoleh valid dan benar maka sebaiknya pengambilan data suhu pada sensor TPA81 setiap minimal 40 mS.
Masalahnya adalah sensor TPA81 memiliki 8 pixel / titik pengukuran suhu, sehingga sedikit membingungkan apakah 40 mS itu untuk setiap pixel yang terdapat pada sensor TPA81 atau 40 mS untuk seluruh pixel tersebut.

Jika 40 mS untuk 8 pixel maka waktu sampling sensor TPA81 minimal adalah 40 mS.
Sedangkan jika 40 mS untuk 1 pixel maka waktu sampling sensor TPA81 keseluruhan minimalnya adalah 40 mS x 8 = 320 mS.

TPA81 Waktu Sampling 40 mS
Saya pribadi menggunakan waktu sampling 40 mS dan codingnya sebagai berikut :








TPA81 Waktu Sampling 320 mS
Beberapa Coding yang menggunakan waktu sampling ini dan codingnya sebagai berikut :

Perbedaannya hanya pada menempatkan fungsi delay_ms(40);




Oiya terlanjur upload lg..
Loopingnya ganti tuh nilainya seperti berikut :
for (x=0; x<=7; x++)

Buru-buru + ngantuk, jadi khilaf deh..
Semoga manfaat ... ^^v...
CMIIW..

Selasa, 12 Oktober 2010

TPA81 : Mengakses dgn Protokol I2C

.
Seperti telah dijelaskan pada posting sebelumnya bahwa sensor TPA81 menggunakan protokol I2C dan memiliki koneksi interface seperti gambar disamping.
Jangan lupa menambahkan Resistor Pull Up di sisi master (Mikrokontroller) dengan nilai yang direkomondasikan 1k8 ohm.
Pastikan semua interface / hubungan antara mikrokontroller dengan sensor TPA81 telah sempurna, dan modul mikrokontroller anda juga berfungsi dengan baik.

Modul sensor TPA81 juga dilengkapi dengan pin motor Servo serta fungsi tambahan untuk mengatur sudut pergerakan motor servo tersebut. Sehingga anda cukup memberikan data sudut dalam heksadesimal dan modul TPA81 secara otomatis akan mengendalikan motor servo tersebut. Fungsi ini sangat berguna jika anda meletakkan modul sensor TPA81 pada motor servo lalu menggunakan metode scanning untuk pendeteksian / pengukuran suhu.

TPA81 Register
Sebelum ke coding, beberapa register harus di ketahui terlebih dahulu, seperti terlihat pada gambar di samping.
Hanya Register 0, 1, 2, dan 3 yang dapat di baca/tulis sedangkan register lainnya dapat di baca saja.




Register 0 memiliki 2 fungsi, jika di Tulis maka akan berfungsi sebagai register Command yang memberikan perintah data mengatur posisi motor servo. Sedangkan jika di Baca akan memberikan infomasi versi refisi software / firmware modul TPA81.

Register 1, 2, 3 digunakan untuk melakukan proses kalibrasi pada sensor TPA81 dan disarankan untuk tidak menulis pada register ini karena dapat merusak data kalibrasi yang telah di program oleh manufakturnya. Tapi tidak perlu khawatir karena terdapat proteksi untuk proses penghapusan dan penulisan kalibrasi pada register-register ini yaitu penulisan perintah sebanyak 3 byte secara berurutan yang dapat mencegah penghapusan data kalibrasi secara tidak sengaja.

Register 1 jika di Baca akan memberikan data Temperatur Ambient.
Register 2 - 9 jika di Baca akan memberikan data Temperatur Pixel 1 - Pixel 8.

Coding TPA81
Program berikut mengunakan CodeVisionAVR v2.03.9
Langkah-langkah :
  • Jalankan CoViAVR, buat project baru, dan gunakan CodeWizzard, Chip misal : ATmega8535, Clock : 11.0592 MHz.
  • Tampilan menggunakan komputer komunikasi UART, Protokol : Baudrate :9600,8N1.
  • Tampilan LCD 16 x 2 padaPortB.
  • Modul sensor TPA81 SDA : PORTC.0 dan SCL : PORTC.1

Program sebagai berikut :

Wah terlanjur Upload..
Ada yang lupa tuh..
Berikan waktu kira-kira (minimal) 40 mS sebelum membaca kembali data suhu terukur pada modul TPA81 agar datanya valid.

Ada sedikit kerancuan yang saya lihat pada beberapa Coding dan akan saya bahas di posting selanjutnya.

Semoga manfaat ... ^^v...
CMIIW..

Sabtu, 09 Oktober 2010

TPA81 Thermopile Array










Beberapa link bacaan :

Link-link d atas sudah sangat menjelaskan bagaimana cara mengakses sensor Thermopile Array. Dan saya mencoba menjelaskan dengan versi saya dan mungkin tidak jauh berbeda dengan link-link tersebut. Dan semakin banyak referensi semakin baik bukan ^^.

Thermopile Array TPA81
Sensor TPA81 adalah sensor Thermopile Array yaitu sensor yang terdiri dari 8 buah / pixel sensor panas yang tersusun secara berbaris. Setiap pixel sensor ini mampu mendeteksi cahaya inframerah dengan range 2 µm - 22 µm yaitu range yang dimiliki oleh radiasi panas. TPA81 merupakan sensor non kontak yaitu mampu mendeteksi suhu suatu benda tanpa perlu menyentuhnya.

Sensor PIR atau Sensor Pyro-electric juga merupakan sensor pendeteksi suhu (tubuh manusia) dan juga sensor non kontak akan tetapi kelemahan sensor ini adalah hanya dapat mendeteksi jika terjadi Perubahan Suhu oleh sebab itu PIR tidak dapat digunakan pada pengukur dan pendeteksi suhu statik / tetap. Jika menggunakan sensor PIR maka salah satu harus bergerak agar terjadi perubahan suhu yaitu objek-nya yang bergerak (Manusia berjalan didepan sensor PIR) atau sensor PIR-nya dibuat bergerak (dengan motor stepper / servo).

Field Of View (FOV)
Sensor TPA81 memiliki luas pandang /pendeteksian yang lebar karena dilengkapi dengan lensa dan rangkaian elektronik built in selain itu mampu mendeteksi cahaya lilin hingga jarak 2 meter tanpa terpengaruh cahaya lainnya. FOV TPA81 mencapai 41° x 6° sehingga setiap pixelnya memiliki FOV 5.12° x 6°.

Posisi Pixel pada sensor TPA81 sejajar dengan orientasi panjang PCB-nya dan pixel 1 ditunjukkan / terdekat dengan tanda tab / "topi" pada sensor Thermopile-nya seperti pada gambar disamping.





Koneksi / Interface I2C
Sensor TPA81 menggunakan komunikasi I2C (Inter Integrated Circuit) yang menggunakan 2 jalur saja yaitu SDA (Serial Data) dan SCK (Serial Clock) tetapi jangan lupa menggabungkan Ground-nya (Jika menggunakan 2 power supply). Oleh sebab itu komunkasi dengan sensor TPA81 juga menggunakan protokol I2C.

Resistor Pull Up sangat diperlukan pada jalur SDA dan SCK dengan nilai yang direkomondasikan adalah 1,8 Kohm akan tetapi saya mencoba dengan nilai 2200 ohm dan tidak ada masalah. Jika resistor Pull Up tidak terpasang maka data yang akan terbaca akan selalu konstan / sama meskipun sensor TPA81 didekatkan / dijauhkan terhadap lilin. Ketika saya mencoba tanpa resistor Pull Up, semua pixel TPA81 membaca data dengan nilai 191 ada juga yang 255 semua seperti pada link ini :
http://www.ccsinfo.com/forum/viewtopic.php?p=135506.

Karena menggunakan jalur I2C maka anda dapat memparallelkan jalur SDA dan SCK untuk mengakses perangkat I2C lainnya atau mengakses 8 buah sensor TPA81 untuk aplikasi Thermal Imaging 2 dimensi atau menampilkan pembacaan temperatur secara matriks dengan 8 x 8 = 64 pixel. Saya ingin mencoba tapi mengeluarkan biaya 8 x 1,2 juta = 9,6 juta hanya untuk ujicoba,
Wadduuuhhh....

Sensor TPA81 pada komunikasi I2C akan selalu menjadi Slave dan tidak mungkin Master. Hal yang perlu diingat jika mengakses 8 buah TPA81 adalah resistor Pull Up 1K8 ohm pada SDA dan SCK diletakkan sedekat mungkin dengan Master (Mikrokontroller anda) sehingga hanya ada 2 buah resistor Pull Up, hal ini karena pada sensor TPA81 telah terpasang resistor pull up internal dan tidak memerlukan resistor pull up tambahan.

Pada aplikasi CodeVisionAVR telah tersedia library yang berfungsi untuk mengakses komponen yang menggunakan komunikasi data menggunakan format I2C yaitu pada library I2C.h sehingga dapat mengakses dengan mudah sensor TPA81.
Untuk memahami cara komunikasi menggunakan protokol I2C, misalnya pada salah satu link berikut : http://www.robot-electronics.co.uk

Pin Do Not Connect (Jangan dihubungkan), sesuai dengan artinya jangan di hubungkan kemanapun. Pin Do Not Connect digunakan oleh pabriknya untuk memprogram mikrokontroller PIC16F88 pada modul TPA81 yaitu jalur CPU MLCR dan memiliki internal pull up.
Saya menghubungkan pin ini dan memberikan logika 1 atau logika 0 ke pin ini tapi tidak ada masalah, namun untuk amannya sebaiknya JANGAN dihubungkan (Ga tanggung jawab klo rusak lho).

Semoga manfaat... ^^v....

Topik yang Populer