Try   HackMD

108 Arduino教學

介紹成員

  • 為什麼聯合社課
  • 創意機械、資訊研究簡單介紹(專長、成員)

介紹專案

  • 播影片
  • 軟體介紹(為什麼使用Arduino)

Chris Lin硬體 : 設計好的pin腳、根據需求有多種選擇性(一種語言)、許多周邊開發板和傳感器
編程環境 : 整合式編輯器、Arduino核心、內建程式庫、範例sketch、編譯器、燒錄程式

  • 工具介紹

Arduino

  • Refers to a whole family of board that have different advantages and disadvantages

  • Started as a research project at the Interaction Design Institute of Ivrea in the early 2000s

  • UNO / Nano / Due / mini

    • UNO : Atmega328, 16MHz, 32KB of program memory, 1KB of EEPROM, 2KB of RAM, 14 digital I/O, 6 analog inputs, 5V and 3.3V(including a power jack)

      Image Not Showing Possible Reasons
      • The image file may be corrupted
      • The server hosting the image is unavailable
      • The image path is incorrect
      • The image format is not supported
      Learn More →

    • Nano V3.0 : 相較UNO不可接shield,有針腳可放在麵包板上做開發

    • Mini

    • Due : 32-bit Atmel SAM3X8E ARM Cortex-M3 CPU

  • Arduino IDE runs on Win, MacOS, Linux

  • 開放原始電路設計圖

    Image Not Showing Possible Reasons
    • The image file may be corrupted
    • The server hosting the image is unavailable
    • The image path is incorrect
    • The image format is not supported
    Learn More →

  • 電路可獨自運作或與連接之電腦溝通(serial communication)

  • Open Source : https://github.com/arduino/Arduino

  • 討論區 : https://forum.arduino.cc/

  • some cool project : https://create.arduino.cc/projecthub

Arduino Nano

簡述

  • 單晶片微控制器(ATmega328)
    Atmel corporation, AVR architecture, megaAVR series
    Image Not Showing Possible Reasons
    • The image file may be corrupted
    • The server hosting the image is unavailable
    • The image path is incorrect
    • The image format is not supported
    Learn More →

Chris Lin

  • Atmel半導體公司
  • Flash, EEPROM, and SRAM are all integrated onto a single chip
  • Have serial interfaces, which can be used to connect larger serial EEPROMs or flash chips
  • Harvard architecture 8bits RISC(reduced instruction set computer)

Chris LinHarvard -> 指令和資料分開

