【多對一遙控】打造多功能會議簡報器

Description

Description
作者:chtseng

前言

由於打理開會事宜的美女A最近轉去了業務單位,因此會議期間點按「上一頁」、「下一頁」的簡報工作順勢便落到我身上(誰叫我剛好坐PC前面呢?)。經驗累積下來,發現操控簡報上下頁的工作其實不如想像中的容易,掌握點按滑鼠的時機才是真正的竅門所在。

雖然買支無線簡報器就可以擺脫人肉滑鼠的命運了,但還是靈機一動,想到或許可以利用凌陽創新的RF Uart模組來DIY一支簡報筆,它的無線訊號穩定距離夠遠,甚至還能做到多對一功能,亦即想要有幾個發射端就能有幾個,讓每位簡報者人手一支想按就按,這功能可是目前市面上千元左右的簡報筆都沒有的神力呢!

功能與架構說明

希望該多功能簡報筆能作到的功能如下:

  • 能切換簡報的上、下頁。
  • 能支援多個簡報控制器同時使用。
  • 能發射雷射指示紅點。

要做出一台擁有上述功能的簡報筆,如果不使用創新RF Uart模組的話,您應該會打算這麼作:

分別用兩片Arduino開發板以及nRF2401 2.4G RF模組,一端連接PC,一端則作為簡報控制筆。就像下面這樣:

然而如果改用凌陽創新的MUART0-S-1-1模組呢?那麼一切都變得簡單了,甚至連兩片Arduino開發板都省了:

這是怎麼辦到的?

其實原理很簡單,在控制端(簡報端),我們透過按鈕將On/Off訊號經由Uart透過RF傳送給被控端(PC端)來接收,PC接收後再判斷On/Off的次數來判斷要切換簡報的上還是下頁。換句話說,RF Uart所傳送的是使用者的按鈕click動作,PC端收到後再依據此動作來決定切換下頁或下頁。(例如,按一下為下一頁,連續兩下則為上一頁)。

下面我們來看看怎麼DIY這個多功能簡報筆。

材料準備及組裝

以下分為控制端(簡報筆)及PC接收端這兩部份來說明:

A 控制端(簡報筆)

1. 所需材料

簡單的外盒(用3D printer印的)、兩個按鈕(雷射燈與上下鍵翻頁)、凌陽創新的MUART0-S-1-1模組、18650隨身電源、麵包板與少許杜邦線等。

相關圖片

另外還有個雷射指示燈模組,只要5V便可發出雷射光點,這是簡報筆必備的功能。只要在露天查詢關鍵字「雷射模組」便可找到,而且相當的便宜 ,大約$35~$50左右。

2. 接線方式

上面的控制端省略了電池的部份,如果您想要將它作成手持式的話,可自行加入一個充電式的聚合物或18650鋰電池。

以上零件的總費用加一加不會超過$300哦!下面我們來看看怎麼DIY一支簡單好用且功能比美市面千元產品的簡報器。

3. 實際組裝:

內部

當初由於考慮到未來電池盒的擴充,因此外盒設計得比較大。

外形及使用

這是簡報筆的正面及背面,考量到手持時拇指及食指的位置,我們將兩個按鈕分別放置正反兩面且距離不一樣。正面按鈕為雷射光指示,背面為換頁鈕。

B 被控端(連接簡報PC)

1. 所需材料

簡單的外盒(也是用3D printer印的)、凌陽創新的MUART0-S-1-1模組、USB2TTL模組(請選擇可直接接Arduino mino pro的版本)、麵包板與少許杜邦線等。

2. 接線方式

只要將MUART0-S-1-1模組直接接到TTL2USB即可,注意 TX/RX要對接哦!另外,PC這端需要運行python程式,以便透過TTL to USB來接收簡報筆傳來的按鈕訊號。這部份請參考下一段的程式說明。

3. 實際組裝

看完上面的原理及硬體接法說明,是不是很簡單呢?

接著下一段是程式部份,如果您懶得研究可跳過,直接到https://github.com/ch-tseng/urpointer/blob/master/urpointer.py下載執行即可。(要記得先修改TTL2USB的com port)

PC端程式說明

