MCU單片機
ATMEL
ST : STM32XXX
TI : MSP430
ARC
Arduino
使用過多種版本,例如MINI、UNO。
UNO |
MEGA |
Arduino & Android
類似於Mega 加上一個可以連接到安卓手機的USB 主機接口。當初購買約800元(貴),連結。
相較於WIFI或是藍芽,自己很喜愛單純線控的概念,只是似乎沒有後續發展。Arduino那邊使用USB CLASS,與ANDROID進行溝通,同時Android程式也要有另外的程式,才能溝通。
Freaduino ADK 連結1 有一片 Arduino Mega ADK 連結2 連結3XADOW
硬體
供電 連結 5V的USB行動電源可使用,供電孔為9V至12V,使用9V原因( 連結 )
FTDI當做連結,DRIVER是C:\Program Files (x86)\Arduino\drivers\FTDI USB Drivers 找到,用COMXX對應使用
使用上產生所謂SHIELD,將許多線路延伸出來,SHIELD各式各樣。
安裝和軟體
安裝檔(1.8.8版 下載)void setup() {
pinMode(LED_BUILTIN, OUTPUT);
}
void loop() {
digitalWrite(LED_BUILTIN, HIGH); // turn the LED on (HIGH is the voltage level)
delay(100); // wait for a second
digitalWrite(LED_BUILTIN, LOW); // turn the LED off by making the voltage LOW
delay(100); // wait for a second
}
沒有main的結構,檔案名稱為XXX.ino,系統也會自動以XXX建立同名目錄
使用第三方專案,專案位置在 C:\Program Files (x86)\Arduino\libraries 每個專案都是一個個單獨的目錄
#include “xyz.h”
複雜專案
在相同目錄下,將x.h x.c(cpp) 檔案放在同一目錄
#include “xyz.h”
就可以完成編譯
參考連結
製作屬於自己專案
參考連結
找到每個IDE設定的專案位置,位置在
IDE's File > Preferences > Sketchbook location
這裡就會看到目前的位置,資料是 C:\Users\kayjean\Documents\Arduino
在這個目錄下建立自己專案的目錄名稱PwmLed
把三個檔案放進去
libraries/PwmLed底下還可以放個examples目錄,存放範例(也就是現在正在做的事情)
Arduino OS
顯示TTF文字
控制相機拍照
小型LED
PIN13有內建電組,可實驗LED,也可以用電路板接出(注意,長腳為正)。小功率的LED都是屬於直插式,一般都是按直徑分型號3mm 4mm 5mm 8mm 10mm 12mm。不論直徑大小,其工作電壓和工作電流都是一樣約15mA。電壓以常見的5MM來看,紅光 黃光 1.7--2.1V。白光 藍光 暖白光 粉紅光 紫色光 2.8--3.6V。綠光2.6--3.4V。
ESP
ESP8266
2014上海樂鑫,內部含WIFI天線。Ai-Thinker生產的ESP-01。連結,有micropython的開發機制。ESP-12E WiFi module is developed by Ai-thinker Team. core processor ESP8266 in smaller sizes of the module encapsulates Tensilica L106 integrates industry-leading ultra low power 32-bit MCU micro, with the 16-bit short mode, Clock speed support 80 MHz, 160 MHz, supports the RTOS, integrated Wi-Fi MAC/BB/RF/PA/LNA, on-board antenna.
ESP32
2019,包含WIFI和藍芽,Tensilica Xtensa LX6微處理器。連結 RISC-V 32 位元單核心處理器
Pixart(BLE)
主功能為BLE,可參考(連結)。僅列出呼叫系統功能
Raspberry Pi
燒錄方式
JTAG (1/4)
JTAG標準協議,可以實現編程時在線調試和DEBUG。接口為電源線和復位引腳,TDI、TMS、TCK、TDO:
- TDI-- 數據輸入,所有寫入寄存器的數據都是通過 TDI 接口串行輸入的;
- TMS-- 模式選擇,Jlink 輸出給目標 CPU 的時鐘信號;
- TCK-- 時鐘信號,所有數據的輸入輸出都是以該時鐘信號為基準的;
- TDO-- 數據輸出,所有從寄存器讀出的數據都是通過 TDO 接口串行輸出的
設計電路時要選用上拉電阻。 JTAG 接口有多種形式,常用的 20 引腳、14 引腳和 10 引腳(不懂)。JTAG 接口燒錄方式常用的工具為 J-Link。
SWD (2/4)
SWD是JTAG的子集合,意法半導體的 ST-Link也支持SWD。只需要兩根線。
- SWDIO-- 串行數據線,用於數據的讀出和寫入。
- SWDCLK-- 串行時鐘線,提供所需要的時鐘信號。
UART (3/4) 和 燒錄方式SWIM單線 (4/4) (連結)
程式語言
通訊介面
序列:非同步I2C
I2C的特點是只有兩條線,理論說明(連結)。(很多裝置同時支援I2C和SPI兩種介面,只要切換某個電路,就會切換)。
I2C的特色是,每種裝置會有自己特殊的代號(同型號內各個產品的代號都是相同,不像WIFI通訊裝置則是UUID每個都不同),這個代號是寫在data sheet中。比較特別的是,如果一個系統裡面有多個這種裝置怎麼辦呢?牠會用是否提供電壓,改變一些address資訊,但改來改去最多就是兩個。例如手邊的三軸感測器,LIS3DSH( 這和LIS3DH不一樣歐 ),根據datasheet(連結),所謂的位置又叫做SAD slave address
The slave address (SAD) associated to the LIS3DSH is 00111xxb whereas the xx bits are modified by the SEL/SDO pin in order to modify the device address. If the SEL pin is connected to the voltage supply, the address is 0011101b, otherwise the address is 0011110b if the SEL pin is connected to ground. This solution permits to connect and address two different accelerometers to the same I2C lines. 0011101 : 1D 0011110 : 1E
從master角度看,配合clock的動作,將slave的位置丟到bus上,各個slave判斷位置訊號若是屬於我這個裝置,就會在最後面一個訊號結束後,將電位拉下(此時master是進入free的狀況),然後就開始一連串訊號串送過程。master的頻率可以從100k~400k範圍,而slave本身並沒有發送任何頻率的訊號,slave僅僅是在每次master的clock頻率拉起來時,進行相對應動作。(非常聰明的作法)。
系統功能,將資料寫入規定暫存器和記憶體內(透過C語言的結構功能),然後變更register就可以進行例如enable、送出資料、讀取資料等動作。
ARDINO寫I2C軟體方式(連結)。
I2C大量應用在專案中,好奇其內部究竟如何設計,找到一篇文章介紹(連結),
沒有留言:
張貼留言