顯示具有 LinkIt Samrt 7688 標籤的文章。 顯示所有文章
顯示具有 LinkIt Samrt 7688 標籤的文章。 顯示所有文章

2017年9月16日 星期六

「LinkIt Samrt 7688][Arduino] 7688與Arduino Nano USB通訊

最近有一個需求,讓7688與Arduino透過USB通訊,想到的解法是Arduino本身的USB

預設為USB to Serial,只要能讓7688上的OpenWRT支援USB to Serial晶片驅動即可。

以下做了個簡單的Demo,附上Arduino及7688上python code做個Echo 測試。

檔案_000.jpeg




















這次用的是Arduino Nano,它使用的USB to Serial是 CH340  (我這塊不是原版的)

首先我需要安裝usbutils , 讓我可以使用lsusb來詢連接的USB裝置。(可以不裝)

opkg install usbutils


接下來安裝CH340驅動程式

opkg install kmod-usb-serial-ch341


Arduino程式碼

一開始連通Serial Port時會輸出hello form Arduino

之後會回應所收到的值,做一個Echo


接下來是7688上的python程式碼

CH340裝置的名稱會是 /dev/ttyUSBx ,像我是/dev/ttyUSB0 ,換成自己裝置的名字。

一連Serial Port會傳送Hello from python ,之後會每隔一秒傳送目前時間,並印出收到的訊息。



執行結果

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

2016年5月18日 星期三

[LinkIt Samrt 7688] Using Firmata with Python


前言

Firmata是MPU與MCU之間溝通的lib,看了好幾個範例,都不能成功的控制LED閃爍 。

最後在MTK的官網看了幾遍,修改了小地方後,終於成功控制LED了。


接線

使用板子上的D13(直在嵌在板子上),所以不必接線。



Arduino Code


檔案--》Firmata--》StandardFirmata


接下來修改幾行 ,首先找到void setup() 


接下來是復活2行CODE
然候按下上傳,下方顯示紅色字是正常的,只要內容和我這一樣就沒有問題。




接下來是安裝PyFirmata


pip install pyfirmata













接下來是7688上的程式碼

 建立一個blink_with_fimata.py


vi blink_with_fimata.py

 打上以下內容後存檔
from pyfirmata import Arduino, util
from time import sleep
 
board = Arduino('/dev/ttyS0')
print "Start blinking D13"
while True:
    board.digital[13].write(1)
    sleep(0.5)
    board.digital[13].write(0)
    sleep(0.5)  

接下來執行它

python blink_with_fimata.py 

當你看到下面這行字時,你的LED應該己經在閃爍了。








參考資料


玩IOT(8) -利用 Firmata PyFirmata函式庫讓7688 MPU和 Arduino MCU 溝通http://draw-bruce.blogspot.tw/2016/01/iot8-firmata-pyfirmata7688-mpu-arduino.html

Using Firmata with Python

2016年5月10日 星期二

[LinkIt Samrt 7688]webcam Stream

0.將Wi-Fi 切到7688的SSID

1.將USB OTG  線接在7688沒有缺口那一邊的USB,並連接webcam









































2.ssh 進去7688

ssh root@my7688_Ip

3.輸入

mjpg_streamer -i "input_uvc.so -f 20 -d /dev/video0" -o "output_http.so" 

-i : 處理輸入的程式

-f: 每秒張數,建議在20以上看起來畫面會比較流暢
 (如果是要PO在外網,可能要考卜心心田一下張數)

-d: Device ,這是指向要用的Webcam位置。

-o:處理輸出的程式

如果你執行程式後看到如下方的資訊,恭喜你成功了。


root@mylinkit:~# mjpg_streamer -i "input_uvc.so -f 20 -d /dev/video0" -o "output
_http.so" 
MJPG Streamer Version: svn rev: exported
 i: Using V4L2 device.: /dev/video0
 i: Desired Resolution: 640 x 480
 i: Frames Per Second.: 20
 i: Format............: JPEG
 i: TV-Norm...........: DEFAULT
 o: www-folder-path...: disabled
 o: HTTP TCP port.....: 8080
 o: username:password.: disabled
 o: commands..........: enabled

4.接下來打開瀏覽器輸入下列網址

http://mylinkit.local:8080/?action=stream

























其實影像還蠻順的。

5.透過APP 同步播放,也很順。

到Google Play 下載一個  SimpleMjpegView

設定值如下,之後按下Done即可,但我測試發現,不是每一支webcam

都可以在web上正常顯示。




























參考資料:

7688 影像串流功能
http://oranwind.org/-linkit-smart-7688-7688-chuan-jie-webcam/


mjpg_streamer 指令參數說明

http://skillfulness.blogspot.tw/2010/03/mjpg-streamer-documentation.html


SimpleMjpegView

https://play.google.com/store/apps/details?id=com.tk.android.simplemjpeg

2016年4月24日 星期日

[LinkIt Samrt 7688]MPU與MCU溝通方式


7688 Duo 有2個核心 , MT7688 與ATmega,

  MT7688上跑的是是OpenWRT ( MPU) ,

 而ATmega則是如同常見的Arduino (MCU) 。


















MPU 的運算能力較強,運行了一個Linux核心,

而MCU的運算能力不強,你可以把它當Arduino使用。

但透過MCU,7688可以獲得Arduino的功能。


MPU與MCU溝通



1.MPU 與MCU之間可以透過透過UART來溝通,但這樣你必須要在MPU與MCU皆寫上程式,並且處理UART相關的通訊,這樣做的好處是你有最大的彈性去處理MPU與MCU之間的通訊。

2.透過Firmata協定:

