- 樂高機器人EV3設計指南:創造者的搭建邏輯
- 大海樂高機器人教育團隊編著
- 2791字
- 2020-11-20 16:10:11
任務2 樂高EV3編程指南
作者:李彭嘉(人大附中航天城學校)
樂高Mindstorms EV3(后文簡稱EV3)編程軟件是一種圖形化的編程軟件。它使用抽象的彩色模塊來創建程序,這些模塊分別在六個不同顏色的選項卡里——綠色代表動作模塊,橙色代表流程控制模塊,黃色代表傳感器模塊,紅色代表數據操作模塊,藍色代表高級模塊,青色代表“我的模塊”。

樂高Mindstorms EV3編程工作面板

打開“驅動基座”安裝手冊的地址
1.移動轉向模塊
移動轉向模塊是所有EV3使用者都應該知道如何使用的一個極為重要的模塊,它是控制EV3移動的最基本、最簡單的模塊。

程序案例1
本程序先讓機器人向前行駛3秒,再向左轉彎,電機轉50°,再向前走一段距離,最后后退。

2.等待模塊

3.循環模塊
循環模塊是一個非常重要且可以讓許多模塊依次循環的“神奇”模塊。它可以設置停止條件—當“循環”模塊結束時判斷停止條件是否達成,如果達成,就會結束循環。如果你想讓條件一達成就停止循環,試試“循環中斷”模塊吧。

4.切換模塊
切換模塊使程序塊在若干個選項里以當前的狀況進行選擇。

程序案例2
本程序先讓A端口的中型電機以每分鐘50轉的速度開始正轉,再讓D端口的大型電機正轉6秒,之后讓A端口上的中型電機反轉1秒的同時讓C端口的中型電機正轉20圈。

程序案例3
本程序先檢測D端口上的電機角度,再把這個數字顯示到屏幕上。

程序案例4
本程序檢測3端口上的顏色傳感器的顏色為紅色還是黑色(如果是其他顏色默認為黑色),如果是紅色就向左轉,持續3秒;如果是黑色就向右轉,持續3秒,一直循環。

程序案例5——巡線程序
巡線程序是EV3里一個非常經典且實用的程序,它的作用是讓機器人一直沿線前進。它的原理是當顏色傳感器檢測到某顏色(此處為黑色)時右轉,檢測到另一顏色時(此處為白色)時左轉。

程序案例6
本程序先等待上或下程序塊按鈕被按下,再根據按的按鈕決定前進還是后退。

程序案例7
本程序先讓車向前移動一段距離,再讓D端口上的電機轉1圈,如此循環,直到觸動傳感器被按下,最后向前移動一小段距離。

程序案例8
本程序檢測A端口的電機的角度,再根據度數來調整程序塊上發出的音量。

5.變量模塊
變量模塊是EV3復雜程序中非常重要的一個模塊。它使EV3記住一個數字、邏輯或一些文本,到需要時讀取出來。你可以在一個程序中設置多個變量。
注意:變量模塊的名稱與變量的作用沒有關系。

程序案例9
本程序在程序塊顯示屏上顯示燈開的時候,按一下程序塊按鈕,燈關;在關的時候,按一下燈開,一直循環。

6.范圍模塊
范圍模塊判斷一個數字是否在兩個另外的數字(上限、下限)之間。

程序案例10
本程序測試3端口的顏色傳感器的反射光線強度,如果光線強度在45~55之間就顯示勾號,如果不是就顯示叉號。

7.數學運算
“數學運算”模塊把一個數字或多個數字自動進行一個或多個運算。

程序案例11
本程序把當前的電機角度除以3后與顏色傳感器反光值相乘,再把這個值顯示到屏幕上。

程序案例12
本程序是一個“近程”遙控器。當機器人檢測到左邊(端口2)的觸碰傳感器被按下時,它就會驅動左邊的電機,使機器人向右走;當檢測到左邊的觸碰傳感器被按下時,就會驅動右邊的電機,使它左轉。

程序案例13
本程序先讓機器人向前行駛,并穩定0.5秒后只要C端口(和B端口的速度差不多)的電機的速度處在48~52r/min的范圍之外就會被判定為撞墻,就會往后退,并且說“sorry”,以此一直循環。

程序案例14
本程序測試觸動傳感器被按動的時間有多長,再根據按動的時間規定它行駛的角度。

8.消息傳遞模塊
“消息傳遞”模塊用藍牙來完成消息的傳遞,它是機器人遠程無線相互傳遞消息的不可或缺的一個模塊。

