image

基本上LabVIEW有內建了內/外插的VI

在Mathematics --> Interp & Extrap --> Interpolate 1D.VI

另外可以用Program-->Array裡的Interpolate 1D function

注意這function是不能做外插的

輸入原始資料範圍外的X, 會回傳Y array的邊緣點

Anarchi2010 發表在 痞客邦 留言(0) 人氣()

擷取2

首先是官方最推薦的方法, 效率最高

先初始化一個已知大小的array, 然後再把指定index的元素取代成我們要的數值

像是下圖這樣的程式生成一個從0遞增有6千萬個元素的array需要約~4.3sec

但是很多狀況下是不會知道程式執行下去最後會有多少元素

build array function的使用機會還是非常多

Anarchi2010 發表在 痞客邦 留言(0) 人氣()

rtaImage

要進行和Arduino的連線,首先安裝LabVIEW(建議2012之後的版本)然後安裝NI-VISA,我的系統是VISTA,能使用的最新版本VISA15.5版  (btw2012VISTA SP2可以支援的最新版488.2 driver15.5)

再來是讓電腦可以認得Arduino,如果是買便宜版Arduino,有可能插上去無法辨識。因為它用的是CH340系列晶片,要自己下載driver,檔名為CH341SER.EXE

經由LabVIEW控制Arduino的三種途徑如下:

  1. LabVIEW Interface for Arduino (aka LIFA)

  2. Degilent LINX

Anarchi2010 發表在 痞客邦 留言(0) 人氣()

h5py是python用來生成HDF5文件的模組

HDF5多用在大量數據處理

在Python 3.8安裝h5py

直接用 pip install h5py 安裝會報錯

必須改用 pip install versioned-hdf5

Anarchi2010 發表在 痞客邦 留言(0) 人氣()

simple_server

LabVIEW做最基本的TCP/IP資料傳輸和可能遇到的問題處裡

準備兩個VI, 分別是傳輸端(TX)和接收端(RX)

流程是: TX先啟動等待連線-->RX建立連線-->TX送出資料-->RX接收資料-->結束

詳細說明如下:

傳輸端利用TCP listen來建立一個listner(或server)等待接收端連線

Anarchi2010 發表在 痞客邦 留言(0) 人氣()


NI官方論壇有一則貼文發佈了手動安裝LINX的流程

https://forums.ni.com/t5/LabVIEW/LINX-3-0-on-the-Raspberry-Pi-2-3-and-4-running-Raspbian-Buster/td-p/3967891?profile.language=zh-TW

可以讓Pi 2B, Pi 3A+, Pi 3B, Pi 3B+, Pi 4...等等都可以和Labview連上

使用的Labview版本也不再限於2014版

首先按正常流程安裝hRaspbian Buster (我在Jessie和stretch試過也沒問題)

Anarchi2010 發表在 痞客邦 留言(1) 人氣()

123

最近寫了個比較需要運算的程式

發現自己的select用法會造成無謂的效率降低

我想要某個數字經由判斷式來決定要不要加入array,因為想要讓程式在同一頁就用了select

結果不管要不要加入array都會跑一次build array

造成array副本每個loop都大量被複製並存到記憶體

Anarchi2010 發表在 痞客邦 留言(0) 人氣()

Hanoi_1

遞迴是個有點難理解的程式寫法

階層的程式解還是難以令人完全掌握其用法

我嘗試著用更多不同的題目來理解遞迴並用Labview的寫法重現

關於遞迴的設定在 Labview裡的遞迴(Recursion) 裡有清楚的說明

河內塔是三根竿子其中一根放了尤小到大N片有洞金片

Anarchi2010 發表在 痞客邦 留言(0) 人氣()

image

首先把把FP大小設定為W450 * H500,要用到的物件、訊息框全部擺上FP,

除了遊戲中不會再變更位置的物件都要先放到預定的位置

這邊要稍微調整一下各物件階層關係,避免物件移動時意外被遮蓋

背景部份用兩張一樣的圖交替,圖必須設定為最下層

程式用sequence結構

Anarchi2010 發表在 痞客邦 留言(0) 人氣()

image

Labview並沒有檢測元件overlap的功能,所以每個loop都要檢查所有障礙是否和球碰撞

首先檢查球是否位於障礙物1, 2之間的區域,上下障礙物X軸位置是一致的

如果是再近一步檢查求上緣小於3的位置或下緣小於4的位置

若其中一項成立則判定碰撞結束程式

另外若障礙物4的位置通過球到球的左側,就可以判定通過這一組障礙

Anarchi2010 發表在 痞客邦 留言(0) 人氣()

image

LabVIEW FP物件並不能被消滅(至少我沒找到) 只能被隱藏

所以一開始就要布置在FP上而且要盡可能重複使用

FP上物件的位置可以從property取得, 同理也用property控制

FP往下是Y+,往右是X+, 利用while loop, 每個loop都改變一點位置

加上適當的delay即可製造出物件移動的錯覺

Anarchi2010 發表在 痞客邦 留言(0) 人氣()

image

最近有人問LabVIEW能不能寫出flappybird那樣的東西

身為不務正業之人肯定要試一下的

概念上這個程式不難

我希望遊戲的呈現是執行後有個標題畫面, 球(或鳥)會在視窗中央上下飛翔

開始後有上下兩排障礙往左移動, 控制球避開障礙, 每避過1個加1分

Anarchi2010 發表在 痞客邦 留言(0) 人氣()

1 2 3 4
Blog Stats
⚠️

成人內容提醒

本部落格內容僅限年滿十八歲者瀏覽。
若您未滿十八歲,請立即離開。

已滿十八歲者,亦請勿將內容提供給未成年人士。