Hướng dẫn Lập trình vào ra cơ bản với RPI

chinh_cover

Sinh viên cao đẳng
#1
Các mem cho ý kiến nhé ?
Mình sẽ viết 1 tutorial cơ bản về lập trình vào ra GPIO của RPI bằng C.
[codientu.org]_rpi-desktop.jpg
Trong Tutorial sẽ có:
1. Cài đặt thư viện C mở rộng của bên thứ 3 cho RPI
2. Viết 1 chương trình đơn giản để bật tắt GPIO.
3. Dùng QT của Nokia để viết 1 giao diện cơ bản điều khiển In Out GPIO của RPI.

Rất mong nhận được phản hồi của các thành viên.
 
Sửa lần cuối bởi điều hành viên:

chinh_cover

Sinh viên cao đẳng
#3
Như đã hứa với anh em, mình sẽ bắt tay vào viết cái tutorial này.
Để không bị mất hứng viết, tránh tình trạng chửi nhau lộn xộn, mất lịch sự,vào chém gió của các thành phần bất hảo, đề nghị các bạn không comment hay đặt câu hỏi khi mình chưa viết xong cái tutorial ở đây.
Mình sẽ viết thật đầy đủ, chi tiết, đảm bảo biên dịch và chạy được, không giống như kiểu các bác nhà ta đưa code mà xén bớt, k đầy đủ, k biên dịch được.
Để bắt đầu các bạn cần đọc kỹ luồng này: Chia sẻ - Hướng dẫn cài đặt Hệ điều hành cho Raspberry Pi | Cộng đồng cơ điện tử Việt Nam | Mechatronics
Mình không viết lại, tốn tài nguyên của diễn đàn.
Mình chọn OS là Whezzy (Debian)
Trước khi chưa viết xong tutorial Các bạn có thể comment và đặt câu hỏi ở đây? Giải pháp thông minh Đà Nẵng- Da Nang Smart Solution | Facebook
Sau khi xong các bạn có thể đặt câu hỏi ngay trong diễn đàn này.
 
Sửa lần cuối:

chinh_cover

Sinh viên cao đẳng
#4
Phần I. Cài đặt thư viện lập trình c cho PI
Để lập trình C cho Raspberry PI chúng ta cần có thư viện C chân GPIO, và các giao tiếp cơ bản như SPI, I2C...
Trên mạng hiện nay có 2 thư viện được phát triển khá hoàn chỉnh và hỗ trợ đầy đủ cho các bạn.
1. Thư viện bcm2835 C của Mike McCauley
2. Thư viện của nhòm git có tên là Wiring Pi
Mình chọn thư viện của Mike McCauley.
Xin lỗi các bạn, mình quên nói các bạn phải cài gcc trước đã.
Mở LXTerminal chạy lệnh
Mã:
sudo apt-get install gcc
khi chạy xong thì ta làm như bên dưới.
Đầu tiên các bạn tải file đính kèm bên dưới, hoặc theo link bcm2835: C library for Broadcom BCM 2835 as used in Raspberry Pi
Các bạn cũng có thể tìm thấy bản cập nhật thư viện mới nhất ở trang này.
sau khi tải file về, nếu bạn tải từ link thì copy vào home, mở LXTerminal lên giải nén bằng lệnh sau
Mã:
tar zxvf bcm2835-1.35.tar.gz
Nếu là file đính kèm bạn Rightclick và Extract vào Home của PI
Lưu ý nếu không biết file tải về lưu ở đâu, các bạn có thể dùng lệnh này để kiểm tra.
Mã:
ls
Với mình thì lưu thẳng vào Desktop của PI lun cho tiện. Lưu ý đây là mình lưu vào Desktop của Pi nhé. Và PI của mình là V2b 512 MB ram nha các bạn.
làm lần lượt như các lệnh bên dưới.
Mã:
cd Desktop
tar zxvf bcm2835-1.35.tar.gz
cd bcm2835-1.35
./configure
make
sudo make check
sudo make install
Sau khi chạy xong k báo lỗi gì là chúng ta đã cài đặt thành công thư viện lbcm2835.c cho RPI rồi đó.
chạy 2 lệnh
Mã:
sudo apt-get update
sudo reboot
chờ RPI khởi động lại và làm cho mình ly cà phê
 

Đính kèm

Sửa lần cuối:

chinh_cover

Sinh viên cao đẳng
#5
Phần II. Lập trình kích led bật tắt các chân GPIO của RPI
Ta nối led vào chân số 22 của GPIO trên RPI, còn nối như thế nào chắc ai cũng biết rồi, mình không trình bày ở đây.
Sau khi RPI khởi động lên, ta mở 1 trình soạn thảo văn bản bất ký trong RPI, vd như nano, vim ....
gõ đoạn code bên dưới và lưu vào mục home PI
Mã:
#include <bcm2835.h>

