簡言之,Linux裝了Samba(含SMB/CIFS實作)之後,就能和Windows互相分享檔案。
安裝Samba:
$ sudo apt-get install samba
多了群組sambashare,讓帳號pi加入該群組:
$ sudo usermod -a -G sambashare pi
把帳號pi設定為Smaba的帳號:
$ sudo pdbedit -a -u pi
會要你設定密碼。
修改設定檔:
$ sudo nano /etc/samba/smb.conf
在最後加入
[pi]
comment=pi's home
path=/home/pi
read only=no
guest ok=no
browseable=yes
create mask=0750
directory mask=0750
然後重新啟動Samba:
$ sudo /etc/init.d/samba restart
然後從其他電腦登入,帳號pi、以及剛剛設定的密碼。
我的rpi的位址是192.168.1.16,請改成你的。
若是Windows:
\\192.168.1.16
若是Mac或Linux:
smb://192.168.1.16/pi
2016/05/31
Raspberry Pi:Samba伺服器
標籤: Raspberry Pi
2016/05/29
Raspberry Pi:安裝OpenELEC
試著在Raspberry Pi 3上安裝OpenELEC,這篇只是隨意記錄,照片也很不清楚(應該抓圖、而不是用相機拍)。
先到OpenELEC網站,下載映像檔。
有分成Raspberry Pi builds與Raspberry Pi 2 builds(也適用於Pi 3)。版本有Stable穩定版、Beta測試版、Legacy舊版。
首先會擴展檔案系統空間,佔滿整張記憶卡,然後自動重開機。
標籤: Raspberry Pi
2016/05/24
Raspberry Pi:VNC伺服器之TightVNC
試著在Raspbian(2016-05-10)上安裝TightVNC伺服器。
先更新套件清單並升級既有套件。
$ sudo apt-get update; sudo apt-get dist-upgrade -y
然後安裝TightVNC伺服器,
$ sudo apt-get install tightvncserver
然後執行,第一次執行時會要求你設定密碼,
$ tightvncserver
輸出訊息裡,會看到「:1」字樣,什麼意思呢?一般當你坐在rpi連接的實體螢幕前,所開啟的X視窗會是:0,而TightVNC伺服器會另開一個,所以是:1。
若想關閉的話,指令如下,
$ tightvncserver -kill :1
執行tightvncserver時,可加上參數,譬如-geometry 1024x768指定解析度,-depth 24指定顏色深度,-pixelformat rgb565等等。
若要修改密碼,指令是vncpasswd。
然後到另一台電腦,安裝VNC客戶端,譬如RealVNC Viewer,支援各種作業系統,如下所示。
新增檔案,
$ sudo nano /etc/systemd/system/tightvncserver.service
內容如下:
[Unit]
Description=TightVNC Server
After=sshd.service
[Service]
Type=dbus
ExecStart=/usr/bin/tightvncserver :1
User=pi
Type=forking
[Install]
WantedBy=multi-user.target
更改擁有人與群組,更改檔案權限:
$ sudo chown root:root /etc/systemd/system/tightvncserver.service
$ sudo chmod 755 /etc/systemd/system/tightvncserver.service
手動啟動:
$ sudo systemctl start tightvncserver.service
手動停止:
$ sudo systemctl stop tightvncserver.service
開機時自動啟動,指令如下:
$ sudo systemctl enable tightvncserver.service
若想移除,指令如下:
$ sudo systemctl disable tightvncserver.service
標籤: Raspberry Pi
2016/05/21
Raspberry Pi:自動掛載USB隨身碟
記錄一下自動掛載USB隨身碟所需步驟,我的USB隨身碟才128 MB、檔案系統是FAT16。
插入USB隨身碟後,下指令:
$ sudo fdisk -l
...省略...
Device Boot Start End Sectors Size Id Type
/dev/mmcblk0p1 8192 137215 129024 63M c W95 FAT32 (LBA)
/dev/mmcblk0p2 137216 31116287 30979072 14.8G 83 Linux
Disk /dev/sda: 125 MiB, 131072000 bytes, 256000 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
Disklabel type: dos
Disk identifier: 0xe82db69c
Device Boot Start End Sectors Size Id Type
/dev/sda1 * 32 255487 255456 124.8M 6 FAT16
發現USB隨身碟對應的裝置檔是/dev/sda,只有一個分割區/dev/sda1。
建立資料夾當做掛載點,並且修改擁有者:
$ sudo mkdir /media/usbstick
$ sudo chown pi:pi /media/usbstick
試著手動掛載:
$ sudo mount -t vfat -o uid=pi,gid=pi /dev/sda1 /media/usbstick
然後就應該能存取USB隨身碟。
解除掛載的指令:
$ sudo umount /media/usbstick
若想開機時自動掛載,先查詢USB隨身碟的UUID:
$ sudo blkid
/dev/mmcblk0p1: SEC_TYPE="msdos" LABEL="boot" UUID="0EF2-CA4B" TYPE="vfat" PARTUUID="661c3263-01"
/dev/mmcblk0p2: UUID="e093a5bb-b180-4f87-9d60-467b3e79811d" TYPE="ext4" PARTUUID="661c3263-02"
/dev/sda1: SEC_TYPE="msdos" UUID="F840-AAE1" TYPE="vfat" PARTUUID="e82db69c-01"
/dev/mmcblk0: PTUUID="661c3263" PTTYPE="dos"
查知我的USB隨身碟的UUID是F840-AAE1。然後修改設定檔:
$ sudo nano /etc/fstab
在最後加入這一行:
UUID="F840-AAE1" /media/usbstick vfat rw,defaults 0 0
然後下指令測試:
$ sudo mount -a
若無誤,重開機就應該會自動掛載。
標籤: Raspberry Pi
2016/05/20
Raspberry Pi:固定私有IP與dhcpcd
本篇假定rpi位於路由器之後,路由器會使用DHCP分配私有IP位址。
而Raspbian預設會向DHCP拿動態IP,但如果每次重開機後IP可能會變,非常麻煩。至於如何查知rpi的IP位址,請參閱「Raspberry Pi:查詢IP位址」。
作法一是修改路由器的IP分配設定,譬如可根據MAC硬體位址來分配固定的私有IP位址。
作法二是修改Raspbian的設定。
以前,可修改/etc/network/interfaces,把其中
iface eth0 inet dhcp
改成
iface eth0 inet static
address 192.168.1.177
gateway 192.168.1.1
netmask 255.255.255.0
broadcast 192.168.1.255
(請根據你的網路組態,更換上面的設定。)
不過新版Raspbian(大約是2015年5月之後),改由dhcpcd管理,/etc/network/interfaces裡相關的那一行已變成:
iface eth0 inet manual
就算改成上述設定,也沒用。
應該要修改/etc/dhcpcd.conf,在最後加上:
interface eth0
static ip_address=192.168.1.177
static routers=192.168.1.1
static domain_name_servers=192.168.1.1
(請根據你的網路組態,更換上面的設定。)
然後重開機即可。
標籤: Raspberry Pi
Raspberry Pi 3:Raspbian新版(2016-05-10)
試試Rasbian新版本(2016-05-10),主要改變為支援Pi 3的藍牙與Wi-Fi。
首先是藍牙,在桌面上方工具列、右上角有個藍牙圖示。
軟體更新:Scratch、Sonic Pi、Node-RED、BlueJ、PyPy。
Linux核心升級到4.4。
新Shutdown選項、鍵盤與滑鼠有新的設定選項、Raspberry Pi Configuration可控制1-Wire介面。
新版Raspbian第一次開機時,就會自動擴展檔案系統佔滿整張卡。
若有/boot/wpa_supplicant.conf,會自動搬移到/etc/wpa_supplicant/,這麼一來,我們便可預先放進Wi-Fi連線組態。
標籤: Raspberry Pi
Arduino練習:打字小遊戲,使用矩陣鍵盤和文字型LCD
這一篇講的很簡略,沒有詳細介紹。
成品是個打字小遊戲,LCD會不斷出現1、2、3、*、#、A、B等字元,玩家要按下矩陣鍵盤相對應的鍵,才能消掉,消得越快,分數越高。有點類似遊樂場裡的打鱷魚(或打地鼠)。
所需零件:
- Arduino Uno板。
- I2C介面文字型LCD,相容Hitachi HD44780,之後將使用Arduino內建程式庫LiquidCrystal。
- 4x4矩陣鍵盤。
- 5V蜂鳴器或小喇叭(0.5W、8Ω)。
LCD的SCL接到Arduino的A5(SCL)。
LCD的GND,接地。
LCD的GCC,接5V。
蜂鳴器(長腳)或小喇叭(紅線),接到Arduino的5。
蜂鳴器(短腳)或小喇叭(黑線),接地。
4x4矩陣鍵盤,針腳從左到右(共8針、最後一針無用)、接到Arduino的13~6(8個腳位)。
然後是草稿碼,需要兩套程式庫,Keypad與LiquidCrystal_I2C。若直接從Arduino IDE的程式庫管理員安裝LiquidCrystal_I2C,LCD只會出現方塊,不知為何,所以我從網路上找了一套可正常運作的。
遊玩時,LCD上一列會不斷出現字元,玩家要按鍵盤消去;下一列有倒數時間,以及分數,消得越快,分數越高。
Arduino練習:二軸加速計Mx2125
簡單試用二軸加速度感測器Mx2125(Memsic 2125 Dual-axis Accelerometer)。
此感測器由Memsic生產,Parallax弄成分線板,可測二軸,±3 g,輸出訊號需以pulseIn讀取。
據說裡頭有地方會發出熱氣,四周有溫度感測器,藉此測量傾斜程度。
Mx2125正面照與接線圖。
右邊中間腳位是X軸輸出,接到Arduino的2。
左邊中間腳位是Y軸輸出,接到Arduino的3。
平放時,輸出約為5000,往+x傾斜時,X軸的輸出值會變小,傾斜九十度時,約為3800。往-x傾斜時,X軸的輸出值會變大,傾斜九十度時,約為6200。
Y軸的情況也類似。
2016/05/15
【作品分享】德霖李老師之水舞鋼琴
注意,這不是我的作品!
因為覺得很棒,徵得同意後,在此代為發表。
製作者德霖李老師,演奏者曾同學。
這項專題,結合水、燈光、鋼琴三個元素,實做水舞鋼琴,使用Arduino微控制器開發板來控制水舞馬達,藉由輸出不同音高使得相對應的水舞馬達產生水舞效果。
共有三份影片,上傳到Facebook,敬請欣賞:第一份、第二份、第三份。