最近很忙,所以偷懶了一陣子
分享一下關於如何使用mjpg streamer將webcam影像即時顯示在網頁上
http://www.bobtech.ro/tutoriale/raspberry-pi/78-streaming-webcam-in-format-m-jpg-cu-raspberry-pi
2013年5月25日 星期六
2013年2月22日 星期五
MySQL and C++
在linux介面下要在C++使用mysql API很簡單
sudo apt-get install libmysqlclient-dev
就可以#include <mysql/mysql.h>
接下來就自行參照mysql官方的API說明
但是在windows就悲劇了
下載安裝mysql之後,在mysql目錄裡面只有提供給Visual studio編譯器們的.lib
沒有給mingw的.a
所以就要透過mingw的小工具reimp來把,lib轉換為.a
讓mingw可以使用(如果沒有reimp的就自己下載一下吧)
先把mysql安裝目錄下的lib與include資料夾,複製到c:/mysql,因為我覺得他資料夾名稱太複雜,可能會有不可預期的怪事
開啟cmd(命令提示字元)
輸入
cd c:/mysql/lib
reimp -d libmysql.lib
dlltool -k -d libmysql.def -l libmysql.a
就會生成.a
如果是使用QT,可以在.pro中加入
LIBS += C:/mysql/lib/libmysql.a
sudo apt-get install libmysqlclient-dev
就可以#include <mysql/mysql.h>
接下來就自行參照mysql官方的API說明
但是在windows就悲劇了
下載安裝mysql之後,在mysql目錄裡面只有提供給Visual studio編譯器們的.lib
沒有給mingw的.a
所以就要透過mingw的小工具reimp來把,lib轉換為.a
讓mingw可以使用(如果沒有reimp的就自己下載一下吧)
先把mysql安裝目錄下的lib與include資料夾,複製到c:/mysql,因為我覺得他資料夾名稱太複雜,可能會有不可預期的怪事
開啟cmd(命令提示字元)
輸入
cd c:/mysql/lib
reimp -d libmysql.lib
dlltool -k -d libmysql.def -l libmysql.a
就會生成.a
如果是使用QT,可以在.pro中加入
LIBS += C:/mysql/lib/libmysql.a
INCLUDEPATH += C:/mysql/include\
Raspberry Pi Note #8 (C++ and MySQL)
最近需要透過網路來操作RSP的GPIO
為了達成這個目標,其實有很多方法可以實現
例如使用python搭配Webpy與gpio
或是網路上有強者寫好的,使用java與python
http://code.google.com/p/webiopi/
不過java與python我都不太熟悉
還是比較偏好使用PHP存取資料庫,並且使用C++來存為資料庫與GPIO中間之連結
在網路上找到一篇文章
http://www.metsky.com/archives/554.html
http://www.cnblogs.com/cy163/archive/2009/04/24/1442859.html
http://dev.mysql.com/doc/refman/5.1/zh/sql-syntax.html
關於資料庫的部分大多是參考這個
為了達成這個目標,其實有很多方法可以實現
例如使用python搭配Webpy與gpio
或是網路上有強者寫好的,使用java與python
http://code.google.com/p/webiopi/
不過java與python我都不太熟悉
還是比較偏好使用PHP存取資料庫,並且使用C++來存為資料庫與GPIO中間之連結
在網路上找到一篇文章
http://www.metsky.com/archives/554.html
http://www.cnblogs.com/cy163/archive/2009/04/24/1442859.html
http://dev.mysql.com/doc/refman/5.1/zh/sql-syntax.html
關於資料庫的部分大多是參考這個
2013年2月20日 星期三
Raspberry Pi Note #7 (LAMP Server)
LAMP Server 是許多網頁伺服器常見的架構
LAMP = Linux + Apache(網頁伺服器) + MySQL(資料庫) + PHP(Perl or Python等網頁語言)
如果有小流量個人的網頁架設需求的話RSP其實是一個很棒的平台
既省電又不占空間,隨手塞在牆邊就可以架站
但如果是大流量或是商業使用的話嘛...還是花點錢組台Server
首先,更新一下apt-get list
sudo apt-get update
然後安裝apache
sudo apt-get install apache2
預設是開機會自己啟動,並且網頁的目錄在/var/www
接下來安裝mysql
sudo apt-get install mysql-server
預設也是開機啟動
在接下來安裝PHP
sudo apt-get install php5
如果有圖形化介面資料庫的需求,也可以安裝phpmyadmin
sudo apt-get install php-myadmin
LAMP = Linux + Apache(網頁伺服器) + MySQL(資料庫) + PHP(Perl or Python等網頁語言)
如果有小流量個人的網頁架設需求的話RSP其實是一個很棒的平台
既省電又不占空間,隨手塞在牆邊就可以架站
但如果是大流量或是商業使用的話嘛...還是花點錢組台Server
首先,更新一下apt-get list
sudo apt-get update
然後安裝apache
sudo apt-get install apache2
預設是開機會自己啟動,並且網頁的目錄在/var/www
接下來安裝mysql
sudo apt-get install mysql-server
預設也是開機啟動
在接下來安裝PHP
sudo apt-get install php5
如果有圖形化介面資料庫的需求,也可以安裝phpmyadmin
sudo apt-get install php-myadmin
Raspberry Pi Note #6 (GPIO)
紀錄一下關於RSP的GPIO使用方法
如果是使用python的朋友,可以參考RSP官方所釋出的python GPIO 函式庫
sudo apt-get update
sudo apt-get install python-dev
sudo apt-get install python-rpi.gpio
就可以安裝完成
http://code.google.com/p/raspberry-gpio-python/
https://pypi.python.org/pypi/RPi.GPIO
而在這些連結中有清楚的教學與範例
我並不熟悉python,所以這次的重點還是放在C++上
為了能將RSP的GPIO使用的像是Arduino一樣的簡單容易
https://projects.drogon.net/raspberry-pi/wiringpi/
使用一個好用的函示庫,wiringPi
他也有for python的版本,google wiringPi python 就可以找到
安裝方法有很多種,下面是關於安裝的教學
https://projects.drogon.net/raspberry-pi/wiringpi/download-and-install/
這個函式庫補充了RSP的PWM,I2C與SPI的功能
讓GPIO發揮更多功能
程式撰寫完成之後,編譯的指令為
sudo gcc test.c -lwiringPi -o test
記得要加-lwiringPi
C++的使用者就自己把gcc改成g++吧
如果是使用python的朋友,可以參考RSP官方所釋出的python GPIO 函式庫
sudo apt-get update
sudo apt-get install python-dev
sudo apt-get install python-rpi.gpio
就可以安裝完成
http://code.google.com/p/raspberry-gpio-python/
https://pypi.python.org/pypi/RPi.GPIO
而在這些連結中有清楚的教學與範例
我並不熟悉python,所以這次的重點還是放在C++上
為了能將RSP的GPIO使用的像是Arduino一樣的簡單容易
https://projects.drogon.net/raspberry-pi/wiringpi/
使用一個好用的函示庫,wiringPi
他也有for python的版本,google wiringPi python 就可以找到
安裝方法有很多種,下面是關於安裝的教學
https://projects.drogon.net/raspberry-pi/wiringpi/download-and-install/
這個函式庫補充了RSP的PWM,I2C與SPI的功能
讓GPIO發揮更多功能
程式撰寫完成之後,編譯的指令為
sudo gcc test.c -lwiringPi -o test
記得要加-lwiringPi
C++的使用者就自己把gcc改成g++吧
2013年2月2日 星期六
Current Sensor
http://www.google.com.tw/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&cad=rja&ved=0CDYQFjAA&url=http%3A%2F%2Fwww.allegromicro.com%2F~%2FMedia%2FFiles%2FDatasheets%2FACS714-Datasheet.ashx&ei=zOsMUceXF4KnlQWnyYGADA&usg=AFQjCNGnQpf5D9mTUcEbo_-7Xw26-1O4wA&sig2=-bgW3P-CHq4oNCZphdrEaA
2013年1月21日 星期一
Raspberry Pi Note #5 (QT with OpenCV)
在上一篇提到了關於QT
但是如果是在RSP的環境中需要使用OpenCV來做一些影像處理及使用者介面的撰寫
就還需要再另外安裝函式庫了
需要確認是否有安裝libgtk2.0-dev與pkg-config
OpenCV會使用到相關的東西
sudo apt-get install libgtk2.0-dev
sudo apt-get install pkg-config
確認都是最新版之後
sudo apt-get install libopencv-dev
即可安裝完成OpenCV-2.3.1
如果需要安裝最新版的OpenCV,可能就要自己花一點時間cmake and make
根據我實測,大概要make整整12小時左右,所以沒有使用最新版需求的朋友不要輕易嘗試...會等很久
如果需要自己編譯方法如下
先去OpenCV官網下載linux版本,然後解壓縮,假設是解壓縮到這邊/opencv243
最好是使用root權限來編譯,不然出現甚麼問題都有可能
sudo -i
理論上會切換成root使用者
cd /opencv243
進入解壓縮好的資料夾
mkdir release
建立新資料夾來放編譯完成的檔案
cd /opencv243/release
進入資料夾cmake
cmake ..
cmake上層資料夾到release中
應該等個5分鐘就會好了
make
按下去之後會開始編譯,然後就去睡覺,大概起床就會編譯好了
make instal
安裝編譯完成的東西
這樣就大功告成了
只要在QT 的.pro中加入
OpenCV_Lib = /usr/lib
但是如果是在RSP的環境中需要使用OpenCV來做一些影像處理及使用者介面的撰寫
就還需要再另外安裝函式庫了
需要確認是否有安裝libgtk2.0-dev與pkg-config
OpenCV會使用到相關的東西
sudo apt-get install libgtk2.0-dev
sudo apt-get install pkg-config
確認都是最新版之後
sudo apt-get install libopencv-dev
即可安裝完成OpenCV-2.3.1
如果需要安裝最新版的OpenCV,可能就要自己花一點時間cmake and make
根據我實測,大概要make整整12小時左右,所以沒有使用最新版需求的朋友不要輕易嘗試...會等很久
如果需要自己編譯方法如下
先去OpenCV官網下載linux版本,然後解壓縮,假設是解壓縮到這邊/opencv243
最好是使用root權限來編譯,不然出現甚麼問題都有可能
sudo -i
理論上會切換成root使用者
cd /opencv243
進入解壓縮好的資料夾
mkdir release
建立新資料夾來放編譯完成的檔案
cd /opencv243/release
進入資料夾cmake
cmake ..
cmake上層資料夾到release中
應該等個5分鐘就會好了
make
按下去之後會開始編譯,然後就去睡覺,大概起床就會編譯好了
make instal
安裝編譯完成的東西
這樣就大功告成了
只要在QT 的.pro中加入
OpenCV_Lib = /usr/lib
INCLUDEPATH += /usr/include\
/usr/include/opencv2
LIBS += $$OpenCV_Lib/libopencv_highgui.so\
$$OpenCV_Lib/libopencv_calib3d.so\
$$OpenCV_Lib/libopencv_core.so\
$$OpenCV_Lib/libopencv_features2d.so\
$$OpenCV_Lib/libopencv_flann.so\
$$OpenCV_Lib/libopencv_imgproc.so\
$$OpenCV_Lib/libopencv_legacy.so\
$$OpenCV_Lib/libopencv_ml.so\
$$OpenCV_Lib/libopencv_objdetect.so\
就可以開心使用opencv
2013年1月20日 星期日
Raspberry Pi Note #4 (QT)
這篇寫的是該如何在RSP上安裝QT這個跨平台的C++ IDE
其實滿簡單的
首先
sudo apt-get update
更新完之後
sudo apt-get install qt-sdk
耐心等待下載及安裝完成,就大功告成了
安裝完理論上在圖形化介面中就可以看到QT了
其實滿簡單的
首先
sudo apt-get update
更新完之後
sudo apt-get install qt-sdk
耐心等待下載及安裝完成,就大功告成了
安裝完理論上在圖形化介面中就可以看到QT了
Opencv Note #1
Opencv (Open Source Computer Vision Library)
目前最新版本2.4.3
由於個人需求在Mingw+QT 4.8.4+QT Creator+windows 8的環境下使用opencv
但是QT官網上所提供的QT 4.8.4 是對應於 mingw4.4
由於經過實際測試使用migw4.4編譯opencv會出現一大堆狗屁倒灶的error
使用mingw 4.6就可以成功的編譯
經過幾天測試之後,成功的在這個環境下使用opencv
列出使用的軟體與版本
1.Opencv 2.4.3
2.CMake 2.8.10
3.QT library 4.8.4
4.mingw 4.6
首先,要先確保QT能夠正常的使用mingw4.4編譯程式,不論是安裝QT SDK或是獨立安裝mingw4.4的都無所謂
接下來去下載mingw4.6,安裝到電腦中
之後,將mingw4.6所安裝的資料夾位置中,bin資料夾的路徑位置加入至環境變數中(path)
完成後重新開機
接下來進去QT看看,是否compiler被置換成mingw4.6,再次確認QT編譯正常後
安裝CMake,選好輸入輸出資料夾,configure按到沒有紅字之後generate
開啟命令提示字元(cmd),進入generate出的資料夾,輸入mingw32-make
接下來耐心等待,完成後再輸入mingw32-install
就大功告成了,只需要在QT的專案檔中加入include與lib的路徑即可使用
OpenCV_Lib = C:/opencv_build/lib
目前最新版本2.4.3
由於個人需求在Mingw+QT 4.8.4+QT Creator+windows 8的環境下使用opencv
但是QT官網上所提供的QT 4.8.4 是對應於 mingw4.4
由於經過實際測試使用migw4.4編譯opencv會出現一大堆狗屁倒灶的error
使用mingw 4.6就可以成功的編譯
經過幾天測試之後,成功的在這個環境下使用opencv
列出使用的軟體與版本
1.Opencv 2.4.3
2.CMake 2.8.10
3.QT library 4.8.4
4.mingw 4.6
首先,要先確保QT能夠正常的使用mingw4.4編譯程式,不論是安裝QT SDK或是獨立安裝mingw4.4的都無所謂
接下來去下載mingw4.6,安裝到電腦中
之後,將mingw4.6所安裝的資料夾位置中,bin資料夾的路徑位置加入至環境變數中(path)
完成後重新開機
接下來進去QT看看,是否compiler被置換成mingw4.6,再次確認QT編譯正常後
安裝CMake,選好輸入輸出資料夾,configure按到沒有紅字之後generate
開啟命令提示字元(cmd),進入generate出的資料夾,輸入mingw32-make
接下來耐心等待,完成後再輸入mingw32-install
就大功告成了,只需要在QT的專案檔中加入include與lib的路徑即可使用
OpenCV_Lib = C:/opencv_build/lib
INCLUDEPATH += C:/opencv_build/include\
C:/opencv_build/include/opencv2\
Release: LIBS += $$OpenCV_Lib/libopencv_highgui243.dll.a\
$$OpenCV_Lib/libopencv_calib3d243.dll.a\
$$OpenCV_Lib/libopencv_contrib243.dll.a\
$$OpenCV_Lib/libopencv_core243.dll.a\
$$OpenCV_Lib/libopencv_features2d243.dll.a\
$$OpenCV_Lib/libopencv_flann243.dll.a\
$$OpenCV_Lib/libopencv_gpu243.dll.a\
$$OpenCV_Lib/libopencv_imgproc243.dll.a\
$$OpenCV_Lib/libopencv_legacy243.dll.a\
$$OpenCV_Lib/libopencv_ml243.dll.a\
$$OpenCV_Lib/libopencv_objdetect243.dll.a\
$$OpenCV_Lib/libopencv_ts243.a\
請教了不少人才弄出來,在此感謝這些強者們!
2013年1月14日 星期一
Raspberry Pi Note #3 (VNC Server and VNC Viewer)
這篇是寫給沒有HDMI螢幕的朋友們參考的
有螢幕可以接的就可以跳過這段
繼續上一篇筆記,當RSP連接上網路且可以開啟SSH連線之後
只有文字模式並不完全能夠符合所有人的用途
有時候還是需要圖形化介面
開啟SSH連線並且登入後
sudo apt-get update
先更新清單
sudo apt-get install vnc-server
安裝VNC Server
接下來在用戶端電腦這邊安裝VNC Viewer
sudo vncserver :1 -geometry 1920x1080
開啟VNC Server,通訊埠為5900+1=5901,解析度為1920x1080
VNC Server 通訊埠雖然開啟為1,但事實上是5901,理論上數字較小的port是不可以被占用的

開啟Server之後,下載VNC Viewer

開啟VNC Viewer

輸入IP及通訊埠,這時通訊埠要輸入1

完成之後就可以看到大大的LOGO了
有螢幕可以接的就可以跳過這段
繼續上一篇筆記,當RSP連接上網路且可以開啟SSH連線之後
只有文字模式並不完全能夠符合所有人的用途
有時候還是需要圖形化介面
開啟SSH連線並且登入後
sudo apt-get update
先更新清單
sudo apt-get install vnc-server
安裝VNC Server
接下來在用戶端電腦這邊安裝VNC Viewer
sudo vncserver :1 -geometry 1920x1080
開啟VNC Server,通訊埠為5900+1=5901,解析度為1920x1080
VNC Server 通訊埠雖然開啟為1,但事實上是5901,理論上數字較小的port是不可以被占用的
開啟Server之後,下載VNC Viewer
開啟VNC Viewer
輸入IP及通訊埠,這時通訊埠要輸入1
完成之後就可以看到大大的LOGO了
訂閱:
文章 (Atom)