toilet

Chia sẻ - Giao Tiếp Gui Python Và Kit Launpad Điều Khiển Đơn Giản

Thảo luận trong 'Họ MSP430'

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

  1. Đăng 28/2/15 #1

    suriken0911 Kỹ sư

    Số bài viết: 689
    Đã được thích: 189
    Chào các bạn!
    Mình sẽ chia sẽ cách thức để giao tiếp một Kit Launpad Msp430 và Một Gui Viết Bằng Python.
    1.Gui Viết Bằng Python:
    Python là ngôn ngữ rất hay, đơn giản cho chúng ta thực hiện những ý tưởng trong truyền thông.
    Hiện nay có nhiều tài liệu về lập trình python rồi mình không chia sẽ lại nữa:
    các bạn có thể tìm theo các link:
    Python Basic:
    http://www.tutorialspoint.com/python/python_basic_syntax.htm

    python gui programming:
    python gui programming

    hoặc một số trang khác , các bạn có thể tìm thêm.
    đầu tiên ta cài python 2.7:
    link: Python 2.7 Release | Python.org

    Ta sẽ dùng thư viện Pyserial của python để viết ứng dụng này.
    link phần mềm:pyserial 2.7 : Python Package Index.
    sau đó trong python chỉ cần import serial là sử dụng được seria port.

    ta dùng phương thức serial port uart là có thể giao tiếp(mình hay gọi thế này).
    Tiếp Theo là code giao diện đơn giản gồm hai nút tắt đèn và mở đèn, các bạn có thể viết thêm các phần khác nếu muốn phát triển.
    code:
    Mã:
    from Tkinter import *
    import tkMessageBox
    import serial
    
    #------------------------------------------------------------------------------------
    #Serial:
    ser = serial.Serial('COM3', 9600)
    #------------------------------------------------------------------------------------
    
    
    #------------------------------------------------------------------------------------
    #Define function:
    def on_led():
        ser.write('a')
              
    def off_led():
        ser.write('b')
    #------------------------------------------------------------------------------------
    
    #------------------------------------------------------------------------------------
    #Setup:
    master = Tk()
    master.title("CHUONG TRINH")
    #------------------------------------------------------------------------------------
    
    #------------------------------------------------------------------------------------
    #Creater Button:
    Button(master, text='TAT DEN', command=off_led).grid(row=3, column=0, pady=50,padx=50)
    Button(master, text='MO DEN', command=on_led).grid(row=3, column=1, pady=10,padx=50)
    #------------------------------------------------------------------------------------
    
    #------------------------------------------------------------------------------------
    #Loop:
    mainloop( )
    #------------------------------------------------------------------------------------
    
    đây là giao diện của nó, basic:


    2015-02-28_0-42-10.

    Các bạn có thể trang trí cho đẹp nhé, tùy vào mỗi người mà cần thêm label, button, check box, radio button...

    Và để giao tiếp được với launpad ta phải mở cổng. khi ta cắm kit launpad vào PC thì sẽ tạo ra một cổng com ảo, COM1, COM2, COM3, COM4 gì đấy tùy máy tính.
    Và của mình là COM3:

    đoạn code này ta mở cổng com 3, tốc độ = 9600:
    Mã:
    ser = serial.Serial('COM3', 9600)
    2.Chương trình trên kit launpad:
    ở đây mình sử dụng Msp430g2553.
    và phần mềm energia để code trên kit launpad MSP430G2553
    Mã:
    //chuong trinh test kit launpad va Gui Python:
    #define led_red RED_LED
    //------------------------------------------------------
    
    void setup() {
      Serial.begin(9600); // set the baud rate
      pinMode(led_red,OUTPUT);
    }
    
    
    void loop() {
      char inByte;
      if(Serial.available()){ // only send data back if data has been sent
        char inByte = Serial.read(); // read the incoming data
        Serial.println(inByte); // send the data back in a new line so that it is not all one long line
        if(inByte == 'a'){
            digitalWrite(led_red,HIGH);
            delay(500);
        }
        else if(inByte == 'b'){
            digitalWrite(led_red,LOW);
            delay(500);
        }
      }
      delay(100); // delay for 1/10 of a second
    }
    
    
    Chương trình bật tắt led P1.0 kit Launpad MSP430G2553.

    Chúc các bạn thành công!
    #1
  2. Đăng 28/2/15 #2

    suriken0911 Kỹ sư

    Số bài viết: 689
    Đã được thích: 189
    đây là Video demo, các bạn xem nhé, chúc thành công!
    video test:
    dungvt thích bài này.
    #2
  3. Đăng 28/2/15 #3

    dungvt VIP

    Số bài viết: 572
    Đã được thích: 893
    Rất thích tinh thần ham học và chia sẻ của bạn. Xin cảm ơn và mong bạn tiếp tục phát huy.
    suriken0911 thích bài này.
    #3
  4. Đăng 28/2/15 #4

    suriken0911 Kỹ sư

    Số bài viết: 689
    Đã được thích: 189
    Hi cảm ơn nhé. Vì Energia chỉ hỗ trợ dòng msp430 với G2231, G2452, G2553, FR5739, F5529(16Mhz, 25Mhz), FR5969(V.2 and higher only). nên cũng hạn chế cho các bạn muốn làm với msp430 khác. nhưng được cái rẻ hơn board arduino.
    À tiện đây cho mình hỏi khi làm mạch rời con Mcu msp430g2553 chẳng hạn, mún giao tiếp uart như ứng dụng trên ta cần nối dây Tx, Rx bình thường hay sao mấy bạn??? ngoài chân reset ra có cần nối chân test, chân gì đặc biệt nựa không????
    #4
  5. Đăng 28/2/15 #5

    tdm Kỹ sư

    Số bài viết: 449
    Đã được thích: 419
    bạn có thể hướng dẫn chi tiết để được một giao diện như vậy được không. cảm ơn bạn.
    suriken0911 thích bài này.
    #5
  6. Đăng 28/2/15 #6

    suriken0911 Kỹ sư

    Số bài viết: 689
    Đã được thích: 189
    à được thôi bạn à.
    Đầu Tiên Ta cần cài đặt phần mềm Python, chọn phiên bản 2.7.9 nhé theo link này:
    Download Python | Python.org

    để lập Trình được giao diện trong ngôn ngữ Python Trước hết ta cần có thư viện đồ họa, và trong Python chính là Pyserial. Và Ta dùng Tkinter để viết giao diện trên nền là phần mềm python 2.7.9:
    Link Pyserial: pyserial 2.7 : Python Package Index, chọn bản win32.
    Tkinter thì trong python 2.7.9 đã tích hợp sẵn rồi, khi bạn dùng chỉ cần import nó vào thôi.

    Bắt đầu tạo chương trình đầu tiên:
    Mở phần mềm IDLE (Python GUI) lên:
    tạo một file là Frame.py.
    để bạn viết Gui trong python thì bạn phải import Tkinter vào, tìm hiểu thêm bạn có thể lên mạng tìm nhé.
    code import:
    Mã:
    from Tkinter import *
    Hoặc là:
    Mã:
    import Tkinter
    Tiếp theo là Thân chương trình:
    code:
    Mã:
    master = Tk()
    master.title("CHUONG TRINH DAU TIEN")
    mainloop( )
    master = Tk() giống như tao ra một đối tượng vậy.
    master.title("<Text>") là tiêu đề của frame của bạn:
    mainloop là vòng lập main của bạn.

    Vậy là ta có chương trình hoàn chỉnh như sau:
    Mã:
    from Tkinter import *
    
    master  =  Tk()
    master.title("CHUONG TRINH DAU TIEN")
    mainloop()
    đây là giao diện là một frame đơn giản được tạo ra, giống như các ngôn ngữ khác như C#, visual basic,...
    1.

    Tiếp theo sẽ là phần tạo nội dung cho Frame của bạn, và phần giao tiếp với Kit launpad Qua Uart serial port.
    tdm thích bài này.
    #6
  7. Đăng 3/4/15 #7

    suriken0911 Kỹ sư

    Số bài viết: 689
    Đã được thích: 189
    Tiếp Theo đây là phần Giao Tiếp 1 Master và n Slave. Cụ Thể:
    - Master là PC.
    - n Slave Ta Chọn một hoặc 2 Kit LaunPad.
    - Phần Mềm Energia.
    - Một Mạch Chuyển Usb To Rs485( Sử dụng FT232RL + MAX485, Có thể Mua Theo Link Sau:

    FT232RL-RS485 (USB to RS-485 Converter) - www.tme.vn - Linh kien dien tu, Kit Phat trien, M&aacute;y nap, Dụng cụ...

    - Một Mạch Điều Khiển bóng đèn 220Vac( Moc3021 + BTA12).
    - Phần Mềm Visual Basic 6.0 ( Có vẻ là hơi xưa xẫm nhỉ).
    - Phương Thức Giao Tiếp: Modbus.
    + Link Tải Phần Mềm Modbus Poll Các bạn có thể tải theo link:
    Modbus Master Simulator
    + Về giao thức Modbus, Các bạn có thể tham khảo tại link:
    Simply Modbus - Function Code 01 - Read Coil Status
    + Ở đây sử dụng giao thức Modbus RTU nhé các bạn.
    Vậy là khung nội dung đã xong. Mình sẽ đi vào chi tiết từng phần, mình đang dần hoàn thành và chia sẽ cho các bạn nhé..

    Chúc vui vẻ!
    phunghetdm thích bài này.
    #7
  8. Đăng 3/4/15 #8

    dangsonbk I'm aimin' right at you!

    Số bài viết: 513
    Đã được thích: 646
    Skype
    Bác viết thế này bị nhầm lẫn giữa Pyserial và Tkinter rồi, Pyserial để giao tiếp với cổng Serial mà. :)
    #8
  9. Đăng 3/4/15 #9

    suriken0911 Kỹ sư

    Số bài viết: 689
    Đã được thích: 189
    Hi anh, Pyserial nó chung lun nên em giới thiệu lun ạ!
    #9
  10. Đăng 10/4/15 #10

    thanhduongvs Học sinh phổ thông

    Số bài viết: 29
    Đã được thích: 21
    Python
    quachlenhhosuriken0911 thích bài này.
    #10

Chia sẻ trang này