Lecture 11/28 Servo Motor FC Tien, YP Liu Dept. IE&M, Taipei Tech

Similar documents
AN INTRODUCTION TO PHYSICAL COMPUTING USING ARDUINO, GRASSHOPPER, AND FIREFLY (CHINESE EDITION ) INTERACTIVE PROTOTYPING

1


圖 1 圖 1 電 路 稱 為 Flash ADC, 是 概 念 較 易 理 解 的 一 種 這 裡 舉 擁 有 四 個 比 較 器 的 當 作 範 例, 輸 入 處 為 類 比 電 壓 訊 號 與 參 考 電 壓 訊 號 Vref; 每 個 比 較 器 - 端 接 到 v0~v3, 分 別 為 V

PowerPoint 簡報

The golden pins of the PCI card can be oxidized after months or years

% % 43.13% % % % %

SVS26CS Sensors Module User Guide Rev. 1.0 Aug Copyright 2018 Sivann Inc., All Rights Reserved.

Microsoft Word - 把时间当作朋友(2011第3版)3.0.b.06.doc

地 理 志 鏡 止 煞, 來 達 到 安 宅 的 效 果 4. 門 神 符 紙 : 於 門 板 繪 製 門 神, 作 為 宅 第 的 守 護, 民 宅 所 使 用 的 門 神 題 材, 多 為 天 官 賜 福 或 文 武 官 員 符 紙 是 以 畫 了 符 咒 的 紙 懸 掛 室 內, 或 加 框

Microsoft Word - Arduino电子积木用户手册 V doc

第10章:CCP捕捉/比较/脉宽调制

Microsoft Word - 把时间当作朋友(2011第3版)3.0.b.07.doc

目 录 第 一 部 分 档 案 局 概 况 一 主 要 职 责 二 部 门 决 算 单 位 构 成 第 二 部 分 档 案 局 2016 年 度 部 门 预 算 表 一 2016 年 度 市 级 部 门 收 支 预 算 总 表 二 2016 年 度 市 级 部 门 支 出 预 算 表 三 2016

2015 年 度 收 入 支 出 决 算 总 表 单 位 名 称 : 北 京 市 朝 阳 区 卫 生 局 单 位 : 万 元 收 入 支 出 项 目 决 算 数 项 目 ( 按 功 能 分 类 ) 决 算 数 一 财 政 拨 款 一 一 般 公 共 服 务 支 出 二

第二章 各級人員工作職責

Microsoft Word - Delta Controller ASCII_RTU_TC

穨_1_.PDF

标题

目 录 一 重 要 提 示... 3 二 公 司 主 要 财 务 数 据 和 股 东 变 化... 3 三 重 要 事 项... 8 四 附 录 / 28

第一章

中文摘要 隨著科技快速的發展, 智慧型手機也逐漸普遍, 本研究的重點是利用智慧型手機透過藍芽傳輸功能, 來操控智慧型機器手臂, 藉此幫助行動不便的年長者可以較輕鬆拿取周邊的物品, 達到輔助的功能

朝陽科技大學八十八學年度招考碩士班簡章目錄

2014年大学生村官考试公共基础知识:社会革命和社会改革

xueshu004.doc

投影片 1

Gerotor Motors Series Dimensions A,B C T L L G1/2 M G1/ A 4 C H4 E


C/C++ - 函数

80 Arduino Arduino Arduino YouTube Arduino Arduino Arduino 5

第 二 章 古 代 慢 慢 睁 开 眼 睛, 我 的 面 前 出 现 一 个 女 孩 子, 大 约 十 六 七 岁, 身 穿 淡 绿 色 布 裙, 头 上 两 个 小 圆 髻 特 别 娇 俏 可 爱 医 院 什 么 时 候 出 现 这 么 一 个 可 爱 的 古 装 护 士 啊! 这 医 院 真 有

<4D F736F F D20B9F9B0EABBCDBBAFAB48DEB3B4C1A5BDB3F8A7692E646F63>

目录

國立勤益科技大學 電子工程系 專題實務報告 多功能偵測機器人 指導老師 : 陳英傑教授 專題學生 : 賴泳霖 洪聖凱 1

碩命題橫式

牧 者 心 聲 要 因 心 懷 平 而 作 惡 要 謹 慎 言 行 免 得 舌 頭 犯 罪 ; 惡 人 時 候 要 用 嚼 環 勒 住 口 ( 詩 三 十 九 1) 今 天 社 會 和 教 會 裏 極 其 渴 望 人 能 以 具 體 行 動 勉 勵 走 善 良 正 直 路 作 好 榜 樣 ; 可 惜

净 利 润 和 扣 除 非 经 常 性 损 益 后 归 属 于 母 公 司 股 东 的 净 利 润 分 别 为 亿 元 和 亿 元 ; 3 假 设 本 公 司 2016 年 扣 除 非 经 常 性 损 益 前 归 属 于 母 公 司 股 东 的 净 利 润 分 别 为 6

游戏攻略大全(五十六).doc

Dimensions 尺寸 K RJ45 Connector 48" [1219 mm] D E 48" [1219 mm] RJ45 Connector 接頭 Ø F J 迴路數量 number of circuits K 不間斷安培 continuous amps RJ45 Connector

C/C++ - 字符输入输出和字符确认

Microsoft PowerPoint - C_Structure.ppt

6 C51 ANSI C Turbo C C51 Turbo C C51 C51 C51 C51 C51 C51 C51 C51 C C C51 C51 ANSI C MCS-51 C51 ANSI C C C51 bit Byte bit sbit

Microsoft Word - Finally

Gerolor Motors Series Dimensions A,B C T L L G1/2 M8 G1/ A 4 C H4 E

0 0 = 1 0 = 0 1 = = 1 1 = 0 0 = 1

Microsoft Word - 邁進新紀元.DOC

篇名:飲料機

CHAPTER VC#

B 6 A A N A S A +V B B B +V 2

ii Vue Bootstrap 4 ES 6 Vue Vue Bootstrap 4 ES 6 Vue 2 vue html vue html vue Vue HTML 5 CSS ES 6 HTML 5 CSS Visual Studio Code h

C/C++ 语言 - 循环

C PICC C++ C++ C C #include<pic.h> C static volatile unsigned char 0x01; static volatile unsigned char 0x02; static volatile unsigned cha

untitled

华恒家庭网关方案

<4D F736F F D20AE61AC462DBFAFADB9AD70B565BB50BB73A740B1D0AED7>

Fun Time (1) What happens in memory? 1 i n t i ; 2 s h o r t j ; 3 double k ; 4 char c = a ; 5 i = 3; j = 2; 6 k = i j ; H.-T. Lin (NTU CSIE) Referenc


C/C++语言 - C/C++数据

C/C++程序设计 - 字符串与格式化输入/输出

新・解きながら学ぶJava

概述

新・解きながら学ぶC言語

C语言的应用.PDF

02

全國寺院宮廟基本資料調查表

2013 C 1 # include <stdio.h> 2 int main ( void ) 3 { 4 int cases, a, b, i; 5 scanf ("%d", & cases ); 6 for (i = 0;i < cases ;i ++) 7 { 8 scanf ("%d %d

新版 明解C言語入門編

PowerPoint Presentation

專題製作計畫書

3. 給 定 一 整 數 陣 列 a[0] a[1] a[99] 且 a[k]=3k+1, 以 value=100 呼 叫 以 下 兩 函 式, 假 設 函 式 f1 及 f2 之 while 迴 圈 主 體 分 別 執 行 n1 與 n2 次 (i.e, 計 算 if 敘 述 執 行 次 數, 不

新・明解C言語入門編『索引』

Microsoft Word 八月第一篇V3

全国计算机技术与软件专业技术资格(水平)考试

C 1

bingdian001.com

CC213

Microsoft Word - ACL chapter00a-1ed .doc

厦门创兴科技股份有限公司

SHIMPO_表1-表4

86Duino 每一個波型所佔的時間長度 又稱為周期 頻率(Hz)就是指單位時間內 出現多少個這樣的波型 EX: 一秒內出現 50 個這種樣子的波型 我們就說 頻率就是 60Hz/sec 大量重複的產生這種波 並且透過調整他的周期 頻 率和波長 就可以模擬出各種很像類比訊號的輸出 來實作各種應用 如

<4D F736F F D20D4D3D6BECEC4B8E5C4A3B0E52E646F63>

(FDA )

MICROCHIP EVM Board : APP APP001 PICmicro Microchip APP001 40pin PDIP PICmicro Design Tips Character LCM Temperature Sensor Application I/O Pi

1.1 ML_ONOFF = 1 Q 3 Q 8 C 0.3V M 2 L 1 ML_ONOFF = 0 Q 3 Q 8 C 1. + R31 VCC R21 10K ML_ONOFF R15 0:off 1:on 1K Green Light VCC=5V L1 Q VDD=12V C

Microsoft Word - Index.doc

三 设 计 思 想 以 及 电 路 原 理 图 1. 小 车 以 Arduino MEGA 作 为 数 据 处 理 中 心, 将 安 装 在 小 车 上 的 超 声 波 模 块 的 信 号 汇 总 到 Arduino, 经 其 处 理 后 输 出 控 制 信 号 到 电 机 驱 动 版, 驱 动 步

C/C++语言 - 运算符、表达式和语句




CC213

伺服驅動系統 逐步選擇機型 1 選擇您的馬達 SIMOTICS S-1FL6 1. 根據控制特性選擇馬達 2. 決定所需轉矩與轉速的馬達功率 低慣量馬達可在轉速及加速方面 額定值 獲得最高動態性能 高慣量馬達可在轉矩及轉速方面獲 得更佳的負載適應 以及最佳的控 制品質 3. 選擇編碼器解析度 4.

第3章.doc

SDP

Microsoft Word - CPE考生使用手冊 docx

<453A5C D5CCFEEC4BF315C6D696E CCEC4B5B55C4D696E6951CAB9D3C3CAD6B2E1A3A E6FB0E6B1BEA3A92E646F63>

mvc

untitled

Microsoft Word - Ch 04 伺服馬達的直接設計法.doc

! "#$% & ())*! ++, +- +.)! ++ ())* / 0!!""#!

C C

Transcription:

Lecture 11/28 Servo Motor FC Tien, YP Liu Dept. IE&M, Taipei Tech

What is Servo Motor? Structure of Servo Motors 伺服馬達 (Servomotor) 是對用於使用伺服機構的馬達 ( 電動機 ) 總稱 伺服 (Servo) 一詞來自拉丁文 "Servus", 本為奴隸 (Slave) 之意, 此指依照命令動作的意義 所謂伺服系統, 就是依照指示命令動作所構成的控制裝置, 應用於馬達的伺服控制, 將感測器裝在馬達與控制對象機器上, 偵測結果會返回伺服放大器與指令值做比較 由此可知, 因為伺服馬達是以回饋訊號控制, 與藉由輸入脈波訊號控制的步進馬達有所區別

What is Servo Motor?

What is Servo Motor? 本實驗介紹一顆簡單的伺服馬達, 它只需要很少或根本不需要外加的電路, 就能 夠輕易的被微處理器所控制, 而且已經有現成的輸出端可以連接需要驅動的物件 具有位置控制或速度控制兩種 內部回傳線路幫助控制位置或速度 簡易三線 ( 式 )PWM 5V 介面

Types of Servo Motor 除了本實驗使用的伺服馬達外, 市面上也有許多同樣是三線式的伺服馬達, 從手指大小的伺服馬達到汽車用的大型伺服馬達都充斥著三線式伺服馬達的蹤影 右圖為另外兩種三線式的伺服馬

三線式伺服馬達 三線式伺服馬達的三條線各自用途如下圖所 示 紅色和黑色線連結至電源供應處, 而黃色線 則為訊號線 PWM 頻率為 50 Hz (i.e. every 20 millisecs) 脈波寬度範圍介於 1 到 2 millisecs 1 millisec(1000μs) = 完全反轉的位置 2 millisec(2000 μs)= 完全正轉位置 三線式的伺服馬達控制方式為 PWM 訊號控制, 經由控制 PWM 訊號 HIGH 的時間來控制馬達 的轉速或位置

三線式伺服馬達 下圖為伺服馬達轉動角度與其 PWM 中 HIGH 的時間長短 (Duty 大小 ) 關係圖 要使用 PWM 訊號控制伺服馬達需注意以下數點 : 轉動的角度會依據不同的脈波了保持同樣位置, 脈波必須不斷傳送因為伺服馬達轉動需要時間, 所以脈波傳送過快的話會沒反應

Servo Motor + Arduino 接線 以 P9 來控制馬達之位置 以輸入之時間來控制馬達旋 轉之角度 或以 Lib 直接控制角度

Practice 請練習調整脈波的持續時間 (PWM 訊號中 HIGH 的時間 ) 來得知伺服馬達角度將如何 變化

Arduino 程式 // 伺服馬達歸零 ( 移至中立點 ) int servopin=9; // 設定伺服馬達由 9 腳位控制 void setup(){ pinmode(servopin,output); // 設定 9 腳位為輸出 void loop(){ // 輸出 PWM 訊號使伺服馬達移動到中立點 digitalwrite(servopin,high); delaymicroseconds(1500); // 脈波寬度為 1.5ms digitalwrite(servopin,low); delay(20); 先確認執行此程式是否可以將馬達回到中立點 建立伺服馬達的函式 修改程式 : 將伺服馬達定位在最小角度 修改程式 : 伺服馬達定位在最大角度

Arduino 程式 反覆震盪 // 伺服馬達反覆擺盪 int servopin=9; void setup(){ pinmode(servopin,output); void loop(){ for (int i=0;i<=40;i++) { digitalwrite(servopin,high); delaymicroseconds(1000); digitalwrite(servopin,low); delay(20); for (int i=0;i<=40;i++){ digitalwrite(servopin,high); delaymicroseconds(2000); digitalwrite(servopin,low); delay(20); // 設定 servomotor 由 9 腳位控制 // 設定 9 腳位為輸出 // 伺服馬達定位在最小角度 // 伺服馬達定位在最大角度

Arduino 程式 using Lib <Servo.h> #include <Servo.h> // 引用 Servo Library Servo myservo; // 建立一個 Servo 物件 int value = 0; // 旋轉角度 void setup(){ myservo.attach(9); // Servo 接在 pin 9 void loop(){ if (value == 0){ value = 180; else{ value = 0; myservo.write(value); delay(1500); //myservo.write(180) 是叫 Servo 旋轉到最大角度的位置 //myservo.write(0) 是叫 Servo 旋轉到最小角度的位置 經由引入 Lib 控制 servo motor 指令 Servo myservo; 宣告一個 instance Servo.attach(pin); 連接控制之腳位 Servo.write(value); 旋轉角度 Servo.detach(); 結束控制

程式 #1 -- RC 伺服馬達 (Radio Controlled Servo Motor) 大部份是透過 PWM (Pulse Width Modulation, 脈波寬度調變 ) 來控制, Arduino 裏內建了 Servo Library 讓事情變得很簡單, 可以很輕鬆地控制伺服馬達 Command: #include <Servo.h> // servo motor lib MyServo.attach(9); //Define Servo motor Signal Pin MyServo.write(Turn_Angle); // Turn servo motor #include <Servo.h> Servo MyServo; // build a servo object int Turn_Angle =0; int potpin = 0; void setup() { MyServo.attach(9); // Servo 接在 p9 Serial.begin(9600); void loop() { if (Turn_Angle == 0) Turn_Angle = 180; else Turn_Angle = 0; Serial.println(Turn_Angle); MyServo.write(Turn_Angle); delay(1500);

Practice 2: 另一接法 把伺服馬達紅線接到 +5v 黑線接到 GND, 訊號線接到 pin 9, 可變電阻中間腳位接到類比輸入 (Analog Input) pin 0, 剩下的兩支腳位, 一支接到 5V, 另外一 支接到 GND

程式 #2 -- 可變電阻來控制 RC Servo motor 運用可變電阻來控制 RC Servo motor 之角度 Command: Turn_Angle = analogread(potpin); // 讀取可變電阻 ( 數值介於 0 到 1023) Turn_Angle = map(turn_angle, 0, 1024, 0, 179); // scale the value #include <Servo.h> // build a servo object Servo MyServo; int Turn_Angle =0; int potpin = 0; void setup() { MyServo.attach(9); // Servo 接在 p9 Serial.begin(9600); void loop() { Turn_Angle = analogread(potpin); // 讀取可變電阻 ( 數值介於 0 到 1023) // put your main code here, to run repeatedly: Turn_Angle = map(turn_angle, 0, 1024, 0, 179); // scale the value Serial.println(Turn_Angle); MyServo.write(Turn_Angle); delay(15);

Parallax Continuous Rotation Servo Bidirectional continuous rotation 0 to 50 RPM

Parallax Continuous Rotation Servo 接線方式 白訊號 紅 +5V 黑 GND

Parallax Continuous Rotation Servo 驅動方式 1/2 PWM 1300 us 順時針轉動 PWM 1500 us 停止 PWM 1700 us 逆時針轉動 #include <Servo.h> Servo servoleft; int servopin = 12; void setup() { servoleft.attach(servopin); +5V GND P12 白紅黑 Servo 停止校正 void loop() { servoleft.writemicroseconds(1500); delay(30000); servoleft.detach();

Parallax Continuous Rotation Servo 驅動方式 2/2 #include <Servo.h> Servo servoleft; int servopin = 12; +5V GND P12 白紅黑 Servo void setup() { servoleft.attach(servopin); void loop() { servoleft.writemicroseconds(1300); delay(3000); servoleft.writemicroseconds(1500); delay(3000); servoleft.writemicroseconds(1700); delay(3000); servoleft.detach();

實驗 透過藍牙傳輸控制伺服馬達 +5V GND P12 白紅黑 Servo +3.3V GND P8 P9

實驗 透過藍牙傳輸控制伺服馬達 // 引用程式庫 #include <SoftwareSerial.h> #include <Servo.h> Servo servoleft; int servopin = 12; // 接收腳, 傳送腳 SoftwareSerial BT(8, 9); char val; // 儲存接收資料的變數 void setup() { // 設定藍牙模組的連線速率 BT.begin(9600); servoleft.attach(servopin); servoleft.writemicroseconds(1500); void loop() { if (BT.available()) { val = BT.read(); switch(val) { case '1': BT.print(val); servoleft.writemicroseconds(1300); break; case '2': BT.print(val); servoleft.writemicroseconds(1500); break; case '3': BT.print(val); servoleft.writemicroseconds(1700); break; case '4': BT.print(val); servoleft.detach(); break;