LabVIEW Team Indonesia

cancel
Showing results for 
Search instead for 
Did you mean: 

Reassemble bit in VISA labview

Hallo,

saya sedang mengerjakan proyek berupa pengiriman data wireless dengan :

1. Transmitter -> Arduino+xbee S1

2. Receiver -> Xbee S1 (connect to labview)

 

koding arduino saya telah berhasil mengirim analog read dari arduino dengan xbee dan telah berhasil diterima juga oleh xbee lainnya yang menyambung ke labview melalui VISA.

namun, saya mengalami kendala pada saat penerimaan data di labview karena anaolog read di arduino 10 bit dan kemampuan xbee hanya mampu mengirim 8 bit maka saya harus membagi pengiriman menjadi 8bit dan 2bit (sampai sini belum ada masalah).

Maka dari itu, saya perlu menyusun ulang pada saat penerimaan data dari 8bit dan 2bit menjadi 10 bit, dengan catatan susunan bitnya harus 2bit diletakkan di depan 8 bit . penyusunan ulang ini saya lakukan dengan terlebih dahulu mengambil nilai max (8bit) dan min(2bit) dari array data yg saya terima, selanjutnya saya menggunakan function join number (hi&lo) yang terdapat pada numeric->data manipulation untuk menyusun ulang 2bit sbg data high dan 8bit sbg data low. Tetapi, karena saya hanya mengunakan data max dan min, nilai min yang selalu keluar adalah 0.

mungkin untuk lebih jelasnya saya akan menampilkan hasil sementara yg telah saya kerjakan dan jikalau ada yg tertarik dapat lgs menghubungi email saya secara intens (hanif.assyarify-2015@fst.unair.ac.id)

 

dan sebenarnya ada beberapa masalah lagi yg belum saya jelaskan, terutama masalah data serial yg diterima selalu bergeser (shifting) dan sulit untuk dipindah dalam suatu array.

 

0 Kudos
Message 1 of 5
(2,397 Views)

Hi HAS_03,

Sebetulnya saya kurang mengerti dengan pertanyaan yang kamu tanyakan (kalimatnya agak sedikit membingungkan). Ada yang perlu saya tanyakan untuk menjawab pertanyaan kamu, apa data yang kamu kirimkan dari Xbee S1 ke labview? Bisa diberikan contohnya? Jumlah array dalam program labview mu ada berapa?

Mungkin ada sedikit ide untuk mempermudah masalahmu, jika masalahnya dari pembacaan arduino 10bit, kenapa tidak diturunkan saja pembacaan arduino dari 8 bit. 

 

Best Regards,
Agus Yulianto

Certified LabVIEW Developer (CLD)

0 Kudos
Message 2 of 5
(2,376 Views)

Mohon maaf karena saya juga agak kesulitan dalam menjelaskan masalah saya :')

contoh:
Arduino menerima inputan analog berupa 5V -> Arduino sebagai ADC akan merubah nilainya menjadi tipe integer 1024 -> 1024 didapat dari spesifikasi analog read arduino yaitu 10bit (2^10) -> data ini akan disimpan kedalam array dengan tipe data unsigned integer 8 -> namun, sebelum disimpan dalam array data tersebut perlu diubah menjadi 8 bit dan 2 bit karena spesifikasi xbee yaitu pengiriman datanya adalah maksimal 8 bit -> kemudian data dengan nilai 1024  tadi diubah kedalam format HEX -> yang awalnya 3FF(1024) dipisah menjadi 03(2bit) dan FF(8bit) -> setelah itu baru dapat dikirimkan melalui xbee -> selanjutnya xbee yang terhubung dengan labview menggunakan fungsi VISA akan menerima data dengan format HEX tersebut secara bergantian (terkadang FF diterima pertama baru 03 atau 03 pertama baru FF) -> maka dari itu saya perlu menyatukan kembali menjadi 10 bit (3FF) -> namun setelah nilai disatukan menggunakan fungsi data manipulation join number dengan 03 sebagai data high dan FF sebagai data low, teryata nilai kiriman 2bit tidak stabil -> data 2bit yg deterima nilainya berubah ubah 00 03 00 03 00, sehingga ketika di plot menjadi naik turun (mungkin lebih jelasnya bisa saya kirimkan videonya melalui email).

 

untuk array pada labview panjangnya menyesuaikan dari byte count nya.

 

