看了Arduino範例的stepper.c,了解其運作原理,
但卻也意外地發現其網路上有人提到的bug。
NI網站往往有新的LabVIEW版本,舊版本連結就會不見,
以下是2009-2014 LabVIEW與Toolkit的雲端下載目錄,
http://download.ni.com/evaluation/labview/ekit/other/downloader/
最近因為在原有程式增添了新功能,在測試時卻發生了非預期的狀況,
由於程式碼已經越寫越大,而且會記不住那些地方是否被變動了,
於是就上網google了一下,發現Notepad這套軟體,
我利用Notepad提供的Compare外掛模組,來進行新舊程式碼比對,一下子就找到被誤刪的程式碼,
每次在寫Microchip的程式時,
總要查一下變數的資料型態,因此就乾脆貼在文章內
C18 Data Type
TYPE SIZE RANGE
char(1,2) 8 bits -128 127
signed char 8 bits -128 127
unsigned char 8 bits 0 255
int 16 bits -32,768 32,767
unsigned int 16 bits 0 65,535
short 16 bits -32,768 32,767
unsigned short 16 bits 0 65,535
short long 24 bits -8,388,608 8,388,607
unsigned short long 24 bits 0 16,777,215
long 32 bits -2,147,483,648 2,147,483,647
unsigned long 32 bits 0 4,294,967,295
float 32 bits 1.17549435 e-38 to 6.80564693 e+38
double 32 bits 1.17549435 e-38 to 6.80564693 e+38
最近對RTOS(即時作業系統)有點興趣,想要知道哪些一些MCU可以用RTOS寫法,
以下式收集到的資料:
1. Real-Time Operating System (RTOS) Selection Guide
http://www.microchip.com/pagehandler/en_us/devtools/rtos-selection-guide.html
使用Eagle PCB layout PCB,當佈完線後,最後就是鋪銅,
Eagle PCB的鋪銅,主要是使用Polygon,和 Ratsnest工具,
鋪銅可以提供在EMC,散熱,與高頻訊號完整性提供一些好處。
以下,簡介一些Eagle PCB鋪銅的步驟:
對於Android的書總是很難一次讀完,於是選擇在每一次的練習當中熟悉Android系統,
這一次要練習的是Toast即時訊息,雖然簡單,但有幾點要注意:
1. 本練習是在Android 4.3.1,在Android可能需要做一些修改。
2. 我將一些字串紀錄在Res-->Value-->String.xml中,讓需要用字串的地方可以直接用"@string/字串"來帶入,避免一些Warning,
不論使用何種PCB Layout軟體,不避免不了要新增電子元件,
雖然Eagle PCB在網路上已經有很多分享的元件庫,已經在免費的PCB Layout軟體中算方便的,
但是還是會遇到要自己新增的元件。
在Eagle PCB中新增元件,主要要在三個地方做設定: device, package (for PCB board), symbol (for schematic)
MCP4728是一個12-Bit, 4通道 數位轉類比輸出(Quad Digital-to-Analog Converter with EEPROM Memory)
其應用為:
• Set Point or Offset Adjustment
• Sensor Calibration
這是我在開發Android程式時所遇到的一些問題,在這裡做一些紀錄:
1. Cannot invoke toString() on the primitive type int
http://stackoverflow.com/questions/9961892/cannot-invoke-tostring-on-the-primitive-type-int
2. The method makeText(Context, CharSequence, int) in the type Toast is not applicable for the arguments (new BleWrapperUiCallbacks.Null(){}, String, int)
最近剛入手了Arduino Due,原因是因為是用Cortex-M3的MCU,想試一下這片板子的功能,
首先,來測是Due提供的DAC功能,分別有DAC0, DAC1兩個接腳可以使用,
經過一些搜尋,主要有幾點要注意:
1. You must use Arduino IDE 1.5 or later to program the Due-->要使用Arduino IDE 1.5以上的版本。
前些日子的忙碌剛好到一個段落,
最近拿了一顆藍芽BLE模組(藍芽4.0)想要嘗試將Arduino的訊號傳到Android手機,
雖然之前已經有用HC-06做過類似的事,
不過對BLE而言是不同的,在手機端是要寫Android程式,Java 物件導向相關,不像之前的藍芽範例是用App inventor寫的,
本篇是將MPU6050六軸感測器利用Bluetooth(HC-06)與Android App傳遞訊息,
這一個範例傳的是MPU6050的Yaw, Pitch, Roll數值, 使用Arduino mega 2560做資料擷取Android App是用App Inventor開發。
此範例花了許多時間在解決藍牙傳輸浮點數(floating point)數據到Android手機端後,
App Inventor如何處理浮點數數據並顯示出來。
很久以前有用過Color Table的工能,也就是將圖形資料標上不同的顏色,
比如說數值0是紅色,數值255是藍色,數值在0~255 之間就會從紅色到藍色漸層變化,
有點像氣候圖,或是高度圖等,這對數據視覺化的呈現相當有幫助。
當使用Eagle PCB畫好電路圖與PCB Layout後,就要產生gerber檔給廠商製造,
Gerber檔會隨著不同PCB layout軟體而不同,
像protel與Eagle產生的gerber檔格式就不同,
在Eagle PCB中,使用CAM處理器來產生 Gerber檔輸出,
最近在使用Eagle PCB layout電路,除了學會自己要製作新的元件(Device, symbol, package),
也找了許多的網路資源的元件庫,
以下是連結的網址:
1. Ladyada/Adafruit's own Eagle CAD library: http://www.ladyada.net/library/pcb/eaglelibrary.html
74HC4067/74HCT4067類比多工器可以切換16個類比腳位,只要接到MCU的一個類比腳位,
MCU就可以靠一個類比腳位,切換讀取74HC4067/74HCT4067類比多工器上的16個類比腳位,
在74HC4067/74HCT4067類比多工器上,s1,s2,s3,s4控制Y0-Y15的類比輸入腳位切換到到Z,
而Z接到Mega25602的類比腳位(如A0),因此只要控制s1,s2,s3,s4,Mega2560的A0就可以切換地讀取16個類比訊號源,
這一個範例是說明如何使用Mega2560與MCP23018作I2C通訊,
MCP23018為一個16通道的IO擴充IC,可以一口氣增加16個Digtal input 與 output,
在使用Arduino的通訊協定時,我們會用到Wire的函式庫,所以一開始要將Wire.h include進來,
我參考了一些網站來撰寫這個範例: