2020年10月26日 星期一

[RPi] GPIO

  • Tutorial
  • tutorial slide
  • tutorial git 
  • homework
  • GPIO.setmode
  • register events callback
  • GPIO.add_event_detect(GPIO_num, event, callback, time)
  •  

    2020年10月23日 星期五

    [OpenCV G-API] Graph API

    [OpenVX] portal

    [OpenCL] Portal

    2020年10月16日 星期五

    [RPi] GPIO pin

    GPIO.setmode時搭配使用
    • GPIO.setmode(GPIO.BOARD)
      : 主要參考 pin#, Z字形編號
    • GPIO.setmode(GPIO.BCM)
      : 採 GPIO編號, e.g. GPPIO7

    2020年10月13日 星期二

    [SW] Feature development framework

    • Requirements (SRS) / Motivation
      • source (where)
        • internal
        • external
      • policy: inside-out, outside-in
      • non-feature requirements
        • performance
          • cpu usage, memory bandwidth, size, latency
          • preemption overhead
          • init, peak (when)
        • security
    • Design (HLD)
      • architecture design, cooperation model (protocol stack/SW stack)
        • HW/SW/ feature team / Project team
      • comparison with competitors
    • Maintenance
      • issue distribution / human resource estimation
    • Case study

         

    [RPi] Connection

    • Raspberry Pi (RPi) 連網路
      • Ethernet, 直接連接網路線到區網
      • WLAN, 需設定 AP (Access Point) 的 SSID/password
        • 可以編輯 /etc/wpa_supplicant/wpa_supplicant.conf  (Ethernet 連接後編輯, 或在 /boot partition下編輯)
          network={
              ssid="YOUR WIFI NETWORK NAME"
              psk="YOUR WIFI PASSWORD"
          }
        • 或可透過像 BIOS設定的 raspi-config 做設定
          sudo raspi-config 
    • 連接 RPi
      • Find RPi in LAN
      arp -na | grep -i b8:27:eb
      • Connect RPi (assume IP is found by previous script)
      ssh 192.168.1.111 -l pi
      • Connect RPi with GUI
      ssh -X 192.168.1.111 -l pi
      • Note: MaxOSX Lion 之後預設不支援 X11, 須自行安裝 Xquartz 
    • Copy files (scp)
      • // file tmp.txt on RPi home directory (192.168.1.111)
      •  scp pi@192.168.1.111:tmp.txt ./ 
    • Reference

    2020年10月12日 星期一

    [Python] 執行 executable binary

    • 透過 os package, 可以設定 environment variable 與執行的 binary
    • Sample: wrapper_call_executable
    • import sys
      import os
      
      lib_path = sys.argv[1]
      exe_path = sys.argv[2]
      bin_parameters = sys.argv[3]
      
      os.environ['LD_LIBRARY_PATH'] = lib_path
      os.system(exe_path + " " + bin_parameters)
      

    2020年10月7日 星期三

    [CMake] FAQ

    • Build Type
      • cmake -DCMAKE_BUILD_TYPE=Debug/Release ..
         
    • Dump all variables
        function(dump_cmake_variables)
          get_cmake_property(_variableNames VARIABLES)
          list (SORT _variableNames)
          foreach (_variableName ${_variableNames})
              if (ARGV0)
                  unset(MATCHED)
                  string(REGEX MATCH ${ARGV0} MATCHED ${_variableName})
                  if (NOT MATCHED)
                      continue()
                  endif()
              endif()
              message(STATUS "${_variableName}=${${_variableName}}")
          endforeach()
      endfunction()
        
    • Q: 加了 link_directories, link 時仍找不到 library
    • Q: How to enable C++11?
      • set(CMAKE_CXX_STANDARD 11)
        set(CMAKE_CXX_STANDARD_REQUIRED ON)
        
      • 或是
        ADD_DEFINITIONS(
            -std=c++11 # or -std=c++0x
        )
        

    2020年10月2日 星期五

    [Business] 管理上的盲點

    • 現象
      • 團隊年齡無斷層, 處理能力卻有斷層
        • 看到主管累個半死, 但下屬無力分擔? 或是 team leader離開後, 群龍無首, 明明團隊平均年資 5-10年, 但競爭力有如 0-5年的團隊?
    • 原因
      • 環境造就強者恆強, 弱者恆弱
        • 有價值(重要)的事務永遠留給核心單一人物, 能力培養的資源分配不均, 最後只有高階(重要)與低階(雜務)的人才, 沒有中階人才
    • 解決的方法
      • (仲裁) 權力下放給 junior member, 並搭配 instructor/mentor
        • 賽車手能力提升, 仍須多跑(有實際實務經驗作累積), instructor / mentor 能針對錯誤給予即時性的回饋, 能有不斷進步的成績
      • 調整團隊重要與緊急的事務排序
        • 低階 / 中階 / 高階沒有明確對應的責任, e.g. GUI 應該留在低階, 專案內客戶 coordinate / 內部時程與團隊間溝通由中階負責, 長期與系統規劃由高階管理
        • 雖有明確規劃, 但專案進行時, 由於時間壓力, 並沒有在對的時間安排對的人做對的事情.

    [Society] 適合居住的國家

    • 矛盾
    • 適合生存或適合居住並沒有統一的定義, 適合居住不代表生育率就高, 但生育率低是不是生活的環境或是社會上的價值觀, 環境或生活空間本身就創造了某種環境賀爾蒙? 社會定義了每個人的價值在於工業上的產出, 或是感情上的付出?