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

Thảo luận trong 'Raspberry Pi'

Đang xem chủ đề này ( Thành viên: 0, Khách: 0)

  1. chinh_cover

    chinh_cover Sinh viên cao đẳng

    Tham gia ngày:
    9/9/12
    Bài viết:
    22
    Đã được thích:
    47
    Điểm thành tích:
    13
    Giới tính:
    Nam
    Nghề nghiệp:
    Project Engineer In PTSC Quang Ngai
    Nơi ở:
    Da Nang, Vietnam
    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.
    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.
     
    Last edited by a moderator: 2/4/14
    dhcnhn, qaz, Luckyboy15109 others thích bài này.
  2. dungvt

    dungvt VIP

    Tham gia ngày:
    15/4/13
    Bài viết:
    583
    Đã được thích:
    905
    Điểm thành tích:
    93
    Giới tính:
    Nam
    Nơi ở:
    HCM
    Hay đó bạn. Cố lên nhé
     
  3. chinh_cover

    chinh_cover Sinh viên cao đẳng

    Tham gia ngày:
    9/9/12
    Bài viết:
    22
    Đã được thích:
    47
    Điểm thành tích:
    13
    Giới tính:
    Nam
    Nghề nghiệp:
    Project Engineer In PTSC Quang Ngai
    Nơi ở:
    Da Nang, Vietnam
    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.
     
    Last edited: 15/1/14
  4. chinh_cover

    chinh_cover Sinh viên cao đẳng

    Tham gia ngày:
    9/9/12
    Bài viết:
    22
    Đã được thích:
    47
    Điểm thành tích:
    13
    Giới tính:
    Nam
    Nghề nghiệp:
    Project Engineer In PTSC Quang Ngai
    Nơi ở:
    Da Nang, Vietnam
    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ê
     

    Các file đính kèm:

    Last edited: 15/1/14
  5. chinh_cover

    chinh_cover Sinh viên cao đẳng

    Tham gia ngày:
    9/9/12
    Bài viết:
    22
    Đã được thích:
    47
    Điểm thành tích:
    13
    Giới tính:
    Nam
    Nghề nghiệp:
    Project Engineer In PTSC Quang Ngai
    Nơi ở:
    Da Nang, Vietnam
    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
     
    Last edited: 15/1/14
    sgesvn, tba150990dungvt thích bài này.
  6. chinh_cover

    chinh_cover Sinh viên cao đẳng

    Tham gia ngày:
    9/9/12
    Bài viết:
    22
    Đã được thích:
    47
    Điểm thành tích:
    13
    Giới tính:
    Nam
    Nghề nghiệp:
    Project Engineer In PTSC Quang Ngai
    Nơi ở:
    Da Nang, Vietnam
    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.
     

    Các file đính kèm:

    • 22.jpg
      Kích thước:
      2.6 MB
      Đọc:
      0
    • 33.jpg
      Kích thước:
      2.6 MB
      Đọc:
      0
    • 11.jpg
      Kích thước:
      2.5 MB
      Đọc:
      0
    Last edited by a moderator: 2/4/14
    sgesvn, tba150990dungvt thích bài này.
  7. chinh_cover

    chinh_cover Sinh viên cao đẳng

    Tham gia ngày:
    9/9/12
    Bài viết:
    22
    Đã được thích:
    47
    Điểm thành tích:
    13
    Giới tính:
    Nam
    Nghề nghiệp:
    Project Engineer In PTSC Quang Ngai
    Nơi ở:
    Da Nang, Vietnam
    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.
     

    Các file đính kèm:

    sgesvn, toi ngu kinhCoffee-Bean thích bài này.
  8. khungbr

    khungbr Học sinh phổ thông

    Tham gia ngày:
    12/10/13
    Bài viết:
    1
    Đã được thích:
    2
    Điểm thành tích:
    3
    Giới tính:
    Nam
    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é.
     
    kdichchinh_cover thích bài này.
  9. chinh_cover

    chinh_cover Sinh viên cao đẳng

    Tham gia ngày:
    9/9/12
    Bài viết:
    22
    Đã được thích:
    47
    Điểm thành tích:
    13
    Giới tính:
    Nam
    Nghề nghiệp:
    Project Engineer In PTSC Quang Ngai
    Nơi ở:
    Da Nang, Vietnam
    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.
     
  10. thocon31

    thocon31 Học sinh phổ thông

    Tham gia ngày:
    3/3/14
    Bài viết:
    9
    Đã được thích:
    1
    Điểm thành tích:
    3
    Giới tính:
    Nam
    Nghề nghiệp:
    Sinh Viên
    Nơi ở:
    BÌNH DƯƠNG
    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
     
    sgesvn thích bài này.

Chia sẻ trang này