2014年9月23日

Rasbean 3.12.28 安裝WiFi realtek 8188eu

上回安裝WiFi很順利,但這回換了新板子,Rasbean直接從NOOB安裝,kernel版本變成 3.12.28,WiFi安裝就沒有這般順利。

必須參考這一篇文章,下載最新板的8188eu.ko & firmware。

將ko和bin解壓縮放置到 /lib/module/kernel-version/kernel/driver/net/wireless

insmod , 版本對了才 probe得到。

不過使用的結果,對不加密的hidden SSID,好像連不起來。

後來用command line

sudo iwconfig wlan0 essid “XXX"

就連線WiFi了

2014年9月19日

banana pi’s bananapi user bug

Banana PI 的 raspbin build,login user 改成bananapi後,好像有點問題。

那就是bananapi 的group設定,根據 /etc/group

users:x:100:bananapi

users 的 group id應該是100

但是根據 /etc/passwd

bananapi:x:1000:1000:,,,:/home/bananapi:/bin/bash

bananapi的gid=1000,並不是users,

其實gid 1000

bananapi@banana ~/c/broadcast $ grep '1000' /etc/group
pi:x:1000:

應該是group pi

 

用ls 去檢驗跟目錄

bananapi@banana ~/c/broadcast $ ls -l /home
total 8
drwxr-xr-x 26 bananapi pi   4096 Sep 19 14:06 bananapi
drwxr-xr-x  3 root     root 4096 Sep 16 16:38 shares
確實目錄的group是pi,

這可能是造成在 fstab 掛載給bananapi失敗的原因。

於是fstab加入最後一行,之前失敗的原因是設uid=users,掛載點得到的卻是root,root

bananapi@banana ~ $ cat /etc/fstab
proc            /proc           proc    defaults          0       0
/dev/mmcblk0p1  /boot           vfat    defaults          0       2
/dev/mmcblk0p2  /               ext4    defaults,noatime  0       1
/dev/sda1       /home/shares/public/disk1 auto uid=bananapi,gid=pi,noatime 0 0

ls 確認

bananapi@banana ~ $ ls -l /home/shares/public/disk1                             total 666740
-rwxr-xr-x 1 bananapi pi   6539540 Nov 26  2009 200911_EEC Company profile.pdf
drwxr-xr-x 2 bananapi pi      4096 Sep 19 12:42 2014-04-03
drwxr-xr-x 3 bananapi pi     12288 Sep 19 14:10 Aishima
drwxr-xr-x 3 bananapi pi      4096 Jan  7  2011 ALi_SDK
drwxr-xr-x 2 bananapi pi      4096 Sep 19 13:17 demo-udp-03
-rwxr-xr-x 1 bananapi pi     37376 Feb 18  2011 Jo's Address.doc
-rwxr-xr-x 1 bananapi pi   3206642 Mar  5  2013 labtest (1).pdf
-rwxr-xr-x 1 bananapi pi 672317431 Mar  6  2011 PapermanClient_101116.exe
drwxr-xr-x 4 bananapi pi      4096 Sep 17 11:27 SoftwareTool
-rwxr-xr-x 1 bananapi pi    606127 Jan 28  2011 tw_commericalinvoice.pdf

於是得到正確的設定,samba NAS 也終於可以正常的寫入資料了

2014年9月12日

Runing Banana pi with Raspbian

今天是玩了一下Banana pi的作業系統。

我下載的版本2014-08-12更新的v3.1

用Win32DiskImage 把 image寫入SD card,開機幾乎無障礙。

不過有以點倒是讓我卡關了許久:

Default user並不是pi,注意看提示,改成bananapi了。

預設密碼好像是 banana

 

raspi-config 被bpi-config取代了。

預設檔案系統:

 

