SlideShare a Scribd company logo
高階圖形化介面機器人研習
課程大綱
日 期    時     間               課 程 內 容

                    LabVIEW 環境簡介
                    了解 LabVIEW 資料流概念
                    人機界面/程式碼介紹
      09:00~12:00
                    LabVIEW NXT函式總覽
第
                    編輯LabVIEW程式技巧
一
                    LabVIEW程式除錯工具
天
                    迴圈結構: For loop, While loop
                    遞迴概念與暫存器(Shift Register)
      13:00~16:00
                    LabVIEW裡的判別與抉擇 (Case)
                    NXT感測器和馬達應用
課程大綱

                  陣列與叢集: 掌握資料的第一步
                  圖表的應用與資料分析
    09:00~12:00
第                 字串和檔案存取
二                 狀態機
天


                  Android 手機程式設計
    13:00~16:00
                  使用Google App Inventor
LabVIEW 環境簡介
LabVIEW 優點
• 直覺式程式設計

• Multithreading,平行處理迴圈

• 許多現成函式庫 (視覺,馬達控制,I/O)

• 可以和其他程式環境結合
  – C,Matlab,.NET,ActiveX …

• 程式可移植到不同平臺執行

• Windows, Mac, PDA, FPGA …
LabVIEW 有那些種類的函數可以使用?
• 輸入和輸出
 –   信號與資料模擬                              Express Functions Palette
 –   使用DAQ擷取及產生真實信號
 –   Instrument I/O Assistant (序列與GPIB)
 –   ActiveX,用於和其它程式通訊
• 分析
 –   信號處理
 –   統計
 –   高級數學與公式
 –   連續時間解算器(Continuous Time Solver)
• 視覺/馬達控制
 – PID,Fuzzy
LabVIEW 的應用領域
       • 業界量測與自動化標準
       • 圖形化概念
       • 豐富函式庫,包含:
         – 視覺檢測
         – 運動控制
         – 資料擷取
         – 儀器控制
         – 進階運算
         – 報表產生
         – 和更多 …
       • 整合週邊軟硬體和其他工具
LabVIEW 圖形化程式環境
LabVIEW 歡迎畫面
開始»所有程式»National Instruments LabVIEW

      歡迎畫面:

從空白VI開始:
New»Blank VI

         or
從範例開始:
Examples»Find
  Examples…
LabVIEW的程式稱為虛擬儀器 (Virtual Instrument,
VI)
每個VI都有兩個視窗:
人機界面 (Front Panel)
• 使用者界面(UI)
 – Controls = 輸入埠
 – Indicators = 輸出埠



程式區 (Block Diagram)
• 圖形化程式碼
 – 由資料流 (Dataflow) 來決定程式流程
Front Panel

(Drag and drop to front panel)
                                               自訂面板檢視
    Control: 控制元件




                                 Indicator: 顯示元件
Block Diagram

             (Drag and drop to block diagram)




函式,迴圈,程式結構
如何更改可視視窗
    左邊:
    Programming
    NXT Robotics

    右邊:
    Programming
    NXT Robotics
工具 (Tools) 面板
    • 建議:自動選擇工具 (Automatic Selection Tool)
    • 用於操作及修改人機界面和程式區物件的工具



                   自動選擇工具


          在以下工具中進行選擇:

               操作工具

               定位/改變大小工具

               標籤工具

               接線工具
狀態(Status)工具欄


     執行按鈕

     連續執行按鈕

     放棄執行


  額外按鈕:
          執行標示按鈕
          保留接線值按鈕
          步進函數按鈕
Dataflow: LabVIEW 核心概念
Dataflow (資料流)
• 要駕馭 LabVIEW,一定要
  清楚 dataflow
• LabVIEW 執行順序
  – 要看資料是怎麼流的
  – 資料左進右出

• VI 從左邊接受到所有的
  input資料,VI才會執行
• VI 執行完,將會從右邊
  輸出 output資料
Dataflow (資料流)
• Ex:
LabView  with Lego NXT
LabVIEW EE NXT Setup
• 進行習題之前,先確認 NXT已連
  線
• Tools  NXT Tools  NXT
  Terminal
• 需要更新 NXT firmware -> 1.28
Example Finder
• 搜尋範例程式的好幫
  手

• Help  Find Examples

• NXT Robotics 資料夾
Exercise 1: Hello World
• Display -> Hello World.vit




• 用 Highlight Execution 了解資料流
LabVIEW 的資料類型
LabVIEW NXT 函式總覽
LabView  with Lego NXT
NXT Programming
• LabVIEW 程式的基礎元件
 – 迴圈,抉擇
 – Array,String,File I/O
 – 布林判斷
 – Delay 函式
NXT I/O
• 控制 NXT 的函式
 – Motors
 – Sensors
 – Display
 – Sound
 – Log Data
 – Advanced
如何切換Direct / Remote
Behaviors
• 現成的程式碼片段,來模擬一些動作
 – Lurch (走走停停)
 – Swerve (左晃右晃)
 – Snake (蛇行)
 – Move to Zero (馬達歸零)
 – Position Control (馬達定位)
 – Follow a Line (循跡)
 – Save Light to File (紀錄光值)
 – Drive While Sampling Light (邊走邊紀錄光值)
TETRIX
• 控制 TETRIX 擴充套件的函式庫
Exercise 2: 擷取 NXT Light Sensor
• Sensors -> Graphing_Sensor_Values.vit




• 如果用 Touch sensor 該如何修改程式?
LabVIEW 程式設計技巧
幾個準則
• 線,儘量不要彎
 – 避免程式雜亂
Context Help 視窗
• Help  Show Context Help,或 Ctrl+H
• 把滑鼠浮過欲查詢的 VI


更詳細的說明:
 – 在 VI上按右鍵,選擇 “Help”

 – 可以從 Context Help 視窗選擇
   “Detailed Help”
小技巧

• 鍵盤快捷鍵 Shortcuts
 – <Ctrl+H> – 叫出 Context Help 視窗
 – <Ctrl+B> – 清除所有斷線
 – <Ctrl+E> – 從 Front Panel 和 Block Diagram
   互相切換
 – <Ctrl+Z> – Undo
LabVIEW 程式除錯工具
除錯工具
• 查看程式問題點
                 當程式有錯誤的時候,執行按鈕會有「斷箭」
                 按下「斷箭」則可以顯示程式錯誤點
• Execution Highlighting
                  程式會以「慢動作」顯示資料流向清楚
                  呈現

• Probes
                  程式執行時,可以在資料線上按下左
                  鍵,來查看此線的資料
迴圈結構:For loop, While loop
迴圈 (Loop)
                     While 迴圈
• While 迴圈
  –  接點計算重複執行次數
  – 至少執行一次
  – 一直執行到滿足停止條件
    為止


• For 迴圈                 For 迴圈
  – i 接點計算重複執行次數
  – 根據計數接點的輸入埠 來
    執行
繪製迴圈
          2. 圈選要重複執行的程式碼


1. 選擇結構




          3. 拖拉其它的節點並完成接線
Exercise 3
• Structures -> Loop_infinitely




• 該怎麼改成用 for loop?
暫存器(Shift Register) – 暫存器
• 可在迴圈結構的左邊框或右邊框使用

• 在邊框上按滑鼠右鍵,選擇 Add Shift Register
• 右側接點會在迴圈執行完畢時儲存資料
• 左側接點輸出上次迴圈的資料


 初始值                                 值3



迴圈開
始之前
         第一次        第二次執       最後一
         執行         行          次執行
Exercise 4
• Structures -> Shift_Register_Counting
如何進行抉擇?
1. Case 結構




2. Select
Exercise 5
• Motors -> Case_Structure_Motor_Control
NXT 感測器與馬達應用
Exercise 6
• Sensors -> Use_Value
Exercise 7
• Motors -> Front_Panel_Steering_Control
假設情境:
• 早上起來懶洋洋的,懶得起床把電燈打開
  。是否可以寫個程式,當拍手一下電燈就
  會從暗到亮,再拍一下會從亮到暗,而一
  直連續下去?
提示
• 當你發現程式在多處會重複的時候 …
 – 該用迴圈了
• 當你發現迴圈需要記住上一次迴圈的狀態
 – 該用 Shift Register 了
不如先由 Flowchart 開始規劃
                開始



          擷取麥克風音量


                           yes
            大於界限?                將燈泡反向

           no


            Stop 按鈕?
     no
                     yes
                結束
一個做法 …




• 有其他做法嗎? 請和其他同學分享你的想法
  !
Array:陣列
Array
• 將同類型的資料集合成一個群組
 – 可以有不同維度,例如 1-D ,2-D 等等 …
 – 收集資料,方便做後續分析或呈現




• 如何建立陣列?
建立 Array

在 NXT Robotics» Array and
Cluster,選擇 Array圖示


    將它放在人機界面上。
建立 Array
將其他資料形態放入 Array 框中,例如要數字的 Array ,
就把數字的 Control 或 Indicator 放進去
使用迴圈建立 Array
                         啟動自動索引
• 自動索引
                                  接線變粗
 – “Auto-Indexing”
 – 開啟時,迴圈會自動把
   裡面的資料整理成 array                  1D 陣列

 – 關閉時,迴圈只會輸出
                                    0 1 2 3 4 5
   最後一筆資料
                         關閉自動索引
 – 在節點上按右鍵,可以                     接線保持原樣
   選擇 Enable 或 Disable
   Auto-Indexing

                                       只有一個值(最後一次
                                       執行)被傳出迴圈
                                   5
有了 Array,就能夠分析並處理
• Sort Array
• Reverse Array
• Search Array
Exercise 8
九九乘法表
Graphs and Charts
Graphs and Charts
• Graph
   – 適合顯示 array
   – 不會累計資料,上次顯
     示的 array 會被這次的資
     料覆蓋


• Chart
   – 適合顯示單筆資料
   – 有 history 記憶體,可以
     累計資料
Exercise 0
• Sensors -> Uploading_Data_to_Graph




• 可不可以在迴圈裡加個 Chart 來顯示即時資料?
Cluster (叢集) 簡介
• 將資料集合在一起的資料結構
• 資料可以是不同類型
• 相當於 C 的 struct
• 元件必須都是 control 或 indicator
• 可以想像綁成一條電纜的電線
建立叢集
1.   選擇一個叢集邊框。
在 NXT Robotics» Array and Cluster,選擇 Cluster
                                 2. 將物件放入邊框裡。
資料擷取與分析
Log (Red) Dataset
• NXT 內建三個記憶體空間
  – Red, Blue, Green

• 選擇記憶體空間

• 定義 Sample Time
  – 資料點之間的時間差

• 定義 Time
  – 整體作業時間
另外一個方法
• Log Dataset 會等到所有資料都抓到之後才
  執行完畢
• 如何讓迴圈裡其它函式繼續執行?
讀取資料:Data Viewer
Exercise 10
• Data Logging -> Multiple_Data_Sets
加入搖桿/滑鼠來控制機器人
Web Publishing Tool
• Step1︰開啟vi檔,選擇 Tools→
  Web Publishing Tool