///Dinh nghia chan
#define PIN RPI_GPIO_P1_22
int main(int argc, char **argv)
{
    if (!bcm2835_init())
    return 1;
// Khai bao chan so 22 của RPI la output
   bcm2835_gpio_fsel(PIN, BCM2835_GPIO_FSEL_OUTP);
while (1)
    {
    // Turn it on
bcm2835_gpio_write(PIN, HIGH);
    // wait a bit
bcm2835_delay(500);
// turn it off
bcm2835_gpio_write(PIN, LOW);
// wait a bit
    bcm2835_delay(500);
}
bcm2835_close();
return 0;
}
lưu lại code với ten nhayled.c
Bây giờ chúng ta mở LXTerminal biên dịch chương trình với lệnh sau
Mã:
sudo gcc -o nhayled nhayled.c -lbcm2835
sau khi chạy xong thì LXTerminal về dầu nhắc
pi@raspberrypi ~ $
Tiếp theo chạy
lệnh
Mã:
sudo ./nhayled
Nín thở chờ và quan sát led nháy nào.
Các chân còn lại bạn có thể làm tương tự.

Phần tiếp theo tôi sẽ hướng dẫn các bạn cài QT của Nokia (Nokia mua lại QT từ năm 2008) cho RPI
 
Sửa lần cuối:

chinh_cover

Sinh viên cao đẳng
#6
Phần III. Cài đặt QT cho RPI.
Mình giới thiệu sơ về Qt cho các bạn.
Qt Creator là một IDE rất được các programmer ngày nay ưa chuộng .Qt đã được Nokia mua lại từ năm 2008 vì vậy hiện giờ cộng động Qt ngày càng lớn mạnh và gia tăng rất nhanh. Qt hỗ trợ rất mạnh trong lập trình giao diện, tương tác với Database, Graphics...
Điểm nổi bật của Qt Creator bao gồm:

  • 1. Cross-platform, nó có thể run trên mọi hệ điều hành, bao gồm : Mac, Linux, Windows
  • 2. Có text-editor cực kì đẹp, đây là text-editor mà mình thích nhất, vì chế độ nhấp nháy dấu ngoặc của nó nhìn rất là thích.
  • 3. Hỗ trợ vim editor ( vim editor là một advance editor và có thể lập trình được các key, và xài hotkey rất nhanh ).
  • 4. Free! Nó cũng giống như VC++, và CB chúng ta không phải trả bất cứ một phí nào để download và sử dụng nó.
Bật LXTerminal lên và gõ vào các lệnh sau
Mã:
sudo apt-get update
sudo apt-get install qt4-dev-tools
sudo apt-get install qtcreator
sudo apt-get install gcc
sudo apt-get install xterm
sudo apt-get install git-core  /// thư viện Wiring PI nếu bạn muốn dùng.
sudo apt-get install subversion
sudo reboot
Chờ RPI khởi động lại.
Sau khi chạy tất cả các lệnh này chúng ta sẽ có Qt Creator 2.5 với Qt 4.8.1 32 bit
Để QT Creator chạy được trên RPI chúng ta cần phải chỉnh sửa một chút (hình ảnh đính kèm)
Add GCC tool Chain cho QT.
đi đến Options > build & run > tab tool chain > button add
Choose GCC

  • Then set compiler path : /usr/bin/arm-linux-gnueabihf-gcc-4.6
  • Debugger : /usr/bin/gdb
  • Mkspec : default
Tiếp tục add để QT chạy với 1 Desktop project in the project wizard instead of embedded.

  • Go to menu help > about plugins
  • bỏ chọn vào ô device support > remote linux
  • Tắt QTCreator và khởi động lại.
  • Vào tools > options TAB > build & run > Qt versions > add “/usr/bin/qmake-qt4”
Vậy là xong phần cài đặt QTCreator rồi.
Các bạn cũng có thể vào trang này để làm theo như hướng dẫn nhé.
apt get_Qt4_on_the_Raspberry_Pi | Qt Wiki | Qt Project
Phần IV mình sẽ hướng dẫn các bạn tạo 1 giao diện đơn giản với các nút Button bằng QT để điều khiển bật tắt chân của RPI.
 

Đính kèm

Sửa lần cuối bởi điều hành viên:

chinh_cover

Sinh viên cao đẳng
#7
Phần IV: Tạo giao diện với QT Creator.
Để cho dễ thực hiện, mình đã làm video và up lên Youtube.
Các bạn vào theo 2 link này để xem cách thực hiện nhé.
Project ở file đính kèm.

Về cơ bản thì Tutorial đã hoàn thành, các bạn có hỏi và góp ý xin comment bên dưới.
 

Đính kèm

khungbr

Học sinh phổ thông
#8
minh thi lại có ý k muốn cai QT vao pi vì ram 512 ma cho QT chạy thì lag điên cuồng..nên minh định làm trên Win roi build sang Linux chep wua cho Pi nó chạy...không biết Add làm thử kiểu này chưa..nếu có xin tí kinh nghiệm nhé.
 

chinh_cover

Sinh viên cao đẳng
#9
chào bạn, mình chưa code theo cách đó, còn cài trực tiếp mình cũng thấy lag khi chạy,nhưng k quan trọng lắm, kiên nhẫn là được, hihi.
 

thocon31

Học sinh phổ thông
#10
Chào bạn! Mình đang làm đồ án TN. Hiện Mình đang gặp vấn đề giao tiếp UART giữa RPi với PIC 18F4620.
Cụ thể là mình muốn truyền lệnh (mảng) qua UART giao tiếp với PIC 18F4620 nhưng tài liệu nói về cái này quá ít va khó hiểu. Mình làm chưa được, bạn nào có ý tưởng hay giải pháp giúp mình với. Thanks so much!

Mình đang tham khảo ở đây: Raspberry Pi UART serial wont work - Stack Overflow

và: Using the UART &laquo; Raspberry Pi Projects
 

Quảng cáo Google