<!-- .slide: data-background="https://i.imgur.com/gJLfldF.jpg" data-background-color="#111111" data-background-opacity="0.2" -->
###### tags: `iot-car` `lab` 返回[物聯網智慧自走車](/s/5c7ggGf0Spqql5Gy31Cqzg)
## 秀操作啦 vs 我就懶嘛.gif <br> <span style="color:#F9BF45;">手動與程式控制</span>
###### [點我開啟簡報模式](/@BEExANT-ta/SJ5BfHqPF#)
###### <kbd>ESC</kbd> 鍵進入總覽模式
###### <kbd>←</kbd> <kbd>↑</kbd> <kbd>↓</kbd> <kbd>→</kbd> 切換頁面
---
<center><img src="https://i.imgur.com/RQj8jZE.jpg" width=40%></img></center>
隨著科技不斷發展加上人越來越==懶==,於是我們開始把很多工作交給機器去做,從執行重複工作的==機械手臂==到能感測周遭環境並做出判斷的==自駕車==,甚至有人連==籃球、弓箭==都要做到自動瞄準呢!
---
{%youtube 1MkrNVic7pw %}
---
{%youtube FycDx69px8U %}
---
## 目標
**熟悉麥克納姆輪車的==運動模式==,以==手動==方式操控自走車完成==八個方向及左右旋轉==的行動,並將手動操控的路徑==以程式方式自動重複執行==,還可另外==加上led燈的控制==。**
---
## 設計原理
- 由於麥克納姆輪的特殊設計,使車子能夠進行==全方位==的移動。
- 以手動操控估算每段==移動路徑所用速度與時間的關係==,將其套用在程式上完成同樣的行為。
- 在每一次移動前設定不同的led顏色。
----
:::info
:globe_with_meridians: 參考資源
- [麥克納姆輪原理與實現](https://www.twblogs.net/a/5bd3a0372b717778ac209bae)
- [麥卡納姆輪 - 維基百科](https://zh.wikipedia.org/wiki/%E9%BA%A6%E5%8D%A1%E7%BA%B3%E5%A7%86%E8%BD%AE)
:::
---
## 範例程式碼
新增程式檔並命名 ==手動與程式控制==,將以下程式碼複製貼上程式編輯區執行。
```javascript=
led_color.set("白");
delay(300);
move_forward.set(100);
delay(1000);
led_color.set("黑");
delay(300);
move_Lforward.set(100);
delay(1000);
led_color.set("紅");
delay(300);
move_Rforward.set(100);
delay(1000);
led_color.set("綠");
delay(300);
move_Rbackward.set(100);
delay(1000);
led_color.set("藍");
delay(300);
move_Lbackward.set(100);
delay(1000);
led_color.set("黃");
delay(300);
move_Lturn.set(100);
delay(1000);
led_color.set("紫");
delay(300);
move_right.set(100);
delay(1000);
led_color.set("粉紅");
delay(300);
move_forward.set(100);
delay(1000);
led_color.set("#FF8000");
delay(300);
move_left.set(100);
delay(1000);
led_color.set("#00FFC8");
delay(300);
move_Rturn.set(100);
delay(1000);
led_color.set("#80ff00");
delay(300);
move_backward.set(100);
delay(1000);
led_color.set("#FF00B4");
delay(300);
move_stop.set();
delay(1000);
```
---
## 程式解說
逐行講解程式意義。
----
```javascript=
led_color.set("白");
```
- 將自走車上的led燈設為白色,等同於 ==```led_color.set("#FFFFFF")```==。
----
```javascript=
move_forward.set(100);
```
- 控制自走車向前移動,速度為100。
---
## 參數修改
為方便實作,以下會將範例程式中可修改的參數標示出來,進行實作時只需修改對應參數,並觀察結果即可。
:::warning
:zap: 詳細內建JS參數參考 - [內建Js參數及功能總覽](/s/wlfjvQBzRPCmJ8LCL3f2Fg)
:::
----
:::success
**led_color.set(=="x"==);**
:::
- x可代入 白、黑、紅、綠、黃、藍、紫、粉紅 八種預設顏色,也可直接代入色碼,例: ==```led_color.set("#FF0000")```== 代表紅色。
----
:::success
**move_==forward==.set(==x==);**
:::
- forward可替換成以下方向
- forward(前)、backward(後)、left(左)、right(右)。
- Lforward(左前)、Rforward(右前)、Lbackward(左後)、Rbackward(右後)。
- Lturn(逆時鐘旋轉)、Rturn(順時鐘旋轉)、stop(停止)。
- x 可代入0~200 ,建議範圍在 30~150之間。
---
## 範例影片
{%youtube QTkAdWpf1lE %}
<a class="btn btn-warning" style="width:100%;color:#333333;" href="/s/BWE9-5cJRJ2KEDSG8f9kvA" role="button"> 場地邊界判定 **⇨** </a>
<a class="btn btn-primary" style="width:100%;" href="/s/aBFEVJ_HRwWLuvoexnhsqw" role="button"> **⇦** 顏色感測器校正
</a>
{"metaMigratedAt":"2023-06-16T14:19:52.032Z","metaMigratedFrom":"YAML","title":"秀操作啦 vs 我就懶嘛.gif - 手動與程式控制","breaks":true,"slideOptions":"{\"transition\":\"slide\",\"transitionSpeed\":\"fast\",\"theme\":\"league\"}","contributors":"[{\"id\":\"a1db0c29-d848-4070-be84-9191a2398ca8\",\"add\":4233,\"del\":1092}]"}