bananapi@banana ~ $ df -h
Filesystem      Size  Used Avail Use% Mounted on
rootfs          3.4G  2.5G  722M  78% /
/dev/root       3.4G  2.5G  722M  78% /
devtmpfs        438M     0  438M   0% /dev
tmpfs            88M  248K   88M   1% /run
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           175M     0  175M   0% /run/shm
/dev/mmcblk0p1   56M   15M   42M  26% /boot

 

約佔用SD 2.5G

磁碟裝置(SD卡)分割情況:


 

(parted) print
Model: SD SD16G (sd/mmc)
Disk /dev/mmcblk0: 15476981760B
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number  Start      End          Size         Type     File system  Flags
1      4194304B   62914559B    58720256B    primary  fat16        lba
2      62914560B  3670015999B  3607101440B  primary  ext4

or

Number  Start   End     Size    Type     File system  Flags
1      4.19MB  62.9MB  58.7MB  primary  fat16        lba
2      62.9MB  3670MB  3607MB  primary  ext4

 

install VNC

sudo apt-get install tightvncserver

2014年9月11日

Outlook

今天在整理公司 outlook 郵件,其實也沒什麼,就是把郵件分季存檔到 pst.  問題是 Outlook 這支程式有够爛的,在開啟數個郵件夾時,裝死擺爛,就是沒反應,等等等。等的人都快瘋了。
電腦因為  outlook 也變得無敵慢的,什麼事也沒辦法做。
最明顯的就是進行資料夾壓縮,每個資料夾也就是5百多M, 一壓縮就像死機了一樣,從來沒有辦法正常的結束或者取消。

2014年8月25日

翻譯練習 - INTRODUCING THE NEW OUT OF BOX SOFTWARE (NOOBS)

原文: http://www.raspberrypi.org/introducing-noobs/

讓初學者完全上手。

直接把他們往深水裡丟,讓他們一舉跨越障礙的前提下開啟這個樹莓派計畫。這種運動比喻,是一種讓他們學習的好方法。但這也免不了讓某些人敬而遠之。而我們並不希望初學者因為恐懼,五分鐘後就把樹莓派丟在一邊。本於這個初衷,我們想要線各位引薦NOOBS。

 

NOOBS讓首次的設置變得非常非常的簡單。你不需要連接網路,也不用下載任何imaging software。只要前往下載頁面,抓一份NOOPS zip壓縮檔,然後解壓縮到一片格式化後的4GB(或更大的) SD 卡內。當第一次開機時,你可以看到一個選單提是你安裝數個作業系統中一個在卡上的可用空間。這選單讓你可以用正規的作業系統像是Raspian, 或者多媒體特定作業系統像是RaspBMC來啟動樹莓派。

 

一旦你安裝了作業系統,你的樹莓機就可以正常的啟動。但是,NOOBS仍然在你的記憶卡內,只要開機時按著shift down,你就可以回到回復的畫面。這讓你可以在不同的作業系統之間切換,或者重新安裝目前損壞的作業系統。它同時也提供一個實用的工具,讓你修改目前安裝作業系統的config.txt系統配置檔,甚至有一個瀏覽器讓你再遇到問題的時候可以到論壇或Google來尋求答案。

editconfig

 

 

感謝 Rob, Gordon, Dom and Floris (of BerryBoot fame), 他們在不到一個月的時間內,一起從無到有的打造。 同時也感謝我們的志工翻譯成不同的語言;還有作業系統的維護,特別是Alex,及時的產生最新的Images整合到zip壓縮檔內。

在不久的未來,我們的夥伴會提供已經預置NOOBS的SD卡,在此之前請下載和試玩看看,讓我們知道你的想法。

七月四日更新:Carrie Anne Philbin from Geek Gurl Diaries 製作了一份教學影片,教你如何自行安裝NOOBS。謝謝Carrie Anne!

2014年8月23日

Install Pyplate on a Raspberry board

這是follow 這篇文章,在raspberry board上架設的小型部落格。

按照步驟進行,沒遇到問題,就架設完成了。

但是進入DashBoard,發佈新文章的時候,似乎發生問題了。

