Hexo 使用 Google Analytics 進行網站流量分析

先到 Google Analytics 首頁 登入或建立帳戶,新增一個資源,填完以後按取得追蹤編號.
填入帳號名稱、網站名稱和網址 即可按下取得追蹤編號
之後把追蹤編號 UA-xxxxxxxx-x 填入 themes/landscape/_config.yml (我使用的主題為 landscape)

1
google_analytics: UA-xxxxxxxx-x

(追蹤程式碼我是覺得不用貼, 因為)
themes/landscape/layout/_partial/head.ejs 裡有下列這段程式碼

1
<%- partial('google-analytics') %>

會引入 themes/landscape/layout/_partial/google-analytics.ejs

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<% if (theme.google_analytics){ %>
<!-- Google Analytics -->
<script type="text/javascript">
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');

ga('create', '<%= theme.google_analytics %>', 'auto');
ga('send', 'pageview');

</script>
<!-- End Google Analytics -->
<% } %>

看起來 landscape 主題已經有支援 Google Analytics 了, 所以只要在 landscape 主題的 _config.yml 填好 google_analytics 就可以了
之後進 Google Analytics 帳戶頁面 選 即時 > 總覽
再另外開個分頁瀏覽你自己的網站看看有沒有 線上使用者 跟 流量 測試一下就搞定了!

目前 Google 官方已經有出 Google Analytics Mobile App 了,可以看這篇介紹。

參考
在 Hexo 使用 Google Analytics

相關文章
Hexo 本機測試時如何關閉 Google Analytics
Hexo codeblock 插入程式碼區塊與各種程式語言預覽
Hexo 熱門主題列表
升級更新 Hexo upgrade
Ubuntu 安裝 Hexo
Mac OS 安裝 Hexo

Use MPU6050 (GY-521) on the Arduino

官方網站的 MPU6050 介紹
https://playground.arduino.cc/Main/MPU-6050

系統環境

  • Arduino 1.8.3
  • Processing 3.3.5

Arduino 與 MPU6050 的接法

1
2
3
4
5
VCC <---> 3.3V / 5V (GY-521 上有 voltage regulator)
GND <---> GND
SDA <---> A4
SCL <---> A5
INT <---> D2

MPU6050 吐出 Raw Data

下載i2cdevlib
使用裡面附的 MPU6050_raw.ino 範例
Setp 1. 把 i2cdevlib/Arduino/I2Cdev 放到 ~/Arduino/libraries/
Setp 2. 把 i2cdevlib/Arduino/MPU6050 放到 ~/Arduino/libraries/
Setp 3. 打開 arduino > Examples > MPU6050 > MPU6050_raw.ino 編譯上傳即可
Setp 4. 打開 Serial Monitor 調整一下 baud rate (MPU6050_raw.ino 範例是使用 38400), 就可以看到資料一直吐出來了!

顯示 IMU 姿態在畫面上

使用 MPU6050_DMP6.ino 配合 processing IDE 的 Toxi 函式庫

Setp 1. 修改 MPU6050_DMP6.ino 與上傳
註解下段 code

1
//#define OUTPUT_READABLE_YAWPITCHROLL

解開下段 code

1
#define OUTPUT_TEAPOT

Setp 2. 下載 processing IDE 安裝 Toxi 函式庫
下載 Toxi 函式庫 toxiclibs-complete-0020.zip

將 toxiclibs-complete-0020 資料夾解壓縮放到 ~/sketchbook/libraries/
i2cdevlib/Arduino/MPU6050/examples/MPU6050_DMP6/Processing/MPUTeapot/MPUTeapot.pde 放到 ~/sketchbook/examples/MPUTeapot/MPUTeapot.pde

Setp 3. 用 processing IDE 打開 MPUTeapot.pde 按 run
也可以指定com port:

1
2
3
String portName = Serial.list()[0];
把上列修改成下面
String portName = "/dev/ttyACM0"; // or /dev/ttyUSB1

PS. 約需10秒才會穩定,待穩定後可翻轉 GY-521

改造 Google Daydream controller

How I hacked Google Daydream controller (Part VI)
這篇作者是在 Hack Google Daydream Controller, 讓 Controller 有 6DoF 的能力.
簡單說就是 Google Daydream Controller 只有 3DoF, 裡面的 IMU 只能算出旋轉(orientation)沒有位移(position).
所以作者加工了一下, 加上一個會發光的乒乓球, 再透過攝影機捕捉影像經過影像處理的方式計算出 Controller 上光球的 position,
進而達到 6DoF Controller, 有 orientation 也有 position.

內文作者提到 “VR will be big but AR will be bigger and take longer.” 這句話很有意思, 我個人也覺得 AR 應該要很有市場才對.

最後覺得這篇作者太強了, 竟然還利用 touchpad 來寫英文字作為輸入方式, 超酷的整合應用!

還用了 socket.io 加 bootstrap 技術, 把收到的 IMU 資訊圖形化的方式顯示在網頁上.
socket.io 看起來是 node.js 的 socket 通訊函式庫.
bootstrap 是個製作網頁的 Framework.
改天來學習學習!

IMU 硬體比較

MPU9150 是只支持 I2C
MPU9250 是支持 SPI/I2C 兩種方式

MPU9150 裡面是 MPU6050+AK8975,
MPU9250 裡面是 MPU6500+AK8963,
前者性能上要高一些,後者主打低功耗方面的,各種參數要略低一些,比如喚醒速度等。具體請對照數據手冊。

IMU Sensor Fusion Algorithm Survey

Sensor Fusion
AHRS和imu的比較和加速度陀螺儀的融合
VR中的9軸傳感器(重力加速度/陀螺儀/磁力計).md
這篇看起來很厲害, 有空看看 , 裡面有介紹 Oculus融合算法
還順便介紹了三種演算法:

VR技術研究—9軸融合算法—磁力計校準(一)
VR技術研究—9軸融合算法—磁力計校準(二)
四元數AHRS姿態解算和IMU姿態解算分析
Re: [問題] 六軸IMU使用

重力加速度陀螺儀傳感器MPU-6050 中譯手冊

Ubuntu 安裝 Arduino 遇到的問題

本篇紀錄一下在 Ubuntu 安裝 Arduino 過程中遇到的問題。

Q. 上傳程式遇到下列錯誤訊息
avrdude: ser_open(): can't open device "/dev/ttyACM0": Permission denied
檢查一下檔案權限

1
2
$ ls -al /dev/ttyACM0
crw-rw---- 1 root dialout 166, 0 Feb 9 19:57 /dev/ttyACM0

A. 根據官網的說明, 使用下列指令修正

1
sudo usermod -a -G dialout <username>

打完上述指令還需要”重新登入”才會生效

參考文章
https://arduino.stackexchange.com/questions/21215/first-time-set-up-permission-denied-to-usb-port-ubuntu-14-04

MPU6050 介紹

MPU6050 是一款近幾年無論在 Maker 界或是商業應用上皆十分熱門的慣性感測元件(Inertial Measurement Unit,IMU),
內含了三軸加速度計及三軸陀螺儀。
這款 InvenSense 於 2010 年推出的 IC 能如此成功,
除了其低成本、高靈敏度、應用範圍廣等特色以外,最大的功臣為內建的Digital Motion Processor(DMP),
這內建功能強大的小模組可以直接在 MPU6050 內完成加速度計與陀螺儀的 Sensor Fusion,
傳出四元數、尤拉角,免去了以往繁複的矩陣轉換以及減輕微控制器的運算壓力。

OpenCV 與 OpenGL 座標系

本篇紀錄一下 OpenCV 與 OpenGL 座標系。
OpenCV 與 OpenGL 都是右手座標系.
OpenCV 座標系 只要沿著 x 軸 旋轉 180 度 就是 OpenGL 座標系.

OpenCV 座標系:

1
2
3
4
5
6
  z
-----> x
|
|
v
y

OpenGL 座標系:

1
2
3
4
5
6
  y
^
|
|
-----> x
z

參考
https://www.learnopencv.com/rotation-matrix-to-euler-angles/
https://stackoverflow.com/questions/12933284/rodrigues-into-eulerangles-and-vice-versa

Rotation Conversions

在做三維空間物體旋轉時, 經常會從某個旋轉表示式轉換成另一種旋轉表示式
常見的旋轉表示式有:

  • Rotation Matrix 旋轉矩陣
  • Euler Angle 歐拉角
  • Quaternion 四元數
  • Rotation Vector 旋轉向量

這裡有個旋轉表達式的轉換公式與程式的網站
http://euclideanspace.com/maths/geometry/rotations/conversions/index.htm

我自己有寫個 C++ 的版本 libQuaternion 來做這些轉換.

其他參考
三維旋轉表示法 - 歐拉角、旋轉矩陣、旋轉向量、四元數
三維空間的旋轉矩陣

字幕編輯工具

感覺 Openshot 內建的字幕編輯方式不是很好用, 簡單影片還可以應付.

相片停留秒速最好在5~7秒,
10-15分鐘的影片(約120-180張圖),
又含字幕的話(一張配一句話), 那字幕起碼也是120-180句,
按 Openshot 那樣的編輯方式的話, 我可能會編輯到暈掉.

所以思考過後決定用srt外掛字幕的方式來編輯字幕, 之後字幕搞定後, 再來把影片跟字幕做一個整合轉檔.

Ubuntu 下有個字幕編輯工具, 安裝方式如下:

1
sudo apt-get install gnome-subtitles

參考
https://linux.cn/article-4657-1.html