2017年1月30日 星期一

[LinkIt Samrt 7688] install 7688 模擬器 in Ubuntu

1.安裝QEMU以及SquashFS套件

sudo apt-get install qemu-user-static squashfs-tools































2.如果沒有Node JS,安裝一下,記得先更新一下

sudo apt-get update











sudo apt-get install nodejs


安裝NPM

sudo apt-get install npm


































如果您是照我的裝法,使用Node JS時,需要輸入nodejs 而不是常見的node

我們來弄一下把nodejs 變成node也可以執行,否則後面會出錯

sudo ln -s /usr/local/bin/nodejs /usr/bin/node

3.透過NPM方法來安裝makerboard  


sudo npm install -g makerboard





































4.建立一個模擬環境

sudo makerboard create my7688

但是出現錯誤了 ,找不到 /usr/local/lib/node_modules/makerboard/data
























自己建一個

sudo mkdir /usr/local/lib/node_modules/makerboard/data

再來一次

sudo makerboard create my7688
















接下來執行模擬器

sudo makerboard run my7688













目前只有模擬 MPU 上的 Linux 環境,方便開發者進行軟體的開發配置和編譯,

避免板子上的效能和資源太少所造成的開發困難,並沒有硬體控制方面的模擬


參考資料:

沒有板子也可以玩的 7688 模擬器!

How To Install Node.js on an Ubuntu 14.04 server

alias of nodejs as node on 14.04

2017年1月22日 星期日

[名詞定義]Curve Fitting

Curve Fitting

曲線擬合是一種把現有數據透過數學方法來代入一條數式的表示方式。

科學和工程問題可以通過諸如採樣、實驗等方法獲得若干離散的數據,

根據這些數據,我們往往希望得到一個連續的函數(也就是曲線)或者

更加密集的離散方程與已知數據相吻合,這過程就叫做擬合 (fitting)。


方程 在笛卡兒平面上是一條直線,而這條直線的斜率a

因為任何兩點可以決定一條直線,因此總能找到次數不多於1的多項式來

串起任何兩個x值相異的點。

如果把多次式的次數增加到2
那麼只要給定x值各異的3點,總會有次數不多於2的多項式可以把它們串起。


如果把多次式的次數再增加到3

那麼只要給定x值各異的4點,總會有次數不多於3的多項式可以把它們串起。

我以3次曲線來示範,假如我有以下的點

xy
52010-3.89177
52104-2.756
52198-2.11687
52292-1.91851
52386-2.12506
52480-2.70859
52574-3.62756

用Excel畫出來圖形如下

我可以透過Curve Fitting來求出曲線上的點,以python做示範


import numpy as np
x = np.array([52010,52104,52198,52292,52386,52480,52574])
y=np.array([-3.89177,-2.756,-2.11687,-1.91851,-2.12506,-2.70859,-3.62756])
z = np.polyfit(x, y, 3)
print z

會求出4個系數,分別是a,b,c,d


[  7.52449150e-09  -1.20358144e-03   6.41491191e+01  -1.13927772e+06]

也就是

y'= 7.52449150e-09 X^3 +  -1.20358144e-03 X^2 +  6.41491191e+01 X + -1.13927772e+06


我們再用excel把x值代入求y'看看,我們就可以求得曲線上原本沒有量測到的數據的

預估值。



xy'
52010-3.89E+00
52020-3.75E+00
52030-3.61E+00
52040-3.47E+00
52050-3.35E+00
52060-3.23E+00
52070-3.11E+00
52080-3.00E+00
52090-2.90E+00
52100-2.80E+00
52110-2.70E+00
52120-2.62E+00
52130-2.53E+00
52140-2.46E+00
52150-2.39E+00
52160-2.32E+00
52170-2.26E+00
52180-2.20E+00
52190-2.15E+00
52200-2.11E+00
52210-2.06E+00
52220-2.03E+00
52230-2.00E+00
52240-1.97E+00
52250-1.95E+00
52260-1.93E+00
52270-1.92E+00
52280-1.92E+00
52290-1.92E+00
52300-1.92E+00
52310-1.93E+00
52320-1.94E+00
52330-1.95E+00
52340-1.97E+00
52350-2.00E+00
52360-2.03E+00
52370-2.06E+00
52380-2.10E+00
52390-2.14E+00
52400-2.19E+00
52410-2.24E+00
52420-2.30E+00
52430-2.35E+00
52440-2.42E+00
52450-2.48E+00
52460-2.56E+00
52470-2.63E+00
52480-2.71E+00
52490-2.79E+00
52500-2.88E+00
52510-2.97E+00
52520-3.06E+00
52530-3.16E+00
52540-3.26E+00
52550-3.36E+00
52560-3.47E+00
52570-3.58E+00
52580-3.69E+00
52590-3.81E+00
52600-3.93E+00


點多了,畫出來的曲線就比較圓滑了

我們比較一下原本有量測的y值,與Curve Fitting出來的y'值其實蠻接近的,

但仍有些許差異,求出來的點僅供參考,並非一定等於實際量測出來的值。


xyy'
52010-3.89177-3.89E+00
52104-2.756-2.76E+00
52198-2.11687-2.11E+00
52292-1.91851-1.92E+00
52386-2.12506-2.13E+00
52480-2.70859-2.71E+00
52574-3.62756-3.63E+00

y和y'圖形幾乎是疊在一起的






如果在運算過中發生異常,建議先將x及y做normalize

當我們求出a,b,c,d四個系數後,可以求得極值(X軸對應極值位置、Y軸極值的值)。





3次曲線有2個極值,所以你要判斷那一個才是你要的。例如我要找最靠近0的那一個極值。











求Xe時,需要先注意一下

 與  



是否有任何一個為0 ,若有一個為0 ,則代表我要找的極值為0,也就是原始資料中的

X軸資料52292

否則為

 或     其中一個靠近0的值

Ye為以下公式




資料來源: