🤖
LinkIt 7697 BlocklyDuino 使用指南
  • LinkIt 7697 BlocklyDuino 使用指南
    • 認識 LinkIt 7697
    • 認識 BlocklyDuino
    • BlocklyDuino v2 & v3 比較
    • 安裝開發環境 (v2)
      • 安裝 Arduino 編輯器
      • 安裝驅動並連接開發板
      • 安裝 BlocklyDuino 編輯器
      • 連結兩個編輯器並上傳程式
    • 安裝開發環境 (v3)
    • BlocklyDuino 基礎操作
    • 實作範例教學
      • A01. 內建 LED 閃爍
      • A02. 外接 LED 閃爍
      • A03. 外接 LED 呼吸燈
      • A04. RGB LED 顏色變化
      • A05. 外部按鈕控制開關
      • A06. 蜂鳴器播放聲音
      • A07 .可變電阻控制電壓輸出
      • A08. 伺服馬達控制
      • A21. DHT: 溫濕度感應器
      • A22. HTU21D: 溫溼度感應器
      • A23. PMSX003: PM2.5 感測器
      • A24. HC-SR04P: 超音波測距
      • A25. ADXL345: 加速規(動態)
      • A26. ADXL345: 加速規(手勢)
      • A27. 1602/2004: 液晶顯示模組
      • A28. WS2812: RGB 彩色燈條
      • A29. MFRC522: RFID
      • B00. Grove 相關基礎知識
      • B01. Grove 光感應器
      • B02. Grove 超音波測距感應器
      • B03. Grove 溫溼度感應器
      • B04. Grove 繼電器
      • B05. Grove LED 燈條
      • B06. Grove OLED 顯示器
      • C01. 雲端控制 LED 開關
      • C02. 上傳溫溼度到雲端
      • D01. 手機透過 BLE 讀寫裝置資料
      • E01. 遙控器: 按鈕控制 LED
    • 資源鏈結
  • LinkIt 7697 - Arduino IDE 開發指南
    • 環境設定
      • 設定 Arduino IDE
      • 將 LinkIt 7697 連接到電腦
        • 在 Windows 上安裝 CP2102N 驅動程式
        • 在 macOS 上安裝 CP2102N 驅動程式
      • 執行第一個程式
    • 開發指南
      • GPIO
      • UART
      • ADC
      • EINT (外部中斷 / External Interrupt)
      • I2C
      • SPI
      • EEPROM
      • Timer
      • Flash (索引式儲存空間)
      • RTC (Real-Time Clock)
      • Software Serial
      • 使用 Wi-Fi 函式庫
      • 使用 MCS 函式庫
        • 連接到 MCS
        • 連接到 MCSLite
          • 建立可透過 MCS Lite 控制的 Beacon
        • MCS 函式庫 API 使用手冊
          • MCSDevice
          • MCSLiteDeviceMCSLiteDevice
          • MCSDataChannel 相關類別
      • 使用 BLE 低功耗藍牙
        • 藍牙信標
        • 主控裝置
        • 周邊裝置
        • 已知限制
        • LBLE API 指南
          • LBLE
          • LBLECentral
          • LBLEPeripheral
          • LBLEAdvertisementData
          • LBLEService
          • LBLECharacteristic
          • LBLEAddress
          • LBLEUuid
          • LBLEClient
      • 使用 LinkIt Remote
        • LRemote API
        • LRemote 控制元件 API
      • LinkIt 7697 腳位的初始狀態
      • LinkIt 7697 供電說明
      • 更新 Bootloader 與韌體
      • Flash 燒錄工具
      • FOTA 更新
      • LinkIt 7697 的功能限制
      • 自行編譯 Arduino Package
      • 回報問題
    • 週邊元件連接教學
      • SMD 按鈕
      • RGB 三色 LED
      • 可變電阻
      • 九軸感應器 (MPU-9250)
      • 溫度與濕度感應器 (AM2302)
      • 超音波距離感應器
      • 光感應器 (LM358)
      • 0.96 吋 OLED 顯示模組 (SSD1308Z)
      • 長條型 LED 顯示模組 (MY9221)
      • 繼電器
      • 伺服馬達 (EMAX 9g ES08A Servo)
      • 使用 74HC595 驅動七段顯示器
      • 使用 MAX7219 驅動七段顯示器
      • 使用 MAX7219 驅動 8x8 矩陣式顯示器
      • 使用 OLED 模組 (如 SH1106 / SSD1306... 等模組)
      • 使用 PCF8574 / PCF8574A 驅動 1602 LCD
    • 開發套件與擴充板
      • Grove Starter Kit
      • Robot Shield
        • OTTO97
    • 下載
    • 資源連結
    • BSP 版本更新資訊
  • LinkIt 7697 - Development Guide for Arduino IDE
    • Environment Setup
      • Setup Arduino IDE
      • Connecting LinkIt 7697 to Computer
        • Install CP2102N Driver on Windows
        • Install CP2102N Driver on macOS
      • Run Your First Sketch
    • Developer Guide
      • GPIO
      • UART
      • ADC
      • External Interrupt
      • I2C
      • SPI
      • EEPROM
      • Timer
      • Flash (Key-Pair Storage)
      • RTC (Real-Time Clock)
      • Software Serial
      • Using the Wi-Fi Library
      • Using MCS Library
        • Connecting to MCS
        • Connecting to MCSLite
          • Build a Beacon controlled by MCS Lite
        • MCS Library API Reference
          • MCSDevice
          • MCSLiteDevice
          • MCSDataChannel Classes
      • Using Bluetooth
        • Beacons
        • Central Devices
        • Peripheral Devices
        • Limitations of LBLE library
        • LBLE Library API Guide
          • LBLE
          • LBLECentral
          • LBLEPeripheral
          • LBLEAdvertisementData
          • LBLEService
          • LBLECharacteristic
          • LBLEAddress
          • LBLEUuid
          • LBLEClient
      • Using LinkIt Remote
        • LRemote
        • LRemote Control Classes
      • Initial Pin State of LinkIt 7697
      • Powering the LinkIt 7697
      • Update Bootloader and Firmware
      • Flash Uploading Tool
      • FOTA Update
      • Limitations of LinkIt 7697
      • Source Code of Arduino Package
      • Issue Report
    • Tutorial
      • SMD Buttons
      • RGB LED
      • Potentiometer
      • IMU 9DOF v2.0 (MPU-9250)
      • Temperature and Humidity Sensor Pro (AM2302)
      • Grove Ultrasonic Ranger
      • Light Sensor (LM358)
      • Grove OLED Display 0.96" (SSD1308Z)
      • LED Bar v2.0 (MY9221)
      • Relay
      • Mini Servo (EMAX 9g ES08A Servo)
      • Driving 7-segment Displays with 74HC595
      • Driving 7-segment Displays with MAX7219
      • Driving 8x8 Dot Matrices with MAX7219
      • Using OLED module (SH1106 / SSD1306... etc.)
      • Driving 1602 LCD with PCF8574 / PCF8574A
    • Kits and Shields
      • Grove Starter Kit
      • Robot Shield
        • OTTO97
    • Download
    • Resources
    • BSP Release Notes