不是internal server error,就是invalid request.

結果問題是,添新文章,自己要指定儲存的檔案名稱。

2014年8月22日

Banana PI SD card partition

剛把banana pi Android SD Card 拿來在linux下檢查了一下,結果下了一大跳。
記憶卡一共被切了13個partitions如下:


Disk /dev/sdc: 15.9 GB, 15931539456 bytes
1 heads, 32 sectors/track, 972384 cylinders, total 31116288 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

   Device Boot      Start         End      Blocks   Id  System
/dev/sdc1         4628480    31114238    13242879+   b  W95 FAT32
/dev/sdc2   *       73728      106495       16384    6  FAT16
/dev/sdc3               1     4628480     2314240   85  Linux extended
/dev/sdc5          106496      139263       16384   83  Linux
/dev/sdc6          139264      172031       16384   83  Linux
/dev/sdc7          172032     1220607      524288   83  Linux
/dev/sdc8         1220608     3317759     1048576   83  Linux
/dev/sdc9         3317760     3350527       16384   83  Linux
/dev/sdc10        3350528     3416063       32768   83  Linux
/dev/sdc11        3416064     4071423      327680   83  Linux
/dev/sdc12        4071424     4104191       16384   83  Linux
/dev/sdc13        4104192     4628479      262144   83  Linux

Partition table entries are not in disk order

partition 3 是第一個分個分割。
實際使用狀況為:

Filesystem            Size  Used Avail Use% Mounted on
/dev/sdc2             128M  4.5M  124M   4% /media/Volumn
/dev/sdc7             504M  427M   78M  85% /media/57f8f4bc-abf4-655f-bf67-946fc0f9f25b_
/dev/sdc12             16M  8.0K   16M   1% /media/PRIVATE
/dev/sdc11            315M  5.4M  310M   2% /media/57f8f4bc-abf4-655f-bf67-946fc0f9f25b
/dev/sdc13            252M  4.2M  248M   2% /media/57f8f4bc-abf4-655f-bf67-946fc0f9f25b___
/dev/sdc1              13G  591M   13G   5% /media/0000-006F
/dev/sdc8            1008M  324M  685M  33% /media/57f8f4bc-abf4-655f-bf67-946fc0f9f25b__

其中sdc1 還是我塞了大概600M的影音資料,否則幾乎都是空的。
電腦只自動掛了7個partitions.


有空的時候在重裝一次驗證看看。

2014年8月20日

Banana pi CF-Bench test

今天做的測試,效能和  HTC sensation 差不多,略遜於 samsung galaxy S2.
之前裝上 WiFi 卡無法開機,證實是電源供應器的問題,雖然標示是2安培,但實際上應該差很大。拿第一代 iPad 的 adaptor, 跑起來完全沒問題。

Raspberry 安裝 wifi

  前天為了測試 banana pi, 特地買了支 TP-LINK 的 TL-WN725N wifi USB dongle.
操作 raspberry 直接用 Google 搜尋,找到這位篇文章

按照文章操作,下載和下指令,很快的 wifi 就裝好了,真是一魚兩吃。

2014年8月19日

Banana PI 試玩

在公司剛好有機會拿到Banana PI的板子,試玩了一下。

大概花了一兩個鐘頭讓板子跑Android 4.2。

 

Android 4.2 Image 可以在這裡下載。

正常來說,不用keyboard和mouse也能開機,但是最好能有mouse。

HDMI輸出是720P,剛好是傳統電式的解析度,沒有HDMI的螢幕,拿有RCA輸入的電視也可以用。

以下幾點要特別注意的:

  1. 和Raspberry PI不同,image 不試用win32diskimange寫入SD卡。而是要用 PhoenixCard寫入。這裡是詳細說明,要選Startup,先Format Normal 在 Burn。這版Android至少要8G的SD Card。
  2. 注意電源供應器要能夠提供足夠的電,可以也把OTG也上電。
  3. 不要接Ethernet,就算裝了也不要啟用,因為沒有MAC 地址,會發生可怕的事。

