Thông báo

Collapse
No announcement yet.

Điều khiển dùng Remote TV với MSP430

Collapse
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • #16
    Nguyên văn bởi Hard Xem bài viết
    Chip này không có eeprom để lưu, chương trình dùng nhiều lệnh rẽ nhánh quá nên bị tràn bộ nhớ không code thêm để dùng I2C được. Đành dùng tạm cục pin backup vậy, các dữ liệu cần lưu là mã phím đã cài, nếu mất nguồn thì nội dung của biến bị mất lại mất công dạy lại cho nó.
    Chip cắm trên breadboard là 74HC595 để quét Led7 và xuất lệnh điều khiển. MSP430 là con chip 14 chân trên KIT mà đỏ ấy.
    Phác thảo trước
    [ATTACH=CONFIG]75265[/ATTACH]
    Thân ái.
    rút cho gọn lại, MSP430 có khả năng tự viết vào ROM nên có thể dùng ROM của nó như EEPROM lưu lại mã đã học

    Comment


    • #17
      Nguyên văn bởi chung1608 Xem bài viết
      rút cho gọn lại, MSP430 có khả năng tự viết vào ROM nên có thể dùng ROM của nó như EEPROM lưu lại mã đã học
      Vụ này chưa vọc tới nên chưa biết, bây giờ chỉ cần thêm 1 dòng code là compiler báo không đủ chỗ cho biến rồi.
      Đường đến những ngày vinh quang không còn xa
      Con đường chúng ta... chúng ta đã chọn.

      Comment


      • #18
        Hi,
        Vừa lọ mọ lắp vào quạt xong, công việc tưởng dễ nhưng khi thực hiện gặp nhiều trở ngại vì không có không gian để đặt mạch vào và dễ bị vướng vào trục trượt lên xuống của quạt. Phù... cuối cùng cũng xong, trong quá trình lắp mình có lưu lại một số ảnh bên dưới:





        Đánh giá chung.
        Với mục đích học lập trình MSP430 thì đây là một project khá thú vị gồm điều khiển on/off, sử dụng một số ngoại vi: ADC, Timer, sử dụng ngắt ngoài, ngắt Timer, quét led 7 đoạn.
        Nếu thiên về hướng ứng dụng cần phải cải tiến lại:
        - Sử dụng bàn phím cũ để điều khiển
        - Sử dụng Led đơn thay vì Led 7-seg để tiết kiệm chi phí.
        - Mở rộng chương trình có thể dùng 2 hoặc nhiều hơn loại Remote khác nhau để khi mang quạt qua phòng khác có thể dùng luôn Remote của TV phòng khác.
        Thân ái.
        Đường đến những ngày vinh quang không còn xa
        Con đường chúng ta... chúng ta đã chọn.

        Comment


        • #19
          hi bác , hình như bác cũng chơi RC thì phải
          sẵn tiện bác có thể mở topic hướng dẫn ae làm các thiết bị điện tữ cho mô hình RC ,dùng nhựng vi xữ lý tại vn

          hoan nghênh tinh thần chia sẽ của bác

          Comment


          • #20
            Nguyên văn bởi vungtau88 Xem bài viết
            hi bác , hình như bác cũng chơi RC thì phải
            sẵn tiện bác có thể mở topic hướng dẫn ae làm các thiết bị điện tữ cho mô hình RC ,dùng nhựng vi xữ lý tại vn

            hoan nghênh tinh thần chia sẽ của bác
            Mình cũng có chơi RC (cánh bằng thôi) mà toàn mua đồ điện về ráp thôi chứ không DIY từ A tới Z được. Đồ điện cho RC nó gọn mà hiệu suất cao, giá thì cũng không chênh lệch bao nhiêu so với đồ làm, mà nếu mua đồ cũ thì còn rẽ hơn nữa. Thông thường mình chỉ sửa lại đồ hỏng (nếu sửa được) chứ không tự làm được.
            Thân ái.
            Đường đến những ngày vinh quang không còn xa
            Con đường chúng ta... chúng ta đã chọn.

            Comment


            • #21
              Đang nghiên cứu thêm cách lập trình ghi nhớ mã không tốn bộ nhớ và lưu mã điều khiển vào ROM.
              Đường đến những ngày vinh quang không còn xa
              Con đường chúng ta... chúng ta đã chọn.

              Comment


              • #22
                Đã test thành công việc lấy mã remote không tốn bộ nhớ như chương trình trước.
                Đường đến những ngày vinh quang không còn xa
                Con đường chúng ta... chúng ta đã chọn.

                Comment


                • #23
                  Nguyên văn bởi Hard Xem bài viết
                  Đã test thành công việc lấy mã remote không tốn bộ nhớ như chương trình trước.
                  lấy mẫu ngẫu nhiên hay đo thời gian trạng thái

                  Comment


                  • #24
                    Nguyên văn bởi chung1608 Xem bài viết
                    lấy mẫu ngẫu nhiên hay đo thời gian trạng thái
                    Nguyên tắc của truyền số liệu là phải đồng bộ, việc thu phát hồng ngoại cũng không ngoài quy luật đó. Mình post lên một đoạn cho bác tham khảo.
                    Code:
                    #pragma vector = PORT1_VECTOR
                    void __interrupt port1_isr(void)
                    {
                    	static unsigned char min = 0xFF, max = 0x00;
                    	static unsigned int average;
                    	unsigned char temp;
                    
                    
                    	if(StatusLog & START_FRAME)
                    	{
                    		TAR = 0;		// reset Timer A counter
                    		CCTL0 = CCIE;	// enable CC0 interrupt
                    		BitCounter = 0;	// reset BitCounter
                    		IrCode = 0;
                    		StatusLog &= ~START_FRAME;	// clear start of frame status
                    	}
                    	else if(BitCounter < 33)		// Limited at unsigned long type size, ignore the first pulse
                    	{
                    		temp = (unsigned char)TAR;	// get Timer A counter
                    		TAR = 0;					// reset Timer A counter
                    		if(BitCounter > 0)			// ignore Start pulse
                    		{
                    			if(temp < min) min = temp;
                    			if(temp > max) max = temp;
                    			average = (max + min) / 2;
                    			IrCode <<= 1;
                    			if(temp > average) IrCode++;
                    		}
                    		BitCounter++;
                    	}
                    	P1IFG &= ~BIT4;		// clear interrupt flag
                    }
                    Mã nhận được đầu tiên sau khi bật nguồn là sai vì lúc đó các giá trị min, max, average chưa đúng. Từ lần thứ 2 trở đi thì mã nhận được đã chính xác vì giá trị min, max đã được xác lập.
                    Thân ái.
                    Đường đến những ngày vinh quang không còn xa
                    Con đường chúng ta... chúng ta đã chọn.

                    Comment


                    • #25
                      Phải giải thích thêm chút không thì các bác điên mất.
                      Khi có ngắt ngoài (do Ir Receiver) thì Timer được đọc giá trị bộ đếm và reset đồng thời kích hoạt ngắt Timer. Ngắt Timer xảy ra với chu kỳ 20ms. Hầu hết các Ir Remote đều phát xung có độ rộng không quá 10ms, xung Start dài lắm cũng chỉ có 9ms, các xung còn lại tầm 560us - 600us. Chính vì vậy trong thời gian Remote phát xung thì ngắt Timer không thể xảy ra. Ngắt Timer chỉ xảy ra khi kết thúc chuỗi xung vì phải mất ít nhất 110ms sau mới tới chuỗi xung tiếp theo. Như vậy ngắt ngoài tạo ra mã bằng cách đo xung (tham khảo các giao thức của các Remote để biết), ngắt Timer sẽ sử dụng mã để xử lý.
                      Thân ái.
                      Đường đến những ngày vinh quang không còn xa
                      Con đường chúng ta... chúng ta đã chọn.

                      Comment


                      • #26
                        Nguyên văn bởi nguoimoihoc
                        nếu chỉ để làm 1 bộ thu tín hieu dk từ remote tv có học lệnh thì chỉ cần 1 89c51 + 1 24c16 là xong .chi phí thấp, msp đắt
                        tuy nhien để viết chương trình cũnh cần có mưu mẹo
                        chưa biết con nào mắc hơn con nào đâu cụ ah , nếu muốn rẻ mà lai nhiều chức năng thì sao ko choi stm8 ý

                        Comment


                        • #27
                          Quan trọng là giải pháp để giải quyết bài toán thôi, dùng chip gì chả được. Mình dùng MSP430 là do đang học lập trình với nó nên làm cái ví dụ vậy thôi. MSP430 tuy giá rẽ nhưng mua ở VN thì hiếm nên lại thành đắt ví dụ MSP430G2231 giá có 0.25$ nhưng ở VN có bác bán 25K. Mình cũng có nghe qua STM8 nhưng không biết các tool hardware và software cho nó có sẵn và free không.
                          Đường đến những ngày vinh quang không còn xa
                          Con đường chúng ta... chúng ta đã chọn.

                          Comment


                          • #28
                            Nguyên văn bởi Hard Xem bài viết
                            Quan trọng là giải pháp để giải quyết bài toán thôi, dùng chip gì chả được. Mình dùng MSP430 là do đang học lập trình với nó nên làm cái ví dụ vậy thôi. MSP430 tuy giá rẽ nhưng mua ở VN thì hiếm nên lại thành đắt ví dụ MSP430G2231 giá có 0.25$ nhưng ở VN có bác bán 25K. Mình cũng có nghe qua STM8 nhưng không biết các tool hardware và software cho nó có sẵn và free không.
                            Cái gì chả có trial hay limited


                            Add: 97 Quán Nam - Lê Chân - Hải Phòng.
                            Tel: 031 518648 Phone: 0904 283 505

                            Comment


                            • #29
                              Nguyên văn bởi nguoimoihoc
                              89c51+ 24c16=18k+8k ,stm8 =?
                              MSP430G2553 ROM 16k lớn gấp 2 lần 89, tốc độ tối đa 16MIPS lớn gấp 8 lần 89 chưa kể tới cấu trúc MSP là 16 bit. Giá hỗ trợ sinh viên là 22k 1 con, đủ rẻ và mạnh hơn 89 chưa bạn

                              Comment


                              • #30
                                Sau 3 ngày lọ mọ mình đã khắc phục được các nhược điểm của version trước. Cụ thể là tận dụng lại được bàn phím của quạt, lưu mã điều khiển vào Flash Memory nên không cần pin backup, các thông tin trạng thái đều hiển thị lên 4 led 7-seg, bổ sung tính năng hẹn giờ mà nhiều quạt vẫn không có.
                                Bây giờ có thể lắp vào quạt một cách rộng rãi được rồi.
                                Đường đến những ngày vinh quang không còn xa
                                Con đường chúng ta... chúng ta đã chọn.

                                Comment

                                Về tác giả

                                Collapse

                                Hard Nothing to say Tìm hiểu thêm về Hard

                                Bài viết mới nhất

                                Collapse

                                Đang tải...
                                X