Powered by GitBook
On this page
  • 積木畫布 + Arduino 程式
  • 積木類型
  • 基礎程式流程
  • 積木基礎操作
  • 編輯器其他功能
  • FAQ
  1. LinkIt 7697 BlocklyDuino 使用指南

BlocklyDuino 基礎操作

Previous安裝開發環境 (v3)Next實作範例教學

Last updated 1 year ago

積木畫布 + Arduino 程式

BlocklyDuino 編輯器當中有兩個頁面,分別是「積木」和「Arduino」。

  • 在積木頁面,可以拖拉積木的方式產生對應的程式邏輯。BlocklyDuino 編輯器會自動產生出對應的 Arduino 程式,並顯示在 Arduino 頁面當中

  • 在 Arduino 頁面中的程式碼只是"純顯示", 讓開發者了解怎樣的積木產生了怎樣的 code, 無法在這頁面內修改程式

積木類型

目前 BlocklyDuino 編輯器支持四種積木類型

  • 程式語言積木: 包含最基礎的程式邏輯和資料型態 (Data type) 的處理

  • Arduino 基礎控制積木 : 包含 Arduino 的核心操作功能, 透過這些積木可以和 LinkIt 7697 開發板的硬體及部分周邊做溝通

  • 聯網功能積木 : 連接 Wi-Fi, 藍芽 (BLE),以及連接 MCS/MCSLite 做雲端資收集和控制

  • 其他擴充積木 : 提供各類型周邊的控制積木, 會隨時間陸續增加更多周邊的支持

基礎程式流程

