2013年5月25日 星期六

Raspberry Pi Note #9 (mjpg streamer)

最近很忙,所以偷懶了一陣子

分享一下關於如何使用mjpg streamer將webcam影像即時顯示在網頁上

http://www.bobtech.ro/tutoriale/raspberry-pi/78-streaming-webcam-in-format-m-jpg-cu-raspberry-pi


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

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 

關於資料庫的部分大多是參考這個

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



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++吧


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

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