Upgrade to Pro — share decks privately, control downloads, hide ads and more …

[MakerConf2014] Raspberry P as an Attending System

[MakerConf2014] Raspberry P as an Attending System

用 Raspberry Pi 做報到系統,結合了觸控螢幕 + NFC Reader + 熱感式印表機。本系統在 MakerConf 2014 報到時實際使用。
https://makerconf.tw

台灣樹莓派

August 15, 2014
Tweet

More Decks by 台灣樹莓派

Other Decks in Technology

Transcript

  1. 姓名標示 — 非商業性 — 相同方式分享 CC (Creative Commons) 姓名標示 —

    你必須給予 適當表彰、提供指向本授權 條款的連結,以及 指出(本作品的原始版本)是否已 被變更。你可以任何合理方式為前述表彰,但不得以 任何方式暗示授權人為你或你的使用方式背書。 非商業性 — 你不得將本素材進行商業目的之使 用。 相同方式分享 — 若你重混、轉換本素材,或依本 素材建立新素材,你必須依本素材的授權條款來 散布你的貢獻物。
  2. • 2012 年以人工開 10 個櫃台報到 (1119 人 ) • 2013

    年以平板感應 NFC 的方式 ( 約 1500 人 ) • 2014 年在報到入口加裝感應門 ( 約 1560 人 ) • 1 分鐘可以有 41 人報到 • 平均一人報到時間為 1.46 秒 • 有 197 人通過閘門但卡片感應失敗 • 2013/2014 的 NFC 由雪爾萊克 (Sharelike) 提供 近年來 COSCUP 報到方式 http://www.ithome.com.tw/news/89509
  3. • 問題: • 本次活動原來預估會有 300 人參加 • 報到區需要 3 人以上

    • 可能的解決方法: • 每個人上傳照片 , 會場以人臉識別報到 • 寫手機 App, 讓所有人安裝 , 報到用手機感應 • 寄發 NFC 識別證 , 報到時用識別證感應
  4. • 問題: • 本次活動原來預估會有 300 人參加 • 報到區需要 3 人以上

    • 可能的解決方法: • 每個人上傳照片 , 會場以人臉識別報到 • 寫手機 App, 讓所有人安裝 , 報到用手機感應 • 寄發 NFC 識別證 , 報到時用識別證感應 • 考慮因素: • 實做時間 , 價格 , 學習性
  5. 常用的 NFC Reader + NFC Tag: PN532 + MiFare Classic

    Cards https://www.adafruit.com/products/364
  6. NFC Data Exchange Format (NDEF) Beginning NFC - Near Field

    Communication with Arduino, Android, and PhoneGap
  7. • 硬體 • NFC Reader: PN532 • NFC Tag: MiFare

    感應白卡 • 軟體 • Libnfc, pynfc • 邏輯 • 事先儲存感應白卡的 UID • 當 reader 讀到 tag 的 UID 時做比對 實做 NFC 感應所需要的準備
  8. • 能顯示報到者的資訊 ( 螢幕顯示 ) • 除了會場報到 , 工作坊報到也能使用 (

    資料庫 ) • 可以列印抽獎聯或收據 ( 熱感式印表機 ) • 可雲端同步資料 ( 無線網卡 ) • 可擴充硬體 ( 串接 ) 多加的功能與對應的硬體
  9. • 內建 BIG-5 中文字型 • 支援 RS-232 或 TTL 通訊介面

    • 可印圖形 / 曲線 / 文字等 • 印刷速度 : 6cm/s • 解析度 : 8 點 /cm 本次選用的印表機特色與規格
  10. • 觸控螢幕 = 螢幕 + 觸控 • 螢幕 = HDMI

    或 RCA 或 RGB • 觸控 = USB 或 SPI/I2C Raspberry Pi 的觸控螢幕選擇 chalk-elec HDMI + USB Gechic 1002 HDMI + USB Adafruit PiTFT RGB + SPI SainSmart 3.2” RGB + SPI
  11. 39 • 一個 4094 只能輸出 8bits • 16bits 需串接兩個 4094

    • 再外接一顆 IC 做訊號同步處理 訊號同步 http://www.myu.ac.jp/~xkozima/lab/raspTutorial3.html
  12. • 直接修改 register 的值 • 步驟 1, 看 datasheet •

    步驟 2, 查 register • 步驟 3, 填對應的值 • 透過 driver 進行操作 控制硬體的方法
  13. // RPI.h struct bcm2835_peripheral { unsigned long addr_p; // 指到實體記憶體位址

    int mem_fd; // 開啟/dev/mem 的fd void *map; // memory map 的回傳 volatile unsigned int *addr; // 指到register 的位址 }; // RPI.c struct bcm2835_peripheral gpio = {GPIO_BASE}; 先定義週邊成一個 structure
  14. void fb_init (int *fb_width, int *fb_height) • { • fb_fd

    = open(“/dev/fb0”, O_RDWR); • fb_mem = (unsigned char *) • mmap(NULL, fb_size, PROT_READ | PROT_WRITE, MAP_SHARED, fb_fd, 0); • } • • unsigned char *fb_get () • { • return (unsigned char *) fb_mem; • } 開啟 Framebuffer 裝置 http://www.myu.ac.jp/~xkozima/lab/raspTutorial3.html
  15. void lcd_send (unsigned char *buffer) • { • lcd_comdat(0x4f, 0x00,

    0x00); // 繪圖開始位置(x,y) = (0,0) • lcd_comdat(0x4e, 0x00, 0xef); • lcd_com(0x22); // 繪圖命令傳輸 • spi_send_buffer(buffer); • } • • void main () • { • lcd_init(IMAGE_SIZE); • while (1)lcd_send(fb_get()); • } 將 /dev/fb0 資料轉送到 GPIO http://www.myu.ac.jp/~xkozima/lab/raspTutorial3.html
  16. • Raspberry Pi Model B • PN532 NFC Reader +

    NFC Tag • 觸控螢幕 • 熱感應印表機 • 一堆線材和電容電阻 所需零件
  17. • 以觸控螢幕說明 Linux 顯示系統 • 從查找 datasheet 學習軟硬整合能力 • 透過不同的硬體介面控制週邊裝置

    • 以一個簡單的系統解決實際問題 • 合作的重要性 ... 本次實做在教學上的應用