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

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

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

注意這function是不能做外插的

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

 

文章標籤

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

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

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

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

擷取2

 

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

文章標籤

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

要進行和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
  3. Serial port directly read/write

前兩種都是把LabVIEW的控制韌體燒進Arduino再經由LabVIEW寫的程式和韌體溝通,也就是說必須把原本裡面的韌體洗掉。若是新的專案,可以不用一有程式變更就要重燒韌體,開發和debug比較方便。但考量到泛用性以及原本的韌體已經開發完成的狀況,經由serial port溝通會是較好的選擇。

LIFALINX這兩個模組都是經由JKI VI package manager (aka VIPM)下載安裝,這個管理程式基本上在安裝LabVIEW時必須一併安裝,因為它不友善舊電腦,官網只有放最新版。安裝好後LIFA會放在Arduino分類,LINX會放在Makerhub分類。

基本上LIFA目前NI官方已不再維護,並以LINX取代,但這邊還是紀錄一下如何建構開發環境及會遇到的問題解法。

文章標籤

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

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

HDF5多用在大量數據處理

 

在Python 3.8安裝h5py

直接用 pip install h5py 安裝會報錯

必須改用 pip install versioned-hdf5

文章標籤

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

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) 人氣()

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

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

123

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

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

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

文章標籤

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

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

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

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

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

 

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

文章標籤

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

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

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

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

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

 

程式用sequence結構

文章標籤

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

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

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

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

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

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

image

文章標籤

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

1 2345