​​​​![](https://i.imgur.com/dnAorua.png)
  • 技術參數
    Image Not Showing Possible Reasons
    • The image file may be corrupted
    • The server hosting the image is unavailable
    • The image path is incorrect
    • The image format is not supported
    Learn More →
    • Flash memory for program storage

    Chris Lin存放程式和初始資料
    一區程式碼、一區bootloader
    主機端的avrdude(AVR downloader/ uploader)和bootloader溝通進行燒錄(不須額外燒錄器=>self-programming)
    燒錄工具將編譯後的程式碼燒錄

    • SRAM(static random access memory)
    • EEPROMs(electrically-erasable programmalble read-only memory)

    Chris Lin電子抹除式 多次複寫

腳位

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

  • Power : VIN(7-12V)、5V、3V3(3.3V)

Chris Linregulator

  • Reset : botton, digitalwrite(reset, LOW), resetFunc()
  • Serial port (UART) : hardwired TX(1)/RX(0)

Chris LinUniversal Asynchronize Receiver/Transmitter無時脈同步線
需傳送時起始通訊程序(協定上有開始和結束)
名詞 : 序列(串列)、同步、雙工
相對於SPI\I2C同步傳輸(用於CPU和周邊晶片)

  • Digital Pins :
    • digitalread()、digitalwrite();pinmode()
    • PWM(Pulse Width Modulation) :
      • 利用數位訊號高頻率的切換模擬出類比訊號
      • analogWrite(pin, value) : value介於0~255(可算Duty Cycle)
      • 490 Hz (pins 5, 6: 980 Hz)

Chris LinDuty Cycle = Ton/Tof(%)
V = Von * Duty Cycle(%)
例如開關頻繁使得看起來比較暗(調整脈波工作週期影響平均值來控制電壓)

  • Analog Pins :
    • analogRead()
    • 接收類比訊號(電壓、聲音、光亮、溫度)
    • ADC(Analog to Digital Converter)
  • Interrupt(higher priority) : attachInterrupt(digitalPinToInterrupt(pin), ISR, mode)
    • ISR(Interupt Service Routine)
    • mode = RISING/FALLING/CHANGE
    • Interupt occure when voltage changed on assigned pin
  • SPI(Serial Peripheral Interface) :
    • MOSI(Master Out Slave In)
    • MISO(Master In Slave Out)
    • SS(Slave Select) : en(dis)able device
      • Device's SS pin low => ignore master(AT mode)
      • high => listen to master
    • SCK(Serial Clock) : the palses which syncronizes the transmitted data from the master
  • I2C :
  • When start all pins get pulled low.

配置

  • Reset botton
  • mini usb
  • ICSP header :
  • LEDs : power, TX, RX, LED (D13)
  • COM port (communication port)
    • parallel port(印表機) VS. serial port(滑鼠、數據機)
    • PC上指RS-232(transmitting bit by bit),通常有四個
    • ATmega has USB to serial converter chip (真正電腦的COM port需查此晶片的data)
    • 傳輸 1 bytes 的資料 = 1 parity bit + 8 data bits + 1 stop bit = 10 bits

Chris LinNano在實體層是TTL位準的5V
需FTDI或CH340G轉成RS232軟體層的TX/RX訊號

佈線 & 焊接

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

小技巧 :

  1. 佈線的時候可以在電路板上先做起點、終點的記號
  2. 焊同一條線的兩端點時先等一邊稍冷再做另一邊
  3. 焊會碰觸的兩條線同樣需稍做一些等待
  4. 較矮之元件開始焊(單芯線->排母->排針)
  5. 在焊排母的時候需注意是否有歪斜

Arduino Software Requirement

Basic Introduction

Chris Lin關於程式的基本介紹
接著解構我們的程式,函式之後再講
Sketch -> verify(編譯產生二進位碼) -> upload(燒錄)

  1. 選擇IDE
  2. install libraries
    https://www.arduino.cc/en/Reference/Libraries
  3. set board, port
  4. include libraries
    • <servo.h>
      • attach and write
    • <SoftwareSerial.h>
      • Baud : bits per second
      • set two sides with the same baud (the highest acceptable rate)
      • use serial monitor to observe
      • Serial.begin()

Code Introduction

Chris Lin課程可先讓學員習寫小程式(和我們程式所需功能相關者),可兩周

Chris Lin上面的筆記本連結是給大家的引導練習題
也許還可以讓大家加寫SPI,秀文字在LCD板(手邊有)

  • Introduction of our program(main, HC05)

燒錄

  • 步驟 :
    開發版"Arduino Nano" -> 處理器"ATmega168P(Old Bootloader) -> 序列埠(COM4)
  • Online :
    1. Plugin
    2. Serial Monitor
    3. 雲端草稿本
  • IDE
    1. COM Port 驅動程式
    2. 燒錄前需按住reset鍵直到出現上傳中字樣立即放開

Arduino app

HC-05 藍牙模組

  • 支援SPP(Serial Port Profile序列埠規範)
  • 主從(master/slave)一體型

    上圖為無底板類型

    上圖為第34腳為KEY類型

HC-05預設為slave,但是可藉由AT指令切換為master。
可以和HC-05之間互連也可以跟手機連,這裡使用HC-05當中有EN,藉由實體鍵進入AT模式的版本,並且示範藍芽為從、手機為主的連接模式。

藍芽連接

  • HC-05(slave)設定步驟 :
    接RXD(Nano的傳送端)、TXD(Nano的接收端)、GND -> 將HC-05程式燒到Nano -> 按住EN實體鍵 -> 將5V接到VCC -> 藍芽板LED慢閃(進入AT Mode) -> 打開序列埠監控視窗 -> 輸入"AT" -> 顯示OK
    ​​AT command :
    ​​AT+VERSION
    ​​AT+UART? (查鮑率)
    ​​AT+NAME="the name you want to give"
    ​​AT+PSWD="password you want to give"
    ​​AT+ROLE? (0 for slave ; 1 for master)
    ​​AT+ADDR? (查此藍芽模組MAC)
    
  • 手機端設定步驟 :
    打開藍芽 -> 尋找藍芽Device -> 找到剛剛命名的藍芽或者未更改名稱HC-05 -> 輸入密碼進行配對 -> 如此即完成