Arduino 1.0出局:這是你需要知道的 - 💡 Fix My Ideas

Arduino 1.0出局:這是你需要知道的

Arduino 1.0出局:這是你需要知道的


作者: Ethan Holmes, 2019

Arduino團隊剛剛發布了Arduino開發環境的1.0版本!隨之而來的是一系列會對您產生影響的變化,特別是如果您使用任何附加庫:

語言更改包括對Serial類的修改,對以太網庫添加DHCP和DNS支持,新的SoftwareSerial庫,SD庫中的多文件支持,對Wire庫和UDP類的修改等。

雖然Arduino團隊已經在1.0上努力工作,但我們一直在努力更新Michael Margolis的Arduino Cookbook,為了幫助你理解Arduino 1.0,我們分享Michael的附錄H,遷移到Arduino 1.0。

雖然Arduino Cookbook將在幾週內不會出版(或電子書),但您現在可以通過我們的早期版本開始採取行動:立即在oreilly.com上購買:

通過這個早期版本的Arduino Cookbook第2版,您可以獲得最早的書籍 - 作者的原始和未經編輯的內容 - 因此您可以在本書正式發布之前充分利用這些內容。您還會在進行重大更改時收到更新,以及最終的電子書版本。

附錄H.遷移到Arduino 1.0

雖然為使用Arduino 1.0的先前Arduino版本編寫草圖並不困難,但該版本需要注意重要的更改。啟動軟件時首先要注意的是IDE的外觀。某些圖標與以前版本的軟件不同,菜單中有更改和添加。處理選擇板時的錯誤消息已得到改進,並添加了新的ADK和以太網板。

更重要的是底層核心軟件和庫的變化。 1.0的目的是引入破壞性的更改,這些更改將為未來的增強工作鋪平道路,但會破壞為舊軟件編寫的代碼。新的頭文件意味著舊的貢獻庫將需要更新。以太網和線路中的方法已經更改,並且打印功能存在細微差別。

Streams已添加了新功能(任何使用的基礎類 。打印() 語句),以太網,有線(I2C)和低電平輸入/輸出。

已經對庫處理依賴關係的方式進行了改進,並簡化了對新板的支持。由於這些變化,第三方庫將需要更新,儘管許多流行的庫可能已經更新。

用於草圖的文件擴展名已更改為 .pde.ino 區分處理文件與Arduino,並消除在錯誤的IDE中意外打開文件的不便。

在1.0 IDE中打開的草圖將從中重命名 .pde.ino 保存文件時。重命名後,如果不更改擴展名,您將無法在舊版本中打開它們。如果您不希望重命名文件,則“文件”→“首選項”對話框中有一個選項可禁用此行為。

以下是1.0編譯為早期版本編寫的草圖所需進行的更改的摘要。您將在章節中找到有關這些的示例,包括串行,有線,以太網和庫。

遷移打印語句

如何改變一些 打印() (要么 的println) 被處理:

使用字節數據類型
打印(字節)現在將字節的整數值打印為ASCII字符,之前的版本發送實際字符。這會影響Serial,Ethernet,Wire或具有從Print類派生的類的任何其他庫。更改:

Serial.print(byteVal)

至:

Serial.write(VAL); //作為char發送

BYTE關鍵字
不再支持BYTE關鍵字。更改:

Serial.print(val,BYTE)

至:

Serial.write(VAL); //作為char發送

從write()方法返回值
從Print派生的類必須實現a 將數據寫入類支持的設備的方法。簽名 方法改變了 空虛為size_t 返回寫入的字符數。如果您有一個派生自Print的類,則需要按如下方式修改write方法並返回寫入的字符數(通常為1)。更改:

無效寫

至:

size_t寫

遷移線(I2C)語句
使用Wire庫時,您需要進行一些更改。首先,更改了Wire方法名稱,使其與基於Streams的其他服務保持一致。更改:

Wire.send()

至:

Wire.write()

並改變:

Wire.receive()

至:

Wire.read()

其次,write方法需要常量參數的類型。您現在需要指定要寫入的文字常量參數的類型。所以,例如,改變:

寫(0x10),以

至:

寫((字節)為0x10)

遷移以太網語句

Arduino 1.0改變了以太網庫中的許多東西。

客戶類
客戶端以太網類和方法已重命名。更改:

客戶端客戶端(服務器,80)

至:

EthernetClient客戶端;

並改變:

如果(client.connect())

至:

if(client.connect(serverName,80)> 0)

注意: client.connect 應測試值> 0以確保在檢測到負值時返回錯誤。

服務器類

更改:

服務器服務器(80)

至:

EthernetServer服務器(80)

並改變:

UDP

至:

EthernetUDP

遷移庫

如果您的草圖包含任何未設計為1.0的庫,那麼如果它使用任何已用新Arduino.h文件替換的舊頭文件,則需要更改庫。如果您包含任何這些庫,請更改:

#include“wiring.h”#include“WProgram.h”#include“WConstants.h”#include“pins_arduino.h”

至:

#include“Arduino.h”

您可以使用條件包來使庫也可以在早期版本中進行編譯。例如,您可以替換 #include“WProgram.h” 以下內容:

#if ARDUINO> = 100 #include“Arduino.h”#else #include“WProgram.h”#endif

新流解析功能

Arduino 1.0引入了一種簡單的解析功能,可以從Stream派生的任何對像中查找和提取字符串和數字,例如:串行,有線和以太網。這些功能包括:

find(char * target); findUntil(char * target,char * term);的ReadBytes(緩衝液,長度); readBytesUntil(術語,緩衝液,長度); parseInt函數(); parseFloat();



您可能感興趣

太空黑客工作室在達拉斯

太空黑客工作室在達拉斯


製造商:世界製造者馬戲團的最後呼喚

製造商:世界製造者馬戲團的最後呼喚


都柏林Mini Maker Faire這個週末!

都柏林Mini Maker Faire這個週末!


Maker Faire Detroit:這個週末!

Maker Faire Detroit:這個週末!






最近的帖子