Firmata 是一個 MCU 與 MPU 之間的通訊協議。至今許多Firmata 實行普及化因為它的彈性很高,因此對熟悉 Python, Node.js 或 C 語言編程的開發者來說是一種方便,他們能選擇語言來編程 MPU 軟件,然後使用 Firmata 來執行 MPU 與 MCU 之間的通訊而不必再替 MCU 編程軟件完成該通訊。


這樣你只需要將Firmata的程式燒錄進MCU,之後直接在MPU上寫程式控制I/O。


3.透過Arduino Yun Bridge Library

用這種方式的話,MPU的角色像是個黑盒子,只負責提供Wi-Fi及USB功能。整個7688 Duo

的角色會非常的類似Arduino Yun。


參考網址:

http://www.makerzoo.com/artdetail/b745a3d9daa6480983eb4e705b5b8ba3

http://draw-bruce.blogspot.tw/2016/01/iot8-firmata-pyfirmata7688-mpu-arduino.html

[LinkIt Samrt 7688] Arduino IDE 編譯失敗

最近剛好要用Firmata ,所以想要燒東西進去MCU內,但無論怎樣都會編譯失敗,

即使是空空的只有一個Setup()和Loop(),一樣的錯誤訊息,





















查詢了網上後,發現是USBCore.cpp中出了錯。

只要將USBCore.cpp中的430行


auto length = len;   改成  int length = len;

以及435行

auto recvLength = length;  改成 int recvLength = length; 

之後存檔,重新編譯即可正常。


註:有些時候USBCore.cpp的檔案位置可能會在(我把Arduino放在應用程式裡)

/Applications/Arduino.app/Contents/Java/hardware/arduino/avr/cores/arduino/USBCore.cpp 

環境

MAC OSX  11.0

Arduino IDE  1.6.8

MediaTek  LinkIT Smart Boards  0.1.6


參考網址:


2016年4月20日 星期三

[LinkIt Samrt 7688] Arduino IDE 板子管理員找不到7688

如果在Arduino版子管理員找不到7688的身影,可以試試以下作法

1.開啟Perferences


2.在額外的版子管理員網址打上

http://download.labs.mediatek.com/package_mtk_linkit_smart_7688_test_index.json

3.開啟版子管理員


4.安裝一下 LinkIt Smart 7688 Duo by Seed Studio and MediaTek Labs
5.之後再看一下版子,就會出現7688的選項了
參考資料:

2016年4月17日 星期日

[LinkIt Samrt 7688] 更新Firmware

看到Blue大大在網路上轉貼7688更新Firmware並解決之前USB速度問題,

決定更新Firmware.

0.到以下網址下載Firmware

https://labs.mediatek.com/site/global/developer_tools/mediatek_linkit_smart_7688/sdt_intro/index.gsp




1. 先連進7688的WEB UI,找到Software information ,點下UPGRADE FIRMAWARE


2.然候點擊 "Chose the file"


3.接著選剛才下載的lks7688.img,然候點選UPGRAD & RESTART
4.此時正在由你的電腦將更新檔傳送到7688
5.更新前的通知,告知你WI-FI燈號會快速閃爍,整個過程大約要3分鐘,接著按下OK
6.升級完成後,重新連進WEB UI,你就會發現Firmware Version變成最新的v0.9.3了。


















參考資料:
https://iamblue.gitbooks.io/linkit-smart-nodejs/content/zh-TW/intro/update_firmware.html

2016年1月27日 星期三

[LinkIt Samrt 7688] 初始化設定


前言


小弟買的是7688 Duo 搭配Arduino Breakout for LinkIt Smart7688 Duo 

















所以可以直接對擴充版上的micro USB進行供電(上面寫很清楚的寫了PWR),




如果要直接對7688供電,請注意只能對有缺角那一邊的USB供電7688才可以WORK



初始化


打開Wi-Fi選單會看到LinkIT_Smart_7688_XXXXXX,連上它。










連上之後你會看到7688上的WI-FI 橘色燈閃爍

























打開Chrome輸入http://192.168.100.1/,會出現要求你設定一個密碼後按下SUBMIT










































之後會再出一次輸入密碼畫面,輸入剛才改的新密碼後按下Sign IN






































首先是一些基本資訊



































切到NetWork這邊,會看到目前是AP mode,也就是這塊版只能由

切換SSID來連入,而無法與InterNet連線。































SSH連線


接下來透過SSH來連入7688,開啟終端機或是putty ,輸入 ssh root@192.168.100.1  ,

密碼剛是上述所設定的。






















看到這個畫面代表你己經成功了。




參考資料:

http://blog.cavedu.com/%E7%89%A9%E8%81%AF%E7%B6%B2/linkit/linkit-smart-7688-%E9%96%8B%E7%99%BC%E7%92%B0%E5%A2%83%E8%A8%AD%E5%AE%9A%E8%88%87ssh%E7%99%BB%E5%85%A5/

[LinkIt Samrt 7688] 切換成Station mode



切換成STA Mode



也可以把它切換成Station Mode 就可以連上家裡的Router上Intenet
輸入密碼

 之後你就看不到它的SSID了。












找到7688的IP


方法1 . 連進家裡的Router找一下被配到那一個IP,看起來只有一個Unknown最有可能了。












方法2.  ping 廣播封包位置 ,例如你的網段為 192.168.0.x

則 ping 192.168.0.255 ,但這個方法可能會被Router禁用,

最後就會變成只有本機回應你。

方法3. 透過nmap  這種軟體來找尋區網內的裝置。


真的找不到的話,按著7688 DUO 上面的Wi-Fi按鈕(3顆鈕中間那顆)五秒鐘,

就會回復成AP MODE了。