Professional Documents
Culture Documents
Học Raspberry Pi Căn Bản
Học Raspberry Pi Căn Bản
Nguồn http://www.raspberrypivietnam.com/hoc-raspberry-pi-tu-a-z/
Tài liệu học Raspberry Pi thì đã có nhiều tuy nhiên đa số đều viết bằng tiếng Anh. Ở
đây mình sẽ tập hợp tất cả bài viết và giới thiệu các nguồn tài liệu hay để các bạn mới
học Raspberry Pi có thể nắm bắt nhanh nhất. Danh mục đang trong quá trình hoàn
thiện nên mình viết tới đâu sẽ bổ sung tới đó. Các bạn muốn mình viết thêm phần nào thì
cứ thoải mái comment ở dưới nha, mình sẽ cố gắng bổ sung.
Raspberry Pi là một chiếc máy tính tí hon giá chỉ 25$ chạy hệ điều hành Linux ra mắt
vào tháng 2 năm 2012. Ban đầu Raspberry Pi được phát triển dựa trên ý tưởng tiến sĩ
Eben Upton tại đại học Cambridge muốn tạo ra một chiếc máy tính giá rẻ để học sinh
có thể dễ dàng tiếp cận và khám phá thế giới tin học. Dự định khiêm tốn của ông đến
cuối đời là có thể bán được tổng cộng 1000 bo mạch cho các trường học. Vậy thì điều
1
gì đã làm nên thành công ngoài sức tưởng tượng của Raspberry Pi khi đã bán được
hơn một triệu bo mạch chỉ trong vòng chưa đầy một năm?
1. Raspberry Pi có mức giá quá hấp dẫn: 25$ cho một chiếc bo mạch có thể làm được
hầu như mọi ứng dụng hằng ngày như lướt web, học lập trình, xem phim HD đến
những ý tưởng mà bạn không ngờ đến như điều khiển robot, nhà thông minh..v.v.
2. Raspberry Pi chạy hệ điều hành Linux: 99% những thứ bạn làm trên máy tính
Windows đều có thể thực hiện được trên Linux và quan trọng là: tất cả đều miễn phí!
3. Raspberry Pi có 8 ngõ GPIO: tức là bạn có thể kết nối và điều khiển các thiết bị trong
cuộc sống thực tế như đèn, động cơ, GPS… Rất nhiều ứng dụng nhà thông minh đã sử
dụng Raspberry Pi làm bộ điều khiển trung tâm.
4. Raspberry Pi có kích thước tí hon: chỉ tương đương một chiếc thẻ ATM và nặng chưa
đầy 50 gram! Gắn với chiếc tivi, bạn có thể biến thành nó thành một thiết bị giải trí
thông minh trong phòng khách. Gắn với màn hình và bàn phím, chuột, bạn có thể biến
nó thành một chiếc máy tính đúng nghĩa. Nhỏ gọn và tiện lợi.
5. Cộng đồng Raspberry Pi phát triển rất nhanh trên thế giới: hầu hết những thắc mắc
của bạn đều được giải đáp rất nhanh và còn hơn thế nữa: bạn có thể tìm thấy hàng
ngàn dự án đã thực hiện và vô số ý tưởng độc đáo.
Với nhưng ưu điểm độc đáo trên, Raspberry Pi đã vượt ra khỏi biên giới của trường
học và trở thành thiết bị ưa thích của rất nhiều người đam mê điện tử và lập trình. Sự
thành công của nó đã mở ra một bước phát triển mới cho tin học: đem máy tính và cảm
hứng lập trình đến gần mọi người hơn bao giờ hết.
Raspberry Pi có gì?
Thiết kế phần cứng thông minh của Raspberry Pi là một trong những lý do khiến nó trở
nên phổ biến. Hãy xem qua Raspberry Pi có gì:
2
1. Trái tim của Pi là
à chip SOC (System-On-Chip)
(System Broadcom BCM2835 chạy ạy ở tốc độ
700mHz. Chip này tương đương với v nhiều loại được ợc sử dụng trong smartphone phổ
thông hiện nay, và có thể ể chạy được
đ hệ điều hành Linux. Tích hợp trên
ên chip này là
nhân đồ họa (GPU) Broadcom VideoCore IV. GPU này đủ ủ mạnh để có thể chchơi 1 số
game phổ thông và à phát video chuẩn
chu full HD.
2. 8 ngõ GPIO (General Purpose Input Output): đúng như tên gọi gọi của nó, từ đây bạn có
thể kết nối và điều
ều khiển rất nhiều thiết bị điện tử/cơ
tử/c khí khác.
3. Ngõ HDMI: dùng để ể kết nối Pi với màn
m hình máy tính hay tivi có hỗ ỗ trợ cổng HDMI.
4. Ngõ RCA Video (analog): khi thiết
thi kế Pi người ta cũng tính đến trường
ờng hợp ng người sử
dụng ở các nước ớc đang phát triển không có điều kiện sắm một chiếc tivi đời mới tíc tích
hợp cổng HDMI. Vì vậy ậy cổng video analog này n được thêm vào, giúp bạn ạn có thể kết nối
với chiếc tivi đời cũ màà không phải
ph lo lắng.
5. Ngõ audio 3.5mm: kết ết nối dễ dàng
d với loa ngoài hay headphone. Đốiối với tivi có cổng
HDMI, ngõ âm thanh được ợc tích hợp theo đường tín hiệu HDMI nên ên không ccần sử dụng
ngõ audio này.
6. Cổng USB: một ột điểm mạnh nữa của Pi là l tích hợp
ợp 2 cổng USB 2.0. Bạn có thể kết nối
với bàn phím, chuột ột hay webcam, bộ thu GPS..v.v qua đó có thể mở rộng phạm vi ứng
3
dụng. Vì Pi chạy Linux nên hầu hết thiết bị chỉ cần cắm-và-chạy (Plug-n-Play) mà không
cần cài driver phức tạp.
7. Cổng Ethernet: cho phép kết nối Internet dễ dàng. Cắm dây mạng vào Pi, kết nối với
màn hình máy tính hay tivi và bàn phím, chuột là bạn có thể lướt web dễ dàng!
8. Khe cắm thẻ SD: Pi không tích hợp ổ cứng. Thay vào đó nó dùng thẻ SD để lưu trữ
dữ liệu. Toàn bộ hệ điều hành Linux sẽ hoạt động trên thẻ SD này vì vậy nó cần kích
thước thẻ nhớ tối thiểu 4 GB và dung lượng hỗ trợ tối đa là 32 GB.
9. Đèn LED: trên Pi có 5 đèn LED để hiển thị tình trạng hoạt động.
10. Jack nguồn micro USB 5V, tối thiểu 700mA: nhờ thiết kế này mà bạn có thể tận dụng
hầu hết các sạc điện thoại di động trên thị trường để cấp nguồn điện cho Pi.
Nhắc đến Linux là người ta nhắc đến sự tự do. Khác với Windows hay MacOS, mã nguồn
mở của Linux cho phép người dùng có thể tiếp cận và tùy chỉnh toàn bộ mã nguồn tùy
theo ý muốn, hoàn toàn miễn phí. Chính vì vậy Linux được chọn để sử dụng làm hệ điều
hành cho Raspberry Pi.
Dựa trên nền tảng Linux, nhiều bản phân phối (distribution) khác nhau được phát triển
như Debian, Ubuntu, Fedora. Một trong số đó, Debian, được chỉnh sửa để hoạt động tối
ưu trên Pi và được gọi là Raspbian (=Raspberry+Debian). Raspbian cũng là hệ điều hành
được phát triển chính thức cho Pi. Hiện nay phiên bản Raspbian mới nhất là Raspbian
Wheezy.
Linux hoạt động trên 2 môi trường chính: môi trường Desktop (giống như Windows) và
môi trường Terminal sử dụng command line (giống như DOS). Trước đây Linux hầu như
chỉ hoạt động trên Terminal gây khó khăn cho người đã quen sử dụng Windows nhưng
gần đây Linux đã chú ý phát triển giao diện đồ họa đẹp mắt không kém gì Windows 8 hay
MAC. Trên Raspberry Pi được cài đặt sẵn giao diện LXDE (Light X11 Desktop
Environment) là một môi trường đồ họa không ngốn nhiều tài nguyên, không đẹp long
lanh nhưng vừa đủ để sử dụng.
Để làm quen với Linux thì các bạn cần biết một số thuật ngữ cơ bản thường được sử dụng
sau:
Command line: là câu lệnh thực hiện một chức năng nào đó trong Linux
Shell: là nơi nhận command line, gửi đến kernel để tính toán và nhận kết quả trả
về từ kernel
Distribution: là bản phân phối của Linux. Thí dụ như Ubuntu, Debian, Fedora,
ArchLinux…
Package: chứa nhiều files và folder để cài chương trình, tương tự như phần mềm
của Windows.
Super user: tương đương với admin
Root = super user
Directory: tương đương với folder ở Windows
GNU: tên của dự án phần mềm miễn phí, rất nhiều phần mềm của GNU được cài
đặt cho Linux
Bootloader: phần mềm chịu trách nhiệm load kernel của Linux khi khởi động.
4
20 command line cần biết trên Linux
Command line rất quan trọng trong Linux vì sử dụng command line người dùng mới có
thể can thiệp sâu vào hệ thống. Ngoài ra mặc dù Linux không yêu cầu cấu hình phần cứng
cao như Windows và LXDE cung cấp hầu hết chức năng cơ bản của hệ điều hành, để thao
tác nhanh và tận dụng hết sức mạnh của Pi thì sử dụng command line trên Terminal là
rất cần thiết vì hệ thống không phải tốn tài nguyên cho giao diện đồ họa.
Sau đây là 20 command line cần biết khi sử dụng Linux. Tuy nhiên các bạn không
cần học thuộc lòng ngay một lúc mà hãy coi như đây là sổ tay các lệnh cần thiết để tra cứu
mỗi khi gặp phải.
man – manual guide. Hướng dẫn. Ví dụ bạn không biết lệnh cd là gì thì hãy gõ man cd
startx – start x environment. Khởi động môi trường desktop X.
ls – listing. Liệt kê tất cả file và folder hiện có trong thư mục
cd – change directory. Chuyển sang thư mục khác
mkdir – make directory. Giống như tạo New Folder trong Windows vậy
rmdir – remove directory. Giống như lệnh delete trong Windows.
mv – move. Di chuyển file hay folder.
rm – remove. Tương đương với delete.
pwd – print working folder. In đường dẫn đầy đủ của thư mục hiện hành.
nano – open Nano text editor. Mở trình soạn thảo văn bản Nano, giống như Notepad ở
Windows.
sudo shutdown -h now Shutdown
sudo reboot Khởi động (restart) lại máy tính
sudo apt-get install Cài đặt phần mềm (package) mới
sudo apt-get remove Gỡ bỏ (uninstall) package
sudo apt-get purge Uninstall hoàn toàn. Kể cả những settings và log.
sudo apt-get update Cập nhật danh sách package mới nhất
sudo apt-get upgrade Nâng cấp tất cả package hiện có trong máy lên phiên bản mới nhất
sudo apt-get autoclean Gỡ bỏ những file setting hay log không sử dụng
sudo apt-get autoremove Dọn dẹp những package không dùng đến
sudo apt-cache search Tìm kiếm 1 package đã được cài đặt hay chưa
Nhóm lệnh thứ 2 liên quan đến những thao tác quan trọng trong hệ thống nên Linux yêu
cầu người sử dụng phải làsuperuser (root) thì mới được thực hiện. Do đó ta phải thêm
từ sudo (=superuser do) trước câu lệnh. Nếu không thêm sudo thì Linux sẽ từ chối thực
hiện và kèm theo giải thích.
Tips: gõ trên command line nghe có vẻ dài dòng so với click chuột trên desktop nhưng
thực ra bạn có thể thao tác rất nhanh bằng cách nhấn phím Tab để Linux auto-complete
câu lệnh của bạn. Ví dụ như muốn tắt máy thì chỉ cần gõ su nhấn Tab, Linux sẽ auto-
5
complete thành sudo rồi gõ shu nhấn Tab sẽ được shutdown. Sử dụng vài lần bạn sẽ thấy
command line không khó như bạn tưởng đâu.
1. Download phần mềm SD Formatter tại đây (click I Agree ở cuối trang) rồi cài đặt bình
thường.
2. Download hệ điều hành cho Raspberry Pi tại đây rồi giải nén.
6
Kết nối Raspberry Pi
Thực hiện:
1. Format thẻ SD: gắn thẻ SD vào máy tính. Khởi động SD Formatter, chọn đúng thẻ ở
phần Drive. Click Option, ở mục Format Size Adjustment chọn ON. Sau cùng, click
Format.
2. Giải nén toàn bộ file NOOBS_v1_2_1.zip vào thẻ SD. Sau đó lấy thẻ ra gắn vào
Raspberry Pi.
3. Kết nối Raspberry Pi với bàn phím, chuột, cáp internet, dây nối màn hình (HDMI hoặc
RCA Video). Nếu muốn nối Pi với màn hình máy tính sử dụng cổng VGA thì có thể
mua cáp chuyển HDMI->VGA. Kiểm tra kĩ một lượt trước khi cắm nguồn.
4. Cắm nguồn. Lúc này Pi sẽ tự khởi động hệ điều hành.
Lưu ý: Raspberry Pi sẽ mặc định hiển thị qua ngõ HDMI nên nếu bạn sử dụng ngõ
RCA Video thì sẽ không thấy hình. Muốn hiển thị đúng, bạn chọn 1 trong các phím sau
trên bàn phím:
phím 1: HDMI mode
phím 2: HDMI safe mode
phím 3: composite PAL mode (analog)
phím 4: composite NTSC mode (analog)
Mình đang dùng HDMI nên không gặp vấn đề gì về hiển thị, cắm là chạy thôi. Vậy nếu
bạn sử dụng ngõ RCA video thì thử nhấn phím 3 hoặc 4 nha.
5. Pi sẽ tiến hành cài đặt hệ điều hành. Trong quá trình này sẽ có nhiều lựa chọn nhưng tốt
nhất là bạn chọn hệ điều hành mặc định là Raspbian wheezy. Đây là hệ điều hành
Linuxđược tối ưu để hoạt động trên Pi.
7
6. Cài đặt xong Pi sẽ hỏi bạn login và password. Mặc định login là pi và password là
raspberry
7. Xong! Chúc mừng bạn đã cài đặt và khởi động Raspberry thành công!
Lưu ý: Nếu bạn có chút thất vọng vì màn hình màu đen buồn tẻ (Linux gọi là command
line) thì hãy gõ startx rồi Enter!
Một màn hình quen thuộc phải không? Không như Windows hay Mac luôn khởi động
thẳng vào môi trường desktop quen thuộc mà bạn sử dụng hàng ngày, Linux có 2 tùy
chọn để làm việc: môi trường Terminal sử dụng command line (giống như DOS ở
Windows) và môi trường desktop. Cả hai đều có mục đích sử dụng riêng mà mình sẽ
trình bày sau. Còn bây giờ để không phải bỡ ngỡ thì mình làm việc với môi trường
desktop trước.
8
Sơ đồ chân GPIO của Raspberry Pi
Các ngõ GPIO được đánh dấu màu xanh lá cây. Lưu ý là các ngõ này chỉ hoạt động ở mức logic
0V và 3V3. Tuyệt đối không kết nối với nguồn 5V.
Để thực hiện mình sẽ viết một chương trình nhỏ bằng ngôn ngữ Python. Python cũng như C hay
Java, là ngôn ngữ lập trình rất mạnh và hỗ trợ phong phú thư viện giúp cho việc lập trình hiệu trở
nên đơn giản và hiệu quả. Python được cài đặt sẵn trên Raspberry Pi. Ở những bài viết đầu tiên
mình sẽ cố gắng giới thiệu kĩ để các bạn beginners dễ hiểu. Sau này khi các bạn thành thạo mình
sẽ cô đọng vào nội dung chính.
Bước 1: Để mở Python: từ màn hình desktop bạn double click vào icon IDLE3 hoặc
chọn Start – Programming – IDLE 3. Một cửa sổ Python Shell hiện lên: đây sẽ là nơi
hiển thị các kết quả tính toán của chương trình.
Bước 2: Để bắt đầu viết code: từ Python Shell chọn File – New Window hoặc Ctrl+N.
Một cửa sổ mới sẽ hiện lên và đây là nơi bạn viết chương trình.
Bước 3: Viết code. Dưới đây là chương trình mẫu thực hiện chớp tắt 1 đèn LED tại
chân số 22. Sau khi viết xong các bạn save vào /home/pi và đặt tên là blinkLED.py
1 # Blinking an LED
2 # By Chinh Nguyen
9
5 GPIO
time.sleep(1)
Giải thích:
Rất đơn giản đúng không? Chương trình trên sử dụng một vòng lặp While thực hiên các
việc sau: cấp điện cho chân 22 (nối với đèn LED) làm đèn sáng, giữ trạng thái đó trong
1 giây, ngắt điện chân 22 làm đèn tắt, giữ trạng thái 1 giây. Rồi lặp lại.
Để truy cập ngõ GPIO thì Python cần có thư viện RPi.GPIO. Thư viện này hỗ
trợ các lệnh cần thiết để điều khiển các chân GPIO. Ngoài ra Python cần có thư
viện time để thực hiện lệnh time.sleep(1): giữ nguyên tất cả trạng thái trong
vòng 1 giây. Đó là lý do của 2 dòng lệnh đầu tiên.
Dòng lệnh thứ 3 và thứ 4 có tác dụng thiết lập chân 22 thành ngõ điều khiển
(output) để bật tắt LED. Trong ví dụ khác mình sẽ dùng chân 22 để theo dõi
một nút nhấn, lúc đó ta phải thiết lập chân này thành ngõ vào (input).
Qui ước khoảng trắng: tất cả 4 dòng lệnh nằm dưới vòng lặp While đều phải thụt vô 4
khoảng trắng (hoặc nhấn phím Tab 1 lần) so với chữ While. Khác với C, Python không
dùng cặp dấu {…} mà lại dùng 4 khoảng trắng để đánh dấu chương trình con. Điều này
làm chương trình nhìn thoáng hơn nhưng nếu không quen thì có thể dẫn đến lỗi. May
mắn là chương trình IDLE sẽ tự động làm việc này nhưng nếu bạn chỉnh sửa gì đó thì
hãy chú ý.
Ký hiệu # là comment (chú thích). Bạn có thể đặt chú thích tùy ý để giải thích hay ghi
chú cho chương trình. Thường xuyên comment là một thói quen rất cần thiết của người
lập trình. Khi cần xem lại một chương trình mình đã viết, comment giúp gợi nhớ rất
nhanh ý tưởng lập trình mà không cần đọc từng dòng code. Ngoài ra nó còn giúp người
khác dễ hiểu hơn, dễ sửa lỗi hơn.
Bước 4: Chương trình trên chưa thể chạy liền được vì thư viện RPi.GPIO chưa có sẵn
trong Raspberry Pi mà ta phải download về.
Mở LXTerminal hoặc chọn Start – Accessories – LXTerminal. LXTerminal tương tự
như command line mà bạn từng thấy. Gõ vào như sau (phần viết đậm)
10
sudo apt-get update (rồi Enter)
sudo apt-get install python-rpi.gpio (Enter)
Cuối cùng: CHẠY! Ở LXTerminal, gõ:
sudo python /home/pi/blinkLED.py
Chúc các bạn thành công! Mình sẽ rất vui nếu các bạn chia sẻ kết quả ở đây
11
30 server.starttls()
31
server.login(from_addr, pw)
server.send_message(msg)
server.quit()
Giải thích:
Để gửi Gmail thì Python cần phải đóng vai trò như một Gmail server và thực hiện gửi
mail thông qua giao thức SMTP (Simple Mail Transfer Protocol). Để xác nhận tài khoản
email ta phải khai báo gồm địa chỉ email, password, SMTP server (stmp.gmail.com) và
cuối cùng là port (465 hoặc 587).
Dòng 1: import thư viện SMTP.
Dòng 25+26: khởi tạo server.
Dòng 27: đặt kết nối SMTP vào TLS (Transport Layer Security) nhằm mã hóa dữ liệu,
đảm bảo tính bảo mật
Và đây là thành quả:
12
PS: nhân tiện nói luôn về phần nhận email từ phần mềm hoặc điện thoại di động: có 2
giao thức phổ biến là IMAP (Internet Message Access Protocol) và POP (Post Office
Protocol). Điểm khác biệt là IMAP cho phép đồng bộ 2 chiều giữa Gmail trên web và
phần mềm email, thí dụ như bạn tạo một folder ABC trên điện thoại thì nó sẽ lập tức
xuất hiện trên web. Ngoài ra IMAP cũng hoạt động ổn định hơn POP và do đó được
Gmail khuyên dùng. Muốn sử dụng IMAP thì bạn cũng phải khai báo username,
password và một số thông số mặc định khác.
Để thực hiện dự báo thời tiết bằng Raspberry Pi, bạn cần chuẩn bị phần cứng như sau: 1
Raspberry Pi kết nối Internet. Hết. Con người thường lên Internet tra cứu dự báo thời
tiết và Pi cũng sẽ làm tương tự. Điều khác biệt là Pi không như con người có thể tự mở
Internet Explorer lên và gõ www.weather.com rồi nhập tên thành phố và đọc kết quả
trên màn hình. Các dịch vụ trên Internet trao đổi thông tin với phần mềm máy tính thông
qua một hình thức khác là API (Application Programming Interface).
API cho phép Pi gửi một yêu cầu (request) đến server và nhận kết quả (get response).
Kết quả nhận được thường ở dưới một format nhất định, thường là JSON và XML. Pi sẽ
đọc file này và dữ liệu cần tìm. Ưu điểm của API là giúp developer có thể tận dụng sức
mạnh của các dịch vụ có sẵn. Bù lại, bạn phải có kết nối Internet.
Bài viết này sẽ hướng dẫn ví dụ thao tác với API của Weather Underground. Các API
khác bạn có thể làm tương tự.
1. Đăng kí: thông thường các trang web yêu cầu phải đăng kí trước khi sử dụng API.
Đăng kí miễn phí http://www.wunderground.com/weather/api/d/login.html Sau khi đăng
kí bạn sẽ nhận được một Key để thực hiện request.
2. JSON format:
Như đã đề cập, đây là một format của dữ liệu được trả về Pi. Muốn lấy được dữ liệu
cần thiết thì bạn phải đọc tài liệu hướng dẫn (documentation) được viết rõ trên website.
Ví dụ như muốn xem dự báo thời tiết thì click vào feature forecast
(http://www.wunderground.com/weather/api/d/docs?d=data/forecast) , kéo chuột xuống
cuối trang xem ví dụ. Chẳng hạn như đây là đoạn đầu tiên một file .JSON nhận được
khi request dự báo thời tiết ở California, San Francisco:
{
1
"response": {
2
"version": "0.1",
3
"termsofService":
4
"http://www.wunderground.com/weather/api/d/terms.html",
5
"features": {
13
6 "forecast": 1
7 }
8 },
9 "forecast": {
10 "txt_forecast": {
12 "forecastday": [{
13 "period": 0,
14 "icon": "partlycloudy",
15 "icon_url": "http://icons-
ak.wxug.com/i/c/k/partlycloudy.gif",
16
"title": "Tuesday",
17
"fcttext": "Partly cloudy in the morning, then clear.
18 High of 68F. Breezy. Winds from the West at 10 to 25 mph.",
14
10C. Breezy. Winds from the WSW at 10 to 20 km/h.",
"pop": "0"
Như vậy muốn lấy kết quả dự báo thời tiết bạn phải trích dữ liệu của fcttext_metric nằm
trong phần forecast/txt_forecast/forecastday/ đầu tiên. Ví dụ với thành phố New York
như sau:
import requests
1
5
r = requests.get(ApiUrl, timeout=1)
6
forecast = r.json # since this api response in JSON
7
format
8
print r.status_code
9
print r.headers
1
print
0
forecast['forecast']['txt_forecast']['forecastday'][0]['fcttex
t_metric'] #extract data from JSON
Lưu ý:
Nhớ thay your-API-key bằng key của bạn.
Đoạn code trên sử dụng thư viện (library) Request cho Python. Library Request cung
cấp nhiều function hay và dễ sử dụng trên Python để giao tiếp với API. Bạn phải cài đặt
Request trước khi chạy chương trình. Cách cài đặt rất đơn giản, trên LXTerminal gõ
như sau:
1 sudo pip install requests
Lưu chương trình với tên text-forecast.py trong thư mục My_python rồi chạy bằng cách
mở LXTerminal gõ như sau:
15
sudo python /home/pi/My_python/text-
1
forecast.py
pi@raspberrypi ~ $ python
16
6 c = Camera(0, {"width": 320, "height": 240}) # Thiết
7 lập khung hình camera
8 js = JpegStreamer("192.168.0.103:8080") # Địa chỉ IP
9 của Rasberry của bạn có thể khác, port 8080 do bạn tùy
10 chọn
11 while(True): # Vòng lặp truyền 10
hình/s
img = c.getImage()
img.save(js)
sleep(0.1)
Sau khi chạy chương trình, bạn dùng một máy tính khác trong mạng và truy cập vào địa
chỉ 192.168.0.103:8080.
Chúc các bạn thành công!
Bạn có thể thấy ta chỉ cần cài ibus-unikey vì hệ thống sẽ tự động kiểm tra và cài đặt
những phần mềm cần thiết khác để ibus-unikey hoạt động (trong trường hợp này là
ibus). Sau khi cài đặt xong bạn sẽ thấy biểu tượng IBus ở góc dưới bên phải màn hình.
Chọn Preference:
17
IBus-unikey trên Raspberry Pi
Ở tab General nhớ chú ý tick vào ô Embed pre-edit text in application window. Nếu
không thì khi gõ tiếng Việt sẽ hiện ra thêm 1 cửa sổ nhỏ rất khó chịu.
Ở tab Input Method: click Select an input method chọn Vietnamese-Unikey rồi Add vào.
Ở tab Advanced nhớ tick vào cả 2 options.
Một số lưu ý:
Để chuyển đổi qua lại giữa gõ tiếng Việt và tiếng Anh: nhấn Ctrl-Space.
Bộ gõ sẽ mặc định sử dụng kiểu gõ Telex và bảng mã Unicode. Bạn có thể thay đổi
trong menu của IBus-Unikey.
Các options còn lại các bạn tự khám phá nhe! Chúc các bạn gõ tiếng Việt thành thạo
trên Raspberry Pi
18
trong danh sách này:
USB Wifi list
Bước 1: Truy cập vào file interfaces:
sudo nano /etc/network/interfaces
Bước 2: Sửa file interfaces trở thành như sau:
auto lo
iface lo inet loopback
iface eth0 inet dhcp
allow-hotplug wlan0
auto wlan0
auto wlan0
allow-hotplug wlan0
iface wlan0 inet dhcp
wpa-scan-ssid 1
wpa-ap-scan 1
wpa-key-mgmt WPA-PSK
wpa-proto RSN WPA
wpa-pairwise CCMP TKIP
wpa-group CCMP TKIP
wpa-ssid “tên wifi”
wpa-psk “password”
Bước 4: Thế là xong phần thiết lập cho usb wifi, nhưng mà chưa xong đâu bạn ^^, có
những loại usb wifi nó lại có chế độ saving power, thành ra nhiều bạn đang truy cập vào
Pi bằng putty thông qua wifi thì bị mất kết nối do usb wifi nó “sleep”, vậy nên bạn làm
thêm mấy bước sau cho chắc ăn nhé:
4a. Tạo file dùng lệnh như sau:
sudo nano /etc/modprobe.d/8192cu.conf
4b. Điền dòng sau vào file vừa tạo và save lại:
options 8192cu rtw_power_mgnt=0 rtw_enusbss=0
4c. Truy cập vào crontab:
sudo crontab -e
19
4d. Điền dòng sau vào và save lại,thay 192.168.0.1 bằng IP của Router của bạn:
*/1 * * * * ping -c 1 192.168.0.1
Bước 5 Xong xuôi, reboot và cắm usb wifi vào
Yêu cầu chung: phải biết địa chỉ IP của thiết bị được điều khiển. Trong trường hợp này ta cần biết địa chỉ
IP của Pi bằng cách gõ từ LXTerminal ta gõ command line sau:
1 sudo ifconfig
ifconfig screenshot
Ở phần eth0, inet addr chính là địa chỉ IP. Trong hình minh họa trên, địa chỉ IP chính là 192.168.1.9. Mình
sẽ sử dụng địa chỉ này làm ví dụ trong bài viết nhưng nhớ là địa chỉ IP của bạn có thể khác. Lưu ý: đây là
địa chỉ IP động nên có thể thay đổi sau mỗi lần restart Pi.
SSH là viết tắt của Secure Shell, là một phương thức trao đổi dữ liệu an toàn và đơn giản. Để sử dụng
SSH ta phải cài đặt trên cả Pi lẫn máy tính.
20
1.1 Cài đặt SSH server trên Raspberry Pi
Điều duy nhất bạn cần làm là activate SSH server ở menu Rasp-config bằng cách gõ ở LXTerminal:
1 sudo raspi-config
Lúc này màn hình Raspi-config sẽ hiện ra cho phép tùy chỉnh nhiều thông số hệ thống của Pi. Chọn mục
Advance Options – SSH – Enable rồi OK.
Download phần mềm PuTTY tại đây và chạy không cần cài đặt.
Trên giao diện của PuTTY bạn chỉ cần nhập địa chỉ IP của Pi vào rồi click Open. Pi sẽ yêu cầu xác nhận
username và password của Pi (mặc định là pi và raspberry). Nếu thành công thì máy tính sẽ xác nhận và
hiển thị màn hình command line của Pi. Lúc này bạn có thể điều khiển Pi bằng command line thoải mái:
21
Giao diện PuTTY trên máy tính
22
Màn hình điều khiển Raspberry Pi bằng SSH
Như bạn đã thấy,
ấy, điều khiển Pi bằng SSH khá đơn
đ giản. SSH sử dụng rất ít tài
ài nguyên máy ccủa Pi do
không phải chạy phần đồ họa vì vậy
ậy thích hợp cho các ứng dụng cần nhiều tài
ài nguyên tính toán.Tuy
nhiên nhược điểm của SSH là chỉỉ cho phép bạn truy cập vào
v môi trường
ờng command line. Trong tr
trường
hợp
ợp cần điều khiển desktop của Pi thì
th VNC (Virtual Network Computing) là một
ột giải pháp tốt.
Có nhiều
ều phần mềm có chức năng làm
l VNC server trong đó tốt nhất là sử
ử dụng TightVNCserver. Cách
thức cài đặt và mở
ở TightVNCserver trên
tr LXTerminal như sau:
2 tightvncserver
23
Khi chạy VNC lần đầu thì nó sẽ yêu
êu cầu
c bạn tạo một password truy cập. Đây cũng là
à password mà b
bạn
sẽ được hỏi khi muốn truy cập vào
ào Pi nhằm
nh tránh tình trạng truy cập trái phép. Ngoài
ài ra TightVNC còn
cho phép bạn
ạn đặt password dạng view-only
view tức là chỉ cho phép bạn thấy màn hình nhưng
ưng không đi
điều
khiển được bàn phím hay chuột,
ột, rất hữu dụng trong trường
tr hợp muốn chia sẻ màn
àn hình khi thuy
thuyết trình
chẳng hạn.
Giao diện
di TightVNC Viewer trên máy tính
24
Màn hình điều khiển Pi từ máy tính
Ngoài ra phần mềm TightVNC này
ày còn tích hợp
h cả VNC server lẫn client nên có thể
ể sử dụng trong
trường hợp ngược lại: dùng Pi để điều
đi khiển máy tính.
25