最原始的畫布上, 會有 "初始化" 和"重複執行" 兩個積木, 對應到 Arduino 就是 setup() 和 loop() 這兩個函式

  • 初始化 : 擺放於此的積木在開機後只會被執行 "一次"

  • 重複執行 : 擺放於此的積木會被一直 "重複" 的執行

若不小心移除掉 "初始化" 或"重複執行" 的積木, 可以到 "積木 > 程式流程" 內再拉出來。

若將積木擺放到這兩個流程方塊之外, 編輯器可能會無法產生出正確的 Arduino 程式。

積木基礎操作

以下介紹幾個編輯積木常用的操作:

  • 新增功能積木 : 從左邊積木區的拖拉出來到畫布。程式邏輯會照依照積木的順序,從上往下執行

  • 新增參數積木 : 接上參數或變數,有些積木若型別不對會接不上去

  • 刪除積木 : 將積木拖拉到左邊的積木區,或是拖拉到垃圾桶上

  • 可變動積木 : 有些積木上有個星星,點選可以更改這積木的功能

  • 複製積木 : 在積木上按滑鼠右鍵叫出選單,選擇 複製積木

  • 暫存積木: 畫布上的所有積木都會自動產生 Arduino 的程式,有兩種方式可以將暫時沒用的積木留在畫布上但不要產生對應的 Arduino 程式碼。把積木拖拉到 暫存區 積木內 (可在程式流程內找到此積木),或是在積木上按滑鼠右鍵叫出選單,選擇 停用積木

編輯器其他功能

編輯器上的其他功能說明如下:

  • 新增 : 開啟一個新的畫布(只有"初始化" 和"重複執行", 之前的畫布上的積木都會被消失, 若需要保留請先儲存起來)

  • 開啟 : 開啟一個之前儲存的專案, 選取的是一個資料夾來開啟

  • 儲存 : 儲存一個編輯好的專案。 先選取要存放的位置, 再取個存放的名字, 會存放在這名字的資料夾內

  • 設定 : 切換語言, 開啟自動儲存等功能

  • 匯入 : 匯入一個 積木的 xml 描述內容 (畫布上的方塊都是用 xml 來描述的),新增積木到畫布上

  • 匯出 : 匯出此畫布的積木成一個 xml 描述內容

  • 另存新檔 : 將畫布上的內容另外儲存成另一個專案

BlocklyDuino 的一個專案會是以 "資料夾" 的形式存在, 裡面包含一個 .xml 檔案 (描述畫布上的積木) 和 .ino 檔案 (Arduino 的程式)

在 BlocklyDuino 內開啟或儲存, 都是選擇 "資料夾"

概念上, 在畫布拖拉積木的改變都是會存在 .xml 檔案 (畫布描述檔), 然後編輯器會"自動"產生對應的 .ino (Arduino 程式檔)

後續若要脫離圖像化編輯開發環境, 要將這 ino 複製一份編輯比較安全, 不然在 BlocklyDuino 編輯器內拖拉積木在儲存, .ino 又會被改持畫布上對應的程式內容,

BlocklyDuino v3 版本整合入編譯和序列埠監控等功能

此為 LinkIt 7697 BlocklyDuino v3 新功能, 預計於七月初發佈

  • Com Port 選擇 : 若有正確安裝 CP2102 驅動並連接上 LinkIt 7697,應可看到新增的 Com Port

  • 編譯 + 上傳 : 可直接於 BlocklDuino 編譯和上傳,編譯和上傳狀態可以點開 "燒錄狀態" 看詳細的 Log

  • 開啟序列埠監控視窗 : 開啟 Putty 來接收透過 UART 傳出的訊息,預設速度為 9600

  • 開啟 Arduino IDE : 開啟 Arduino IDE (包含在此包 BlocklyDuino 內的),開啟前此檔案需先儲存過

開啟 Putty 畫面如下,若需要修改 baud rate,可點選視窗左上的 Putty 按鈕 -> Change Setting,在 Connection -> Serial 中修改

FAQ

Q: 為何有時積木接上去時會彈開?

A: 若資料型態不正確時,可能會接不上去,現象就是方塊會彈開。如下圖的範例,要將一個整數接到字串上是接不上去的。 目前的 BlocklyDuino 對於型別檢查的實作還不夠嚴謹,有時會發生型別不對但接得上去,產生出來的 Arduino 程式就會編譯錯誤,之後會持續優化這一塊型別檢查的機制。