最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

【ProtoPie Connect 教程】第4課 - Arduino第2節(jié):玩轉(zhuǎn)自編Sketch代碼

2022-10-14 16:54 作者:ProtoPie  | 我要投稿


引言

在Arduino第1節(jié)課程中,我們展示了通過Blokdots把Arduino連接到Pie上實(shí)現(xiàn)互動(dòng)的過程。這個(gè)過程十分簡單,實(shí)現(xiàn)起來也挺快,但只是這樣連接起來使用的話,還是存在一些問題。比如說,按鈕按下的判斷反饋與實(shí)際情況相反了——沒按下按鈕時(shí)Blokdots報(bào)回1,而按鈕已經(jīng)按下時(shí)Blokdots卻報(bào)回0。此外,旋轉(zhuǎn)編碼器轉(zhuǎn)得太快時(shí),還可以觀察到一個(gè)被稱為“反彈”的現(xiàn)象:編碼器按照正向旋轉(zhuǎn)、計(jì)數(shù)應(yīng)該增大時(shí),實(shí)際卻得到了計(jì)數(shù)減小的結(jié)果;反之編碼器反向旋轉(zhuǎn)、計(jì)數(shù)應(yīng)該減小時(shí),實(shí)際卻得到了計(jì)數(shù)增大的結(jié)果。

我們可以通過反接編碼器的接地(GND)和供電(+)連接線來解決第一個(gè)問題,然后通過小心旋轉(zhuǎn)旋鈕、避免把旋轉(zhuǎn)編碼器轉(zhuǎn)得太快來解決第二個(gè)問題。但畢竟這治標(biāo)不治本,要從根本上解決這兩個(gè)(以及更多其它的)問題,可以通過自行編寫Arduino代碼來實(shí)現(xiàn)。

但是… 寫代碼令人望而生畏!

的確,寫代碼的工作令人望而生畏,尤其對(duì)于設(shè)計(jì)師來說更是如此。幸運(yùn)的是,網(wǎng)上有琳瑯滿目的Arduino代碼范例可供參考,在Arduino圈子里,我們把用于Arduino的成品代碼稱為Sketch代碼,實(shí)際上我寫的Sketch代碼很大程度上是基于[這篇文章](https://lastminuteengineers.com/rotary-encoder-arduino-tutorial/#:~:text=A rotary encoder is a,the knob is being rotated.)中學(xué)到的內(nèi)容來寫(chao)的。

其實(shí)不用太擔(dān)心!在這個(gè)教程中你并不需要寫任何代碼,這個(gè)教程的目的也并不是教你怎么寫代碼,直接用我已經(jīng)寫好的Sketch代碼就好了。這個(gè)教程的重點(diǎn)在于讓你了解如何用Arduino的Sketch代碼來與ProtoPie Connect一起工作,共同完成所需的設(shè)計(jì)。

學(xué)習(xí)內(nèi)容

在本教程中,我們會(huì)覆蓋以下知識(shí)點(diǎn):

  • 與ProtoPie Connect進(jìn)行協(xié)同工作時(shí)需要留意的特定代碼細(xì)節(jié)

  • 驗(yàn)證代碼正確性并上傳到Arduino開發(fā)板中

  • 在ProtoPie Connect中配置并啟用Arduino插件

本教程約需15-20分鐘完成。

所需資源

  • 按照上一課所教的方式,正確連接Arduino和兩個(gè)編碼器

  • 下載并安裝Arduino軟件

  • 下載并解壓以下Arduino Sketch代碼:

    使用編碼器操作的空調(diào)遙控器.zip

  • 啟動(dòng)Arduino軟件并將下載的Sketch代碼復(fù)制粘貼進(jìn)去:

我們開始吧!

如果以上步驟都完成了,那就跟隨以下視頻內(nèi)容進(jìn)行操作吧!

參考

在視頻中,我特意指出在編寫與ProtoPie Connect共同工作的Arduino Sketch代碼時(shí)需要記住的兩個(gè)要點(diǎn)?,F(xiàn)在我把這兩點(diǎn)單獨(dú)列在下面以便參考。

正確設(shè)置波特率

在Connect的Arduino插件中選擇的波特率(即串行連接上檢測(cè)數(shù)據(jù)更新的頻率)要與代碼中使用的波特率一致。

將消息發(fā)送到ProtoPie Connect

ProtoPie Connect不斷搜索寫入到串行連接上的消息,因此在代碼中使用Serial.print()Serial.println()就可以將消息發(fā)回到Connect上。對(duì)于沒有值的消息,只需要按如下所示的方式將消息名稱輸出到串行連接上:

  • Serial.println(*<消息名>*),如:Serial.println("TEMP_UP");

對(duì)于帶有值的消息,需要用兩個(gè)豎線符號(hào)(|)分隔消息名稱和消息值。

  • 如:Serial.println("SET_TEMP||21");

ProtoPie Connect會(huì)以同等模式識(shí)別和接收這條名為SET_TEMP的消息,并得到21這個(gè)消息值。

如果要在將變量作為消息值,在Arduino代碼中就不能將這兩者放在同一行里了。比如以下例子就不會(huì)起作用:

  • Serial.println("SET_TEMP||" + temp);

這種情況下需要用兩行代碼來實(shí)現(xiàn),先用Serial.print()實(shí)現(xiàn)第一部分,再用Serial.println()實(shí)現(xiàn)第二部分。例如:

  • Serial.print("SET_TEMP||");

    Serial.println(temp);

這兩個(gè)語句的區(qū)別在于,Serial.print只將指定內(nèi)容寫入到串行連接上,而Serial.println 除了寫入到串行連接上之外還在寫入內(nèi)容的末尾自動(dòng)添加了一個(gè)回車換行符以表示這是一行的結(jié)尾,或者說從ProtoPie Connect的視角來看,這才是一條已發(fā)送的完整消息。

ProtoPie Connect在對(duì)消息執(zhí)行操作之前會(huì)一直等待一個(gè)回車換行符輸出到串行接口上,基于這一點(diǎn),在編寫代碼時(shí)就可以將一條消息分為多個(gè)部分,分別用Serial.print()語句來發(fā)出,發(fā)到最后一條消息時(shí)再使用Serial.println()語句表示整個(gè)消息已經(jīng)完全發(fā)送到PotoPie Connect上。

  • 例如:

    Serial.print(message);

    Serial.print(”||”);

    Serial.println(value);


【ProtoPie Connect 教程】第4課 - Arduino第2節(jié):玩轉(zhuǎn)自編Sketch代碼的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國家法律
苍溪县| 嘉峪关市| 南丰县| 宜州市| 措美县| 涡阳县| 阳高县| 新干县| 米脂县| 康保县| 肇东市| 保靖县| 淮滨县| 曲沃县| 来安县| 获嘉县| 舒兰市| 台州市| 泰宁县| 永定县| 济阳县| 昌乐县| 永泰县| 吉安县| 句容市| 舒兰市| 苍山县| 铁力市| 正镶白旗| 九台市| 广平县| 外汇| 高尔夫| 刚察县| 长寿区| 泸溪县| 安仁县| 贵德县| 平塘县| 贵溪市| 三河市|