由於簡報筆的目的是要控制Powerpoint簡報的換頁動作,因此我們需要在PC上撰寫程式來接收TTL to USB所傳入的訊號,然後透過模擬滑鼠及鍵盤動作來控制Powerpoint,因此,請先電腦上裝python及pyautogui模組如下:

  1. 安裝Windows版的Python:

請直接到https://www.python.org/downloads/windows/ 下載安裝即可,我建議使用3.X的版本。

  1. 安裝相關套件:

這兩個套件是必要的,請在CMD模式下安裝即可。

pip install pyautogui

pip install pyserial

其中的pyautogui是套非常好用的滑鼠鍵盤模擬軟體,可讓我們用python程式來模擬滑鼠及鍵盤的動作,甚至於補抓螢幕畫面或顯示訊息哦。您可以參考:https://github.com/asweigart/pyautogui

  1. 確認COM port編號:

  1. 儲存下列程式內容為rfUart.py:

有幾個參數可更改調整:

  • 請將comPort參數更改為上一步驟中所記下的com port值。
  • doubleClick為控制double click的間隔時間,單位為秒,愈短代表兩次click的時間要愈近。
  • baudRate為RF Uart模組的baudrate,預設為9600。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
# -*- coding: utf-8 -*-
comPort = "com26"   #PC的TTL2USB port
doubleClick = 0.55  #double click 的間隔最長到幾秒?
ignoreTime = 0.15  #double click間隔多少秒以下就視為一個click (避免誤觸)
baudRate = 9600
import serial
import pyautogui
import sys
import time
serial = serial.Serial(comPort, baudRate)
i = 0
nowtime = 0
lastClicktime = 0
while True:
    nowtime = int(round(time.time() * 1000))
    dclicktime = nowtime-lastClicktime
    if(lastClicktime>0 and (dclicktime>(doubleClick*1000))):
        print ("{}. Last:{} Now:{} Diff:{}  ---> 下一頁".format(i, lastClicktime, nowtime, dclicktime))
        lastClicktime = 0
        i += 1
        pyautogui.typewrite(["right", "ctrlright"])
        serial.flushInput()
    if(serial.inWaiting()):
        serial.flushInput()
        if(lastClicktime==0):
            lastClicktime = nowtime
        else:
            dclicktime = nowtime-lastClicktime
            if(dclicktime>(ignoreTime*1000) and dclicktime<=(doubleClick*1000)):              print ("{}. Last:{} Now:{} Diff:{}  ---> 上一頁".format(i, lastClicktime, nowtime, nowtime-lastClicktime))
                i += 1
                lastClicktime = 0
                pyautogui.typewrite(["left", "ctrlleft"])
                serial.flushInput()
  1. 執行rfUart.py:

於PC上輸入python rfUart.py便開始執行,click單按一次為下一頁,double click則為上一頁,當您下按鈕會發現螢幕輸出如下訊息:三組數字分別為上次、這次及兩者的差距秒數,這些可作為您設定前述參數的參考。

C:\Users\CHE7C6~1.TSE\AppData\Local\Temp\x10sctmp33.png

實際使用測試

接著,我們打開powrepoint軟體並且播放一個簡報,此時您click或double click試看看,會發現Powerpoint也會跟著您的按鍵動作上下翻頁,這是由pyautogui模組模擬鍵盤送出了「左」、「右」的按鍵所造成的。

如果您的會議室更大且簡報的人很多,只有一支簡報筆顯得不夠用,沒關係,您可以使用多個相同編號的MUART0-S-1-1模組製作出更多的簡報筆,可以一起使用沒有問題。

專案來源

Latest posts by ChengChung Tseng (see all)

    Contact

    Contact
    • Category
      Smart Office, 開發板
    • Tags
      MUART0-S-1-1, 簡報筆, 開發板

    Project簡述

    Project簡述
    • 簡述
      或許可以利用凌陽創新的RF Uart模組來DIY一支簡報筆,它的無線訊號穩定距離夠遠,甚至還能做到多對一功能,亦即想要有幾個發射端就能有幾個,讓每位簡報者人手一支想按就按,這功能可是目前市面上千元左右的簡報筆都沒有的神力呢!
    • 作者
      chtseng

    您的姓名 〈需填寫〉

    您的電子郵件信箱 〈需填寫〉

    主旨

    您的信件內容