2018 MakeNTU 工作坊

3/25@博雅202

Created by MakeNTU Mentors

Slides Link

https://ntugeek.github.io/MakeNTU-2018-workshop/

To export pdf:

  • Click this link
  • Print this page as pdf(另存為pdf)

Usage:

  • Press "Space" to next page or action
  • Press "Esc" to navigate

Wifi

ssid: MakeNTU

password: makentu2018

Speaker

沈昶劭

台大電機三年級

  • 開發板(Arduino, RPi, LinkIt...)
  • 3D繪圖 & 列印
  • Web(React & Node.js), Android App
  • ML with Tensorflow, OpenAI Gym

Assumption

每組至少有一個人...

  1. 聽過Linux
  2. 會用Linux
  3. 聽過Raspberry Pi
  4. 會用Raspberry Pi
    (ssh or serial連線, GPIO...)
  5. Python3經驗
  6. (Optional)Javascript經驗

今天要做的東西...

車車Againnnnn

caaaaaaar

小車Powered by...

Demo

它可以做的有...

Two modes

  • Speech Mode
  • CV Mode

Speech Mode

Requirements

  • 聽聲音指令
  • 左右轉 & 停止

CV Mode

Requirements

  • 從相機看指令
  • 左右轉 & 停止
photo sample

How To??

系統架構

CV mode 架構

Speech mode 架構

HTTP 通訊協定

client-server

API

=Application Programming Interface

=黑盒子(?)

API Playground

Response

Server

  • 定義API的URL(網址)
  • 處理request,回應response

Client

  • 對正確的URL發出request(GET, POST, ...)
  • 處理response(直接顯示給user, 畫圖...)

Let's make it!!

make car

系統架構

CV mode 架構

Speech mode 架構

Setup

Car Setup

car

Wiring

  1. RPi pinout
  2. Servo(pwm_pin: 18)
  3. MFRC522(pin name的GPIO為BCM)
  4. Motor with L293D(motor_pin: 23)
    控制一個馬達即可,L293D其中一個input可接地
  5. webcam: 插USB

L293d wiring

RPi setup

  • 連上RPi ssh pi@10.119.199.xxx
    password: raspberry
  • 可參考此Reference
  • 不過應該偏高深
  • 所以請求助大腿or助教

API Setup (先用Azure)

  1. Google Cloud Speech API
    在local筆電上做(不是RPi)!!
    這個先算了有空自己試...
  2. Azure CV API
    (等等會需要複製這個key)

Test API

跑看看 car/tools/speech.py 然後講講話

若順利有transcript則表示setup成功

Test

TODO

Speech mode

Client端

  • 編輯car/tools/speech.py 將翻譯結果轉成request(記得改RPi ip)


Reference

Server 端

  • 編輯car/server.py 以成功接收request並左轉/右轉/停


Reference

CV mode

Server 端

  • 編輯car/modules/camera.py 將webcam拍照的照片上傳azure並回傳response

  • 編輯car/server.py 使車子接收照片分析結果並左轉/右轉/停
Reference
請參考Use text recognition to detect handwriting in an imageAnalyze an image stored on disk

Note

RFID

Server 端

  • 編輯car/rfid_thread.py 使車子讀到RFID卡時停止

  • 編輯car/server.py 使車子讀到RFID卡時停止後開始聽取speech或CV的指令


Reference

參考完整code

git clone https://github.com/CheNgH826/api_car.git

In Progress...

  • web app