Android 4.4 出來了,release note要讀,因為現在特別提到,沒有支援WiFi,開機要DC-IN,OTG雙電源。

看到說明,基本上就沒什麼興趣試了。

目前只能在全螢幕下播放影片。

以下是一小段,用banana pi播放youtube的情形。

補充:

16G SD分配後的情形:

image

2014年8月14日

攝影學習: ISO 感光度

有的時候拍一些照片研究比較也挺有趣的。

例如底下這兩張夜景比較,左邊設定ISO1600,曝光1/10秒:右邊則是ISO 100,曝光一秒。

image

兩相比較,ISO 100畫質雖然比較細膩,但是色彩的表現度就比較差了。

底下是原圖:

1-IMG_2834

Canon PowerShot SX50HS 1秒 1/5.6 ISO:100, f = 71.8mm

1-IMG_2835

Canon PowerShot SX50HS 1/10秒 1/5.6 ISO:1600, f = 71.8mm

2014年8月6日

日記

試看看這一隻程式離線時會不會莫名其妙當機。

現在正在電聯車上,往南港展覽館去看展。

發明
1。製作天燈
2。用吹風機灌入熱空氣。

2014.7.31
台股大跌130餘點。

昨天接近午夜12點,高雄發生地下管線氣爆,爆炸範圍超過數10公里。造成22人死亡,其中4人是警消,270餘人受到輕重傷。

2014年7月30日

Android App development

真是亂搞,下載的 ADT bundle 竟然無法在 Eclipse 內 create AVM.
OK button 就是不給按。
我下載的版本是23.2.1258578 64位元 Windows 版本。
聽說這個 bug 22.6.0 就有。
卡關在這裡,真是出師不利。

2014年5月23日

步進馬達研究(二)

昨天在分析了電路和原理後,發覺步進馬達採用共地方式可行。

原來的接法採用的是共電方式,所以驅動時,線圈接地讓電流流過。

其他不作用的線圈則是斷開或者輸出高電位。

 

共地方式則反過來。

為什麼要這樣接,其實主要是考慮到DL293D驅動板的接線。

在馬達驅動端子的中心就有接地點,這樣就不必繞接電源線。

 

接法改變,程式也要跟著改,還好原來的架構不需要怎麼改變,只要把輸出極性反過來。

順便我也把函數打包了一下,雖然還沒有完成,但是也差不多完成一半了。

 

我使用的擴充板雖然也是用L293D H bridge,但是不是直接由主板直接推動,而是透過74595擴充來推動兩組。

如圖:

IMG_20140523_182444

所以沒有辦法直接使用標準函數庫。

目前先寫好一組,我把三種驅動方式全寫進去了。.

主程式用到Messanger Liberary

const byte ONE_PHASE[] = {0x08,0x04,0x02,0x01};
const byte TWO_PHASE[] = {0x0C,0x06,0x03,0x09};
const byte HALF_STEP[] = {0x08,0x0C,0x04,0x06,0x02,0x03,0x01,0x09};
#define ONE_PHASE_DRIVING 1
#define TWO_PHASE_DRIVING 2
#define HALF_STEP_DRIVING 3

class L293stepper
{   public:   L293stepper();   void init();   void steps(int steps,int ms);   int setmode(int mode);   private:   int stepping_mode; // 1: one phase, 2: two phases, 3:half step   int wires[4];   void setwires(byte pat);
};

L293stepper::L293stepper(){   wires[0] = MOTOR1_A;   wires[1] = MOTOR1_B;   wires[2] = MOTOR2_A;   wires[3] = MOTOR3_B;   setmode(3);
}
void L293stepper::init()
{   setwires(0x00);
}
int L293stepper::setmode(int mode)
{   stepping_mode = mode;   return stepping_mode;
}

L293stepper stepper = L293stepper();