• Step2︰啟動 Start Web Server
• Step3︰選擇 Save to Disk
• Step4︰程式將顯示此網頁的網址
  (http://yourpcIP/檔名.htm)。
• Step5︰用瀏覽器開啟網址,進行
  遠端控制動作。
結語與討論




        72

More Related Content

PPTX
glTF Update with Tony Parisi WebGL Meetup August 2013
PPTX
glTF and the WebGL Art Pipeline March 2015
PPTX
OTOY Presentation - 2016 NVIDIA GPU Technology Conference - April 5 2016
PDF
Legacy code 讀書會 1st (Ch1 - Ch5)
PDF
Foundation of software development 1
PDF
CNN_Image Classification for deep learning.pdf
 
PDF
Tcfsh bootcamp day2
PDF
Foundation of software development 2
glTF Update with Tony Parisi WebGL Meetup August 2013
glTF and the WebGL Art Pipeline March 2015
OTOY Presentation - 2016 NVIDIA GPU Technology Conference - April 5 2016
Legacy code 讀書會 1st (Ch1 - Ch5)
Foundation of software development 1
CNN_Image Classification for deep learning.pdf
 
Tcfsh bootcamp day2
Foundation of software development 2

Similar to LabView with Lego NXT (20)

PDF
淺談系統監控與 AWS CloudWatch 的應用
ODP
Java 網路程式
PDF
人機作業分析 man machine chart
PDF
使用 Pytest 進行單元測試 (PyCon TW 2021)
PDF
Data Analyse Black Horse - ClickHouse
PPTX
IOS入门分享
PPTX
Study4.TW .NET Conf 2018 - Fp in c#
PDF
Ops as Code using Serverless
PDF
C/C++调试、跟踪及性能分析工具综述
PDF
Refactoring with Patterns in PHP
PDF
服务器基准测试-叶金荣@CYOU-20121130
PDF
Java Jdk6学习笔记[Ppt]
PDF
Sheepdog内部实现机制
PDF
从运维系统的开发谈安全架构设计
PPT
2014/02: 嵌入式測試驅動開發
PDF
未来网络技术发展探梦 - 开篇
PDF
Vlog02 [eng sub]什麼是controller和如何在asp.net核心中創建controller?-what is controller ...
PPTX
[students AI workshop] Pytorch
PDF
不断归零的前端人生 - 2016 中国软件开发者大会
PPT
The way to continuous delivery
淺談系統監控與 AWS CloudWatch 的應用
Java 網路程式
人機作業分析 man machine chart
使用 Pytest 進行單元測試 (PyCon TW 2021)
Data Analyse Black Horse - ClickHouse
IOS入门分享
Study4.TW .NET Conf 2018 - Fp in c#
Ops as Code using Serverless
C/C++调试、跟踪及性能分析工具综述
Refactoring with Patterns in PHP
服务器基准测试-叶金荣@CYOU-20121130
Java Jdk6学习笔记[Ppt]
Sheepdog内部实现机制
从运维系统的开发谈安全架构设计
2014/02: 嵌入式測試驅動開發
未来网络技术发展探梦 - 开篇
Vlog02 [eng sub]什麼是controller和如何在asp.net核心中創建controller?-what is controller ...
[students AI workshop] Pytorch
不断归零的前端人生 - 2016 中国软件开发者大会
The way to continuous delivery
Ad

More from CAVEDU Education (20)

PPTX
Google TPU Edge SBC_190424
PPTX
From computational Thinking to computational Action - Dr. Hal Abelson, MIT Ap...
PPTX
180321 MIT見聞分享
PPTX
BBC Micro:bit beginner project
PPTX
LINE Messaging API with LinkIt 7697
PDF
Latte panda workshop_japan
PPTX
拿鐵熊貓外殼設計0707
PPTX
LinkIt 7697 outer case - DesignSpark Mechanical / Onkscape
PPTX
170615 國中小自造者教育師資培訓營
PPTX
170522_Raspberry Pi 相容開發板
PPTX
LinkIt 7697 IoT tutorial
PPTX
Maker Movement and Education in Taiwan
PPTX
物聯網教學與上海深圳maker行
PDF
PDF
IBM以雲端技術與物聯網創新產業應用@2016 New Taipei Maker Faire
PDF
AAEON 當創客碰上UP板 - Intel Cherry Trail 高效能maker開發者平台@2016 new taipei maker faire
PPTX
物聯網好棒棒 您專屬的IoT私有雲平台
PPTX
絕地武士心靈控制家用雲端智慧型物聯網光劍搭載無線路由器光劍底座Final
PPTX
LinkIt ONE tutorial #1- Basics
PPTX
LinkIt ONE tutorial #2- Communication and cloud service
Google TPU Edge SBC_190424
From computational Thinking to computational Action - Dr. Hal Abelson, MIT Ap...
180321 MIT見聞分享
BBC Micro:bit beginner project
LINE Messaging API with LinkIt 7697
Latte panda workshop_japan
拿鐵熊貓外殼設計0707
LinkIt 7697 outer case - DesignSpark Mechanical / Onkscape
170615 國中小自造者教育師資培訓營
170522_Raspberry Pi 相容開發板
LinkIt 7697 IoT tutorial
Maker Movement and Education in Taiwan
物聯網教學與上海深圳maker行
IBM以雲端技術與物聯網創新產業應用@2016 New Taipei Maker Faire
AAEON 當創客碰上UP板 - Intel Cherry Trail 高效能maker開發者平台@2016 new taipei maker faire
物聯網好棒棒 您專屬的IoT私有雲平台
絕地武士心靈控制家用雲端智慧型物聯網光劍搭載無線路由器光劍底座Final
LinkIt ONE tutorial #1- Basics
LinkIt ONE tutorial #2- Communication and cloud service
Ad

Recently uploaded (16)

PDF
學會學LHTL榮譽作業:結合實驗與理論學習(製作者:陽明交通大學醫學二年級馬品婷)
PPTX
3分钟读懂贵湖大学毕业证U of G毕业证学历认证
PPTX
3分钟读懂加州大学欧文分校毕业证UCI毕业证学历认证
PPTX
3分钟读懂肯塔基大学毕业证UK毕业证学历认证
PPTX
3分钟读懂滑铁卢大学毕业证Waterloo毕业证学历认证
PPTX
A Digital Transformation Methodology.pptx
PPTX
3分钟读懂佩珀代因大学毕业证Pepperdine毕业证学历认证
PPTX
3分钟读懂渥太华大学毕业证UO毕业证学历认证
PPTX
3分钟读懂圭尔夫大学毕业证U of G毕业证学历认证
PDF
想要安全提高成绩?我们的黑客技术采用深度伪装和多层加密手段,确保你的信息安全无忧。价格公道,流程简单,同时提供全面的信息保护和事后痕迹清理,让你轻松提升G...
PPTX
《HSK标准教程4下》第15课课件new.pptx HSK chapter 15 pptx
PDF
黑客技术,安全提分不是梦!我们采用最新的数据破解和隐藏技术,精准定位并修改你的成绩,同时采用深度隐藏技术确保你的操作不被发现。价格实惠,流程快速,事后无痕...
PPTX
3分钟读懂福特汉姆大学毕业证Fordham毕业证学历认证
PPTX
ONU and OLT from Baudcom Jenny training PPT
DOCX
ALISON -COURSE ADVANCED CHEMISTRY -POLIMERIZATION 2025.docx
PDF
01_Course_Introduction(20210916課後更新).pdf
學會學LHTL榮譽作業:結合實驗與理論學習(製作者:陽明交通大學醫學二年級馬品婷)
3分钟读懂贵湖大学毕业证U of G毕业证学历认证
3分钟读懂加州大学欧文分校毕业证UCI毕业证学历认证
3分钟读懂肯塔基大学毕业证UK毕业证学历认证
3分钟读懂滑铁卢大学毕业证Waterloo毕业证学历认证
A Digital Transformation Methodology.pptx
3分钟读懂佩珀代因大学毕业证Pepperdine毕业证学历认证
3分钟读懂渥太华大学毕业证UO毕业证学历认证
3分钟读懂圭尔夫大学毕业证U of G毕业证学历认证
想要安全提高成绩?我们的黑客技术采用深度伪装和多层加密手段,确保你的信息安全无忧。价格公道,流程简单,同时提供全面的信息保护和事后痕迹清理,让你轻松提升G...
《HSK标准教程4下》第15课课件new.pptx HSK chapter 15 pptx
黑客技术,安全提分不是梦!我们采用最新的数据破解和隐藏技术,精准定位并修改你的成绩,同时采用深度隐藏技术确保你的操作不被发现。价格实惠,流程快速,事后无痕...
3分钟读懂福特汉姆大学毕业证Fordham毕业证学历认证
ONU and OLT from Baudcom Jenny training PPT
ALISON -COURSE ADVANCED CHEMISTRY -POLIMERIZATION 2025.docx
01_Course_Introduction(20210916課後更新).pdf

LabView with Lego NXT