kemudian untuk masalah penurunan bacaan arduino dari 10 bit menjadi 8 bit saya tidak begitu tahu, karena memang spesifikasi dari analog read adalah 10bit dan ketika nilai tersebut malah diturunkan hanya menjadi 8 bit, maka skala bacaan akan semakin kecil dan resolusinya pun kurang bagus.  sehubungan dengan proyek yang saya lakukan berupa pengambilan data aktivitas sinyal otot listrik melalui sensor myoware (cara kerjanya mirip dengan potensiometer), maka semakin besar skala bacaan akan semakin bagus, karena perubahaan yang kecil pun akan berpengaruh saat dilakukan analisis hasil bacaan sinyalnya.

 

terimakasi,

Hanif

0 Kudos
Message 3 of 5
(2,369 Views)

Mohon maaf karena saya juga agak kesulitan dalam menjelaskan masalah saya :')

contoh:
Arduino menerima inputan analog berupa 5V -> Arduino sebagai ADC akan merubah nilainya menjadi tipe integer 1024 -> 1024 didapat dari spesifikasi analog read arduino yaitu 10bit (2^10) -> data ini akan disimpan kedalam array dengan tipe data unsigned integer 8 -> namun, sebelum disimpan dalam array data tersebut perlu diubah menjadi  8 bit dan 2 bit karena spesifikasi xbee yaitu pengiriman datanya adalah maksimal 8 bit -> kemudian data dengan nilai 1024  tadi diubah kedalam format HEX -> yang awalnya 3FF(1024) dipisah menjadi 03(2bit) dan FF(8bit) -> setelah itu baru dapat dikirimkan melalui xbee -> selanjutnya xbee yang terhubung dengan labview menggunakan fungsi VISA akan menerima data dengan format HEX tersebut secara bergantian (terkadang FF diterima pertama baru 03 atau 03 pertama baru FF) -> maka dari itu saya perlu menyatukan kembali menjadi 10 bit (3FF) -> namun setelah nilai disatukan menggunakan fungsi data manipulation join number dengan 03 sebagai data high dan FF sebagai data low, teryata nilai kiriman 2bit tidak stabil -> data 2bit yg deterima nilainya berubah ubah 00 03 00 03 00, sehingga ketika di plot menjadi naik turun (mungkin lebih jelasnya bisa saya kirimkan videonya melalui email).

 

untuk array pada labview panjangnya menyesuaikan dari byte count nya

 

kemudian untuk masalah penurunan bacaan arduino dari 10 bit menjadi 8 bit saya tidak begitu tahu, karena memang spesifikasi dari analog read adalah 10bit dan ketika nilai tersebut malah diturunkan hanya menjadi 8 bit, maka skala bacaan akan semakin kecil dan resolusinya pun kurang bagus.  sehubungan dengan proyek yang saya lakukan berupa pengambilan data aktivitas sinyal otot listrik melalui sensor myoware (cara kerjanya mirip dengan potensiometer), maka semakin besar skala bacaan akan semakin bagus, karena perubahaan yang kecil sangat berpengaruh

0 Kudos
Message 4 of 5
(2,367 Views)

Hai HAS_03,

 

Jadi XBee langsung terhubung dengan Labview. Untuk programming xbee, saya kurang mengerti bagaimana caranya. 

Mungkin akan saya jelaskan untuk komunikasi serial di labview. Contohnya saya pakai arduino langsung, untuk komunikasi serial biasanya pakai Serial.println, dari labview sendiri data yang dibaca berdasarkan jumlah byte(input bytes read) atau paling gampang menggunakan termination karakter. Di arduino Serial.println, (ln) merupakan termination character enter, jadi ketika di labview di setting termination character enter, maka secara otomatis visa read akan membaca data sampai ketemu termination karakter enter. Misal membaca analog input arduino 10 bit, tidak perlu kirim 2 data kemudian di join number, cukup kirim sekali dengan termination karakter. Termination karakter juga tidak hanya enter, bisa di setting sesuai keinginan.

 

Biasanya kalau ada yg terbaca 00 bytes read nya tidak sesuai dengan data yg dikirim atau termination karakter nya salah. Saran saya ubah pembacaan dari labview ke termination karakter. Data yang terbaca tinggal di konvert dari string ke numerik. 

0 Kudos
Message 5 of 5
(2,359 Views)