void L293stepper::steps(int nsteps,int speed)
{   digitalWrite(MOTOR1_PWM,1);   digitalWrite(MOTOR2_PWM,1);   int j;      if(nsteps >0 ) //clockwise     for(int i=0;i<nsteps;i++)     {       switch(stepping_mode){         case ONE_PHASE_DRIVING:             for( j=0;j<4;j++){                setwires(ONE_PHASE[j]);                delay(speed);             }             break;         case HALF_STEP_DRIVING:             for( j=0;j<8;j++){               setwires(HALF_STEP[j]);                delay(speed);             }             break;         case TWO_PHASE_DRIVING:             for( j=0;j<4;j++){               setwires(TWO_PHASE[j]);               delay(speed);             }             break;         default:             break;       } // end switch      } // end for   if(nsteps <0 ) // counter clockwise     for(int i=0;i>nsteps;i--)     {       switch(stepping_mode){         case ONE_PHASE_DRIVING:           for( j=3;j>=0;j--){             setwires(ONE_PHASE[j]);             delay(speed);           }           break;         case HALF_STEP_DRIVING:           for( j=7;j>=0;j--){             setwires(HALF_STEP[j]);             delay(speed);           }           break;         case TWO_PHASE_DRIVING:           for( j=3;j>=0;j--){             setwires(TWO_PHASE[j]);             delay(speed);           }           break;         default:             break;       } // end switch       delay(speed);     } //end for      setwires(0x00);   digitalWrite(MOTOR1_PWM,0);   digitalWrite(MOTOR2_PWM,0);
}

void L293stepper::setwires(byte outputset)
{   bitWrite(latch_copy, MOTOR1_A, (outputset>>3) & 1);   bitWrite(latch_copy, MOTOR1_B, (outputset>>2) & 1);   bitWrite(latch_copy, MOTOR2_A, (outputset>>1) & 1);   bitWrite(latch_copy, MOTOR2_B, outputset & 1);   shiftOut(MOTORDATA, MOTORCLK, MSBFIRST, latch_copy);   delayMicroseconds(5); // For safety, not really needed.   digitalWrite(MOTORLATCH, HIGH);   delayMicroseconds(5); // For safety, not really needed.   digitalWrite(MOTORLATCH, LOW);
}

2014年5月21日

28BYJ-48 步進馬達實驗(一)

28BYJ-48 是一個單極4相,五線步進馬達。

datasheet寫的不是很清楚,網上查詢相關資料。

http://42bots.com/tutorials/28byj-48-stepper-motor-with-uln2003-driver-and-arduino-uno/

這個步進馬達,內部有一個1/64(實際是63.68395:1)的減速齒輪。

半步八相循環,內部馬達自轉一圈是64steps,每step 5.625度角。

所以,步進馬達自轉一圈需要4096 steps,或更精確點是4076steps。

>> 自轉一圈需要512循環,也就是說一循環進退0.703125度角。如果用在自走車上,老實說走不快。

 

我在5V電源無負載下,嘗試了2種激磁控制方式。

(1)單相激磁控制

當脈波週期下降至2ms,就無法驅動步進馬達。

(2)一、二相激磁控制

每相延遲可以下降到1ms,步進馬達自轉一圈需產生 512x8= 2048 脈波,耗時4.7秒。

目前的程式雖然脈波delay 1ms,但是實際每一線圈工作時間為3.6ms,也就是每一脈波1.2ms。

 

問題:

當步進馬達停止時,是否要保持激磁狀態?

保持激磁狀態需要額外消耗電力,需要脈波控制以降低電力消耗,以降溫嗎?

 

參考:

http://www.geeetech.com/wiki/index.php/Stepper_Motor_5V_4-Phase_5-Wire_%26_ULN2003_Driver_Board_for_Arduino

http://www.codeproject.com/Articles/699986/An-Arduino-Library-to-Control-the-BYJ-Stepper

http://42bots.com/tutorials/28byj-48-stepper-motor-with-uln2003-driver-and-arduino-uno/