9. EV3藍牙使用指南
① 打開EV3,打開【設置】;
② 打開【Bluetooth】欄,勾選【Bluetooth】選項;
③ 打開【Connections】,點擊【Search】選項,稍候至綠燈亮起;
④ 選擇要連接并已經打開的EV3,選擇【Connect】并靜候至綠燈亮起。
程序案例15——藍牙遙控汽車
第一個程序塊(遙控器)上的程序:本程序測試左(和右)程序塊按鈕是否被按下,如被按下就向名為“car”的程序塊發送邏輯消息“真”,反之則發送消息“假”。

第二個程序塊(車)上的程序:本程序讓機器人接收第一個程序塊(遙控器)傳來的指令,根據信息判定是否要轉動電機。

10.我的模塊
有時候我們希望可以自己設計一個程序模塊,樂高機器人EV3編程軟件里就有這樣一個功能。現在就介紹一下創建“我的模塊”方法。
① 框選要制作為“我的模塊”的模塊(注意:不要框選到【開始】模塊),點擊【工具】—【我的模塊創建器】。
② 編輯模塊【名稱】【描述】及【“我的模塊”圖標】,完成后點擊【完成】。

程序案例16——秒表
想必大家都使用過秒表,它是一種能計時的工具,有些還帶有計次功能。本案例就是要制作一個有計次功能的秒表。

開始編程前,先設定4個變量如下:
● time 數字型,用來保存上次暫停時的時間;
● start 邏輯型,用來判定秒表是否在“開始”狀態;
● time 數字排列型,用來保存計次數據;
● jicipg 數字型,用來記錄當前顯示的是第幾頁計次。
① 準備部分 清屏,重置時間。

② 計時器開始/暫停的控制 檢測端口1上的觸動傳感器是否被按下,如果被按下,就再檢測是否正在計時(即檢測名為“start”的邏輯變量是否為“真”)。如果在計時,則停止計時,把變量“start”設為“假”,將數字變量“time”加上計時器上的值;如果不在計時,則開始計時,把變量“start”設為“真”,將計時器歸零。

③ 負責計次的“add_jici”模塊
制作方法:先拼起上圖中的模塊,再框選出剛剛拼起的模塊,點擊【工具】—【我的模塊創建器】,將模塊名稱設為“add_jici”,點擊【確定】即可創建“add_jici”模塊。

④ 負責控制計次/清零的端口2 本程序檢測端口2上的觸動傳感器是否被觸發,如被觸發,則檢測秒表是否為“開始”狀態,如為“開始”狀態,則計次;如不為“開始”狀態,則清零。

⑤ 負責給計次翻頁的程序塊按鈕 本程序檢測上程序塊按鈕或下程序塊按鈕是否被觸發,如下程序塊按鈕被觸發,則將變量“jici_pg”加1(即為將計次頁數向后翻一頁),等待松開程序塊按鈕,松開后清屏并繼續程序;如上程序塊按鈕被觸發,測試計次頁數是否大于或等于1,如是,則將變量“jici_pg”減1(即為將計次頁數向前翻一頁),等待松開程序塊按鈕,松開后清屏并繼續程序。


⑥ 用來顯示計次的程序 一個“jici”模塊只會顯示一排計次,所以要實現在同一個屏幕上顯示5排計次就需要運行5次。制作“我的模塊”需要拼砌程序(不需要連接數據線)后點擊【添加參數】按鈕。設置參數后點擊【完成】方可連接數據線。“jici”模塊的工作原理是將變量“jicipg”乘以5后與計次在本頁的序號(也就是x+1)相加,得到的數字為計次編號。如果這個數字比計次的總數低,就可以顯示,如果大于或等于這個數,則不可顯示,否則程序會崩潰,因為有未定義的變量。

⑦ 用來顯示時間的程序 本程序循環檢測秒表是否為“開始”狀態,如為“開始”狀態,則將數字變量“time”的數值和計時器秒數相加并顯示到屏幕上。
想知道更多關于EV3的知識,請在編程軟件里點擊【幫助】—【顯示EV3幫助】。

? 這里所介紹的零件只是指本書中所用到的主要零件。
- Blockchain Quick Start Guide
- Learning Apache Cassandra(Second Edition)
- 自動檢測與傳感技術
- 模型制作
- ROS機器人編程與SLAM算法解析指南
- 21天學通Java
- Building Google Cloud Platform Solutions
- Cortex-M3嵌入式處理器原理與應用
- Apache Spark Quick Start Guide
- PowerPoint 2010幻燈片制作高手速成
- 軟測之魂
- Hands-On Geospatial Analysis with R and QGIS
- Cisco UCS Cookbook
- 系統建模與控制導論
- 牛津通識讀本:大數據(中文版)