投影片下載 範例下載 https://goo.gl/9elo5a Hackpad 小抄 https://goo.gl/yglima 2

Similar documents
CC (Creative Commons) 姓名標示 非商業性 相同方式分享 姓名標示 你必須給予 適當表彰 提供指向本授權 條款的連結 以及 指出 本作品的原始版本 是否已 被變更 你可以任何合理方式為前述表彰 但不得以 任何方式暗示授權人為你或你的使用方式背書 非商業性 你不得將本素材進行商業目

Pulse Sensor 台灣樹莓派 May 15, 2017/YMU

untitled

标题

入 学 考 试 重 点 考 查 学 生 的 基 础 专 业 知 识 基 本 实 验 操 作 技 能 独 立 思 考 和 动 手 能 力 笔 试 和 面 试 的 试 题 都 有 足 够 的 难 度, 以 利 择 优 录 取 新 录 取 的 研 究 生 第 一 次 见 面, 池 先 生 会 作 一 次

CC213

關於本書 Part 3 CSS XHTML Ajax Part 4 HTML 5 API JavaScript HTML 5 API Canvas API ( ) Video/Audio API ( ) Drag and Drop API ( ) Geolocation API ( ) Part 5

科展報告

Microsoft Word \.U.e.~.g...X...doc

本 课 程 作 为 非 计 算 机 专 业 本 科 通 识 课 程, 是 一 门 理 论 和 实 践 紧 密 结 合 的 实 用 课 程, 内 容 包 括 计 算 机 基 础 部 分 和 程 序 设 计 部 分 计 算 机 基 础 部 分 涵 盖 计 算 机 软 硬 件 组 成 数 制 表 示 操

LK110_ck

ch05

untitled


软件测试(TA07)第一学期考试

AL-M200 Series

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

投影片 1

final

职 位 类 别 : 测 试 工 程 师 工 作 经 验 或 实 习 经 历 : 不 限 岗 位 要 求 : 1. 本 科 及 其 以 上 学 历, 计 算 机 相 关 专 业 2014 届 毕 业 生 ; 2. 实 习 时 间 要 求, 尽 量 一 周 五 个 工 作 日 ; 3. 熟 悉 Wind

XXXXXXXX

雲端 Cloud Computing 技術指南 運算 應用 平台與架構 10/04/15 11:55:46 INFO 10/04/15 11:55:53 INFO 10/04/15 11:55:56 INFO 10/04/15 11:56:05 INFO 10/04/15 11:56:07 INFO

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

目 录 简 介.3 ` 体 系 结 构...4 数 据 层...5 数 据 连 接 器...6 Tableau Server 组 件...7 网 关 / 负 载 平 衡 器...8 客 户 端 :Web 浏 览 器 和 移 动 应 用 程 序...8 客 户 端 :Tableau Desktop..

Microsoft Word - AEH CH13

投影片 1

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

SHIMPO_表1-表4

活 動 紀 要 一 活 動 目 的 至 小 琉 球 和 大 鵬 灣 為 例, 了 解 當 地 特 色 文 化 及 生 態 發 展, 並 促 進 同 儕 之 間 的 友 誼 二 活 動 流 程 表 日 期 :100 年 11 月 19 日 ( 六 ) 時 間 活 動 主 題 活 動 內 容 地 點 主

声 明 本 公 司 及 全 体 董 事 监 事 高 级 管 理 人 员 承 诺 不 存 在 任 何 虚 假 记 载 误 导 性 陈 述 或 重 大 遗 漏, 并 对 其 真 实 性 准 确 性 完 整 性 承 担 个 别 和 连 带 的 法 律 责 任 本 公 司 负 责 人 和 主 管 会 计 工

1

目 錄 第 一 章 weberp 簡 介... 6 第 一 節 概 述... 6 第 二 節 安 全 性... 7 第 三 節 功 能... 7 一 銷 售 及 訂 單... 7 二 稅... 8 三 應 收 帳 款... 8 四 存 貨... 8 五 購 買... 9 六 應 付 帳 款... 9

, 即 使 是 在 昏 暗 的 灯 光 下, 她 仍 然 可 以 那 么 耀 眼 我 没 有 地 方 去, 你 会 带 着 我 么 杜 晗 像 是 在 嘲 笑 一 般, 嘴 角 的 一 抹 冷 笑 有 着 不 适 合 这 个 年 龄 的 冷 酷 和 无 情, 看 着 江 华 的 眼 神 毫 无 温

目 录 第 五 部 分 第 六 部 分 第 七 部 分 第 八 部 分 投 标 邀 请 投 标 人 须 知 附 表 评 标 方 法 和 评 分 细 则 项 目 需 求 和 技 术 方 案 要 求 1


<4D F736F F D B0EABB79A4E5B8D5C344BBBCB065AAA9>


康體藝術

chapter 2 HTML5 目錄iii HTML HTML HTML HTML HTML canvas

f2.eps

IC-900W Wireless Pan & Tilt Wireless Pan & Tilt Remote Control / Night Vision FCC ID:RUJ-LR802UWG

IP505SM_manual_cn.doc

<4D F736F F D FB971BEF7BB50B971A46CB8735FB773A55FA5ABA5DFB7E7AADAB0AAAFC5A475B77EC2BEB77EBEC7AED55FA97EAE61C0F4B9D2B4BCBC7AB1B1A8EEA874B2CE2E646F63>

穨IC-1000

【主持人】:给大家介绍一下,这次的培训是我们画刊部的第三次培训,当然今天特别有幸请来著吊的摄影家李少白老师给我们讲课


2.4 Selenium Python Selenium Selenium Selenium Selenium pip install selenium Chrome WebDriver Google Chrome (Linux, Mac, Windows) Chrome WebDriv

大学计算机基础B.doc

BlackBerry Classic Smartphone-用户指南

北京达唯科技股份有限公司

untitled

校友会系统白皮书feb_08

臺北市私立文德女中99學年度第1學期ㄧ年級 科教學計畫

1 IT IT IT IT Virtual Machine, VM VM VM VM Operating Systems, OS IT

MATLAB 1

本章綱要 -1 節點電壓法 -2 迴路電流法 -3 重疊定理 - 戴維寧定理 -5 諾頓定理 -6 戴維寧與諾頓等效電路之轉換 -7 最大功率轉移定理 Chapter 直流網路分析 indd /11/10 下午 0:58:09

ebook204-2

Microsoft Word - 01民政部門-綜合-定稿0416.doc

A9RF716.tmp

TPM BIOS Infineon TPM Smart TPM Infineon TPM Smart TPM TPM Smart TPM TPM Advanced Mode...8

SHIMPO_表1-表4

Microsoft Word htm

ICTQ Question 6

68369 (ppp quickstart guide)

软 件 工 程 专 业 习 指 南 目 录 一 软 件 工 程 专 业 设 置 背 景 与 发 展 前 景... 3 二 软 件 工 程 专 业 实 践 教 条 件... 4 三 软 件 工 程 专 业 课 程 类 型 及 核 方 式 软 件 工 程 专 业 课 程 类 型...7

目 录 目 录 平 台 概 述 技 术 架 构 技 术 特 点 基 于 统 一 平 台 的 多 产 品 线 支 撑 先 进 性 安 全 性 开 放 性 高 性 能 和

「西醫基層總額支付委員會《第28次委員會議紀錄

Keysight B2900A / Keysight B2961A 6 Keysight B2962A 6 Keysight B2961A B2962A nano-voltmeter / nv/10 fa 10 µvrms 210 V/ 3 A 10.5 A GUI nv 2

附件1

TX-NR3030_BAS_Cs_ indd

Symantec™ Sygate Enterprise Protection 防护代理安装使用指南

w w w.chromaate.com Chroma H-S I-V (MPPT) /61500/ Chroma I-V

ICD ICD ICD ICD ICD

OSI OSI 15% 20% OSI OSI ISO International Standard Organization 1984 OSI Open-data System Interface Reference Model OSI OSI OSI OSI ISO Prototype Prot

Transcription:

Raspberry Pi 工作坊 - 自己做遙控小車 台灣樹莓派 <sosorry@raspberrypi.com.tw> Aug 15, 2015@COSCUP

投影片下載 http://goo.gl/vlthax 範例下載 https://goo.gl/9elo5a Hackpad 小抄 https://goo.gl/yglima 2

CC (Creative Commons) 姓名標示 非商業性 相同方式分享 姓名標示 你必須給予 適當表彰 提供指向本授權 條款的連結 以及 指出 本作品的原始版本 是否已 被變更 你可以任何合理方式為前述表彰 但不得以 任何方式暗示授權人為你或你的使用方式背書 非商業性 你不得將本素材進行商業目的之使 用 相同方式分享 若你重混 轉換本素材 或依本 素材建立新素材 你必須依本素材的授權條款來 散布你的貢獻物

about 台灣樹莓派 element14 指定台灣地區 Raspberry Pi 個人用戶經銷商 4 http://farnell.com/raspberrypi-consumer/approved-retailers.php?region=apac&mer=mer-lm-ob-rpicc-76315

about 台灣樹莓派 專注於 Raspberry Pi 應用與推廣 舉辦社群聚會 / 工作坊 / 讀書會 / 黑客松 Website : https://www.raspberrypi.com.tw/ Facebook : 搜尋 RaspberryPi.Taiwan https://www.facebook.com/raspberrypi.taiwan

分享 x 社群 COSCUP, MakerConf, PyCon 講者 投影片 http://www.slideshare.net/raspberrypi-tw/presentations 程式碼 https://github.com/raspberrypi-tw 6

今日時程 發放材料 + 介紹 /15mins 連線測試 /15mins 小車組裝 + LAB1 /40mins 馬達解釋 + LAB2 /30mins GPIO 控制 + LAB3 /30mins 轉向 /L298N 解釋 + LAB4 /30mins Web+UI+ 控制 + LAB5 /40mims 小車拆解 /15mins 7

連線測試 根據底下的編號 % 連線到 RPi-AP% wpa-psk : 1234567890 筆電連線成功後, 用 ssh 連線到 Pi ip : 192.168.%.1 帳號 / 密碼 pi/raspberry 8

如何讓 Pi 和 PC 互傳檔案 使用 scp 一個實做 SCP(Secure Copy Protocol) 的應用程式 透過 SSH(Secure Shell) 傳輸資料 Windows 請安裝 WinSCP http://winscp.net/eng/download.php 從 Pi 複製檔案到 PC 上 scp pi@x.x.x.x:/home/pi/file.txt. scp file.txt pi@x.x.x.x:/home/pi http://winscp.net/ 9

遙控小車 = 遙控 + 小車 10

遙控車的組成 車體 ( 機構 ) 馬達 / 車輪 ( 動力 ) 控制板 / 微處理器 ( 邏輯 ) 無線網路 / 紅外線 / 藍牙 ( 控制 ) 11

實驗 1 小車組裝 目的 瞭解小車的各項機構 12

所有零件 13

安裝銅柱 14

測速盤 15

馬達電源線 16

固定馬達 17

跑車輪 & 萬向輪底座 18

萬向輪 19

L298N 馬達控制板 20

小車組裝完成 21

實驗 2 馬達驅動 目的 比較各種驅動馬達的方式 22

馬達種類 直流馬達 (DC motors) 伺服馬達 (Servo motors) 步進馬達 (Stepper motors) 23 https://learn.adafruit.com/adafruit-motor-selection-guide

24 https://learn.adafruit.com/adafruit-motor-selection-guide

直流 ( 碳刷 ) 馬達 永久磁鐵定子 轉子和線圈 整流子 電源 Fleming's Left Hand Rule https://learn.adafruit.com/adafruit-motor-selection-guide 25

FA-130RA 直流馬達規格 工作電壓 空載 負載 堵轉 速度和負重的需求 ( 負載 ) 轉速 扭力 ( 轉矩 ) 電源和控制器的配置 工作電壓 消耗電流 堵轉電流 26

1. 馬達和直流電源直接相接 順時鐘旋轉 逆時鐘旋轉 27 http://www.simplecircuitsandprojects.com/circuits/dc-motor.html

2. 透過 GPIO 控制馬達 GPIO = General Purpose Input Output GPIO is a flexible software-controlled digital signal A generic pin on an IC 28 http://raspberrypihobbyist.blogspot.tw/2012/09/so-many-inputs-so-few-gpio-pins.html

Raspberry Pi Model B 的 GPIO (P1) Z 字型的腳位編號 Pin1 Pin3 Z Pin25 Pin2 Pin4 Pin26 SPI / I2C / UART / PWM http://elinux.org/rpi_low-level_peripherals 29

一分鐘學會用 Python 控制 GPIO #!/usr/bin/python import RPi.GPIO as GPIO import time # 載入模組 GPIO.setmode(GPIO.BOARD) # 選擇系統 ( 以實體腳位系統為例 ) LED_PIN = 12 GPIO.setup(LED_PIN, GPIO.OUT) # 定義腳位 print("led is on") GPIO.output(LED_PIN, GPIO.HIGH) time.sleep(3) # 設定腳位狀態 GPIO.cleanup() # 清理 30

控制電路 Motor 馬達 A(Green) 馬達 A(Yellow) RPi Pin16(GPIO4) Pin20(Ground) 馬達 A 31

轉-停-轉-停MOTOR_PIN = 16 GPIO.setmode(GPIO.BOARD) GPIO.setup(MOTOR_PIN, GPIO.OUT) try: while True: print("motor start...") GPIO.output(MOTOR_PIN, GPIO.HIGH) time.sleep(2) print("motor stop!!!") GPIO.output(MOTOR_PIN, GPIO.LOW) time.sleep(2) finally: GPIO.cleanup() 32

為什麼不會動? 33

重新檢視直流馬達規格 工作電壓 空載 負載 堵轉 電源和控制器的配置 工作電壓 消耗電流 堵轉電流 Raspberry Pi GPIO 的電流輸出為 2 ma 到 16 ma 34

3. 透過電晶體驅動馬達 一種可放大 開關 穩壓 信號調節的元件 由於微處理器的輸出微弱 無法驅動大型負載 但可透過電晶體放大訊號 控制外部裝置 常用符號 https://learn.adafruit.com/adafruit-motor-selection-guide http://de.wikipedia.org/wiki/transistor 35

水管閥門功能 腳位意義 ( 依功能分 ) B( 基極 ) 控制閥門 C( 集極 ) 收集電流 實際運作情形 允許大電流通過 微小電流就可控制 E( 射極 ) 射出電流 推動大型負載 http://commons.wikimedia.org/wiki/file:transistor_animation.gif https://learn.adafruit.com/adafruit-motor-selection-guide 36

控制電路 37 https://learn.adafruit.com/adafruit-motor-selection-guide https://ctheds.wordpress.com/2007/10/30/tip-120/

轉-停-轉-停MOTOR_PIN = 16 GPIO.setmode(GPIO.BOARD) GPIO.setup(MOTOR_PIN, GPIO.OUT) try: while True: print("motor start...") GPIO.output(MOTOR_PIN, GPIO.HIGH) time.sleep(2) print("motor stop!!!") GPIO.output(MOTOR_PIN, GPIO.LOW) time.sleep(2) finally: GPIO.cleanup() 38

DEMO $ sudo python dc_motor.py 39

實驗 2 控制馬達轉向 目的 瞭解車子移動的原理 40

回顧剛剛的電路圖 C 極外部電源提供馬達轉動 B 極發送控制訊號讓電晶體導通 一個電晶體電路可控制馬達轉動 C( 集極 ) 收集電流 B( 基極 ) 控制閥門 E( 射極 ) 射出電流 http://www.robotoid.com/my-first-robot/rbb-bot-phase2-part1.html https://learn.adafruit.com/adafruit-motor-selection-guide 41

控制馬達轉向 - H 橋式電路 每一個節點都是電晶體控制電路 42 http://www.robotoid.com/my-first-robot/rbb-bot-phase2-part1.html https://learn.adafruit.com/adafruit-motor-selection-guide

如何用程式控制 連接 Q1 和 Q4 Q3 和 Q2 Q1 和 Q3 無 Q1 和 Q2 Q3 和 Q4 作用 順時鐘轉動 逆時鐘轉動 煞車 慣性自由轉動 短路! 短路! 43 http://www.robotoid.com/my-first-robot/rbb-bot-phase2-part1.html https://learn.adafruit.com/adafruit-motor-selection-guide

如何用程式控制 連接 Q1 和 Q4 Q3 和 Q2 Q1 和 Q3 無 Q1 和 Q2 Q3 和 Q4 作用 順時鐘轉動 逆時鐘轉動 煞車 慣性自由轉動 短路! 短路! 可是... 1. 不小心給錯電就會把電晶體燒掉 2. 一個馬達要搭配四個電晶體電路 3. 我想要一次控制兩個馬達的轉動 http://www.robotoid.com/my-first-robot/rbb-bot-phase2-part1.html https://learn.adafruit.com/adafruit-motor-selection-guide 44

L298N 馬達控制板 電源開關 馬達電源輸入 OUT3 OUT4 OUT1 OUT2 ENA : OUT1, OUT2 生效 IN1 IN2 IN3 IN4 馬達控制接腳 PWM 輸入輸出 5V 電源輸出 IN1-2 : OUT1-2 IN3-4 : OUT3-4 45 ENB : OUT3, OUT4 生效

單輪電路圖 (L298N 要和 Pi 共接地 ) L298N RPi IN1(Green) Pin16(GPIO4) IN2(Yellow) Pin18(GPIO5) 馬達 A L298N OUT1(Yellow) OUT2(Green) Motor 馬達 A(Yellow) 馬達 A(Green) 46

控制單輪正反轉 Motor_R1_Pin = 16 Motor_R2_Pin = 18 GPIO.setmode(GPIO.BOARD) GPIO.setup(Motor_R1_Pin, GPIO.OUT) GPIO.setup(Motor_R2_Pin, GPIO.OUT) try: GPIO.output(Motor_R1_Pin, True) # clockwise time.sleep(3) GPIO.output(Motor_R1_Pin, False) time.sleep(1) # protect motor GPIO.output(Motor_R2_Pin, True) # counterclockwise time.sleep(3) GPIO.output(Motor_R2_Pin, False) finally: GPIO.cleanup() 47

DEMO $ sudo python l298n.py 48

實驗 3 控制小車移動 目的 機構 + 程式 49

車子如何移動 向前走 ( 雙輪逆時鐘旋轉 ) 向後走 ( 雙輪順時鐘旋轉 ) 向右轉 ( 左輪逆時鐘轉, 右輪靜止 ) 向左轉 ( 右輪逆時鐘轉, 左輪靜止 ) 前 左 50

雙輪電路圖 L298N IN1(Green) IN2(Yellow) IN3(Purple) IN4(Orange) RPi Pin16(GPIO4) Pin18(GPIO5) Pin11(GPIO0) Pin13(GPIO1) 馬達 B 馬達 A L298N OUT1(Yellow) OUT2(Green) OUT3(Purple) OUT4(Orange) Motor 馬達 A(Yellow) 馬達 A(Green) 馬達 B(Green) 馬達 B(Yellow) 51

控制小車移動 def stop(): # stop all wheels def forward(): GPIO.output(16, True) GPIO.output(18, False) GPIO.output(11, True) GPIO.output(13, False) time.sleep(1) stop() try: ch = sys.argv[1] if ch == 'w': forward() finally: GPIO.cleanup() 52

DEMO $ sudo python move_car.py [f/b/r/l] 53

實驗 4 無線 (WiFi) 遙控 目的 學習如何從網頁控制硬體 54

網頁伺服器 (Web Server) 一個軟體 回應從 80/8080 port 進來的 HTTP 要求 可透過 CGI 或 module 方式擴充 如 Apache, Nginx, Boa http://www.resultantsys.com/index.php/general/what-is-a-web-application-server/

- A fast, simple and lightweight WSGI micro web-framework $ sudo pip install bottle 56

Hello Bottle $ nano bottle_hello.py from bottle import * @route('/') def index(): return "Hello Bottle" if name == " main ": run(host='0.0.0.0', port=8080)

執行 $ sudo python app-hello.py Bottle v0.12.8 server starting up (using WSGIRefServer())... Listening on http://0.0.0.0:8080/ Hit Ctrl-C to quit. 192.168.1.101 - - [13/Aug/2015 20:08:32] "GET / HTTP/1.1" 200 12 192.168.1.101 - - [13/Aug/2015 20:08:32] "GET /favicon.ico HTTP/1.1" 404 746

用 AJAX 送指令 非同步 JavaScript & XML XMLHttpRequest 物件 無須更新整個頁面

DEMO $ sudo python bottle_control.py ` 60

Raspberry Pi Rocks the World Thanks