RSS
English French German Spain Italian Dutch

Russian Portuguese Japanese Korean Arabic Chinese Simplified
Hiển thị các bài đăng có nhãn MCU Kits and Tools. Hiển thị tất cả bài đăng
Hiển thị các bài đăng có nhãn MCU Kits and Tools. Hiển thị tất cả bài đăng
Thứ Hai, 25 tháng 1, 2010

LED CUBE 5X5X5 VỚI ATMEGA16 HOẶC ATMEGA32

I. Giới thiệu
Lang thang trên internet, tình cờ tìm được vài đoạn video về khối lập phương xây dựng bởi những bóng đèn LED. Đây không chỉ là 1 công cụ giúp rèn luyện kỹ năng lập trình vi điều khiển mà còn là vật trang trí khá bắt mắt với hiệu ứng đa dạng và phụ thuộc khả năng người lập trình. Người đọc nếu chưa nắm được kỹ năng lập trình vi điều khiển cũng có thể thực hiện được đồ án này với các thành phần được cung cấp sẵn bởi bài viết. Nếu ai có khả năng lập trình, tôi tha thiết mong các bạn chia sẻ giải thuật và code để mọi người cùng nhau tham khảo. Nào bây giờ chúng ta bắt đầu.

II. Nguyên lý hoạt động.
1.LED
Nhắc lại 1 tí về nhân vật chính của bài viết, LED là 1 loại diode có khả năng phát sáng khi được phân cực thuận. LED thông thường có 2 chân: anode(+)-chân dài hơn và cathode(-) như vậy muốn LED phát sáng thì điện thế phân cực ở anode phải cao hơn cathode.

Tùy theo mức năng lượng giải phóng cao hay thấp mà bước sóng ánh sáng phát ra khác nhau (tức màu sắc của LED sẽ khác nhau). Mức năng lượng (và màu sắc của LED) hoàn toàn phụ thuộc vào cấu trúc năng lượng của các nguyên tử chất bán dẫn.

LED thường có điện thế phân cực thuận cao hơn diode thông thường, trong khoảng 1,5 đến 3,5 V. Nhưng điện thế phân cực nghịch ở LED thì không cao. Do đó, LED rất dễ bị hư hỏng do điện thế ngược gây ra.

Các bạn tham khảo thêm tài liệu về led tại đây:
http://en.wikipedia.org/wiki/Light-emitting_diode 

2. Hoạt động

    LED CUBE (LC) trong bài này được tạo thành từ 125 bóng LED, xếp thành 5 lớp, mỗi lớp 25 bóng. Điều đặt biệt là ta không dùng 125 mối nối để thắp sáng từng bóng mà thay vào đó, ta mắc chung các chân anode của 25 bóng trên 1 lớp lại với nhau và mắc chung 5 chân cathode để tạo thành cột (có 25 cột).
   Để cho 1 led bất kỳ bật sáng, đầu tiên ta nối chân anode chung của lớp với điểm có điện thế cao, khi đó 25 bóng led sẽ  có chân anode được gắn với điểm điện thế cao, việc còn lại là nối điểm điện thế thấp cho chân cathode của bóng led nào cần thắp sáng.  
   Việc cấp điện thế cao cho các lớp được thực hiện bởi 5 transistor PNP. 5 Transistor này được điều khiển bởi 5 chân IO của vi điều khiển và được phân cực ở vùng bão hòa và vùng ngưng tương ứng với mức logic 0 và 1 (ngược mức logic với chân IO của vi điều khiển)
 Việc cấp điện thế thấp cho các cột được thực hiện bởi 25 chân IO của vi điều khiển, do không có transistor để nhận dòng nên khi khi tính toán điện trở hạn dòng cho led phải lưu ý đến khả năng nhận dòng của chân IO vi điều khiển (thông số IOL khoảng 200mA là tối đa). Ở thời điểm nào đó, mỗi chân này phải nhận dòng từ 5 bóng led của 1 cột.
Hãy xem sơ đồ nguyên lý điều khiển LC sau đây:
lc_layviewlc_colview 

Đây là sơ đồ nguyên lý hoàn chỉnh của LC
lc_sch

Chú thích:
+Các foot là các chân điều khiển của khối led bao gồm 25 chân điều khiển cột và 5 chân điều khiển lớp như đã mô tả ở trên.
+Các điện trở phân cực cho transistor có giá trị khoảng 10k trở xuống(chưa tính toán kỹ).
+Các điện trở gắn ở các foot từ F1-F25 chính là điện trở hạn dòng cho led có giá trị từ 220 Ohm trở lên. 
+Mạch nguồn thiết kế với 2 tùy chọn là dùng nguồn ngoài 5 volt hoặc nguồn ngoài cao hơn 9 volt được lựa chọn thông qua jumper J4 .
+Chuẩn nạp cho vi điều khiển AVR là ISP. 
+Transistor dùng loại A1013. 


III. Thi công 
1. Chọn LED

LED có rất nhiều loại. Loại led được chọn phải không gây nhiễu, nghĩa là ánh sáng của led này không làm sáng khu vực không gian led khác. Vì vậy có thể chọn các loại led 5mm vỏ có màu trắng đục hoặc chọn led 3mm để thực hiện. Hãy xem video để so sánh các loại LED.
 
LED cube dùng led 3mm

LED cube dùng led 5mm vỏ đục


LED cube dùng led 5mm vỏ trong.

2. Thi công khối led.
Sau vài lần thực hiện việc hàn ráp các khối led, tôi rút ra cách làm như sau:

+Khung khối led cấu tạo bởi các chân led.
+Các led được uốn chân sẵn. Phải đảm bảo các chân cathode cách đều nhau 0.9 inch(cùng uốn lệch về 1 hướng).
+Dùng một tấm gỗ khoan 25 lỗ có đường kính bằng đường kính led và có tâm cách nhau 0.9 inch để làm giá căng chỉnh khi hàn các lớp.
+Vừa hàn vừa kiểm tra từng led vì nếu để bóng chết khi đã ráp hoàn chỉnh rất khó thay.
+Khi ráp các lớp lại với nhau cần căng chỉnh các cột thật thẳng hàng. 

Sau đây là hướng dẫn thông qua 1 số hình ảnh:
GF LED cube 036
Các led được uốn chân như trên(có sự sai sót - đổi thứ tự anode và cathode), chân led phải uốn ra ngoài mép của led.

GF LED cube 057
Xây dựng 1 hàng của 1 lớp.

GF LED cube 056
Phải thường xuyên kiểm tra các led.

GF LED cube 058

Liên kết 2 hàng của 1 lớp.

GF LED cube 059

GF LED cube 060 
Cận cảnh các mối nối. 

GF LED cube 061
Kiểm tra và kiểm tra...

GF LED cube 064
Các chân làm cột đều uốn về 1 hướng. 
Xong 1 lớp. Hàn các lớp lại với nhau sẽ được khối led hoàn chỉnh.

GF LED cube 094
Khối led hoàn chỉnh.
GF LED cube 092 

led3mm18
Đối với led 3mm,công việc thực hiện tương tự. 

Các bạn download tiêu bản của các lỗ khoan tại đây:

3. Thi công board mạch.
Theo sơ đồ nguyên lý trên, tôi đã vẽ thành mạch in, nhưng do trình độ vẽ mạch có hạn nên mạch đi dây nối hơi nhiều. Bác nào có khả năng hãy vẽ lại và post lên cho anh em cùng tham khảo. Các bác tải sơ đồ mạch cũng như PCB ở cuối bài viết. Sau đây là 1 số hình ảnh của board mạch:(đang cập nhật).
Sau đây là 1 số hình ảnh về board mạch hoàn chỉnh: 
LC04

Nhìn tổng thể. 

LC01

Mặt đồng.

LC03

Khối LED.
 LC02
Khối điều khiển. 

Sau đây là video hoàn chỉnh về sản phẩm:
 

IV. Lập trình hiển thị. 
Do không điều khiển từng bóng led trực tiếp, nên cách duy nhất để điều khiển các bóng led sáng độc lập là dùng phương pháp quét.
Đầu tiên, ta cấp mức điện thế thấp cho 1 số cột nào đó trong 25 cột. Tiếp theo, ta cấp mức điện thế cao cho lớp muốn hiển thị. Sau đó tắt lớp này đi, tiếp tục bật 1 số cột khác rồi lại bật lớp tương ứng tiếp theo, cứ lặp đi lặp lại với tầng số cao thì mắt ta không nhận biết được sự chớp tắt, ta sẽ thấy 1 khối hiển thị.

Giải thuật lập trình thì tùy khả năng mỗi người mà có giải thuật khác nhau.Vì mới học lập trình C nên trình độ có hạn, tôi chỉ post lên đây file .hex, các bạn có thể dùng bất kỳ chương trình nào nạp cho chip ATMEGA32 với thạch anh 16Mhz.  

V. Mở rộng 
  ATMEGA32 có 32 chân IO nên điều khiển đủ khối led 5x5x5 chỉ cần 30 chân(5 chân lái lớp, 25 chân lái cột). Nhưng nếu muốn mở rộng khối led với kích cỡ lớn hơn như 8x8x8 chẳn hạn, ta phải dùng 1 số cách sau để mở rộng phần cứng.

+Dùng IC ghi dịch, ở nước ta chỉ thông dụng loại ghi dịch 8 bit (74164 hoặc 74595), hơi khó vẽ mạch. Loại này chỉ cần 2 hoặc 3 chân vi điều khiển, một chân cấp dữ liệu nối tiếp, 1 chân tạo xung clock, một chân chốt (nếu dùng 74595 ). Các IC này có khả năng mở rộng vô hạn (nếu quá nhiều IC  thì phải dùng IC đệm thúc dòng để đảm bảo dữ liệu không sai lệch).

+Dùng IC giải mã n đường sang 2^n đường (tiêu biểu là IC giải mã 3 sang 8 :74138)  nghĩa là cấp tọa độ để chọn cột hay lớp, khi đó phương pháp quét phải bao gồm luôn cả quét trên lớp.

Go-large-8x8x8 

Các bạn download tất cả dữ liệu bài viết tại đây
Code mẫu tại đây  

Tham khảo:
LED cube 5x5x5 dùng PIC 16f688 
http://picprojects.org.uk/projects/lc/ 
LED cube 4x4x4 dùng ATmega16 









 
»»  Đọc Tiếp
  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS
Thứ Sáu, 1 tháng 1, 2010

MẠCH NẠP AVR USB TẤT CẢ TRONG 1 - AVR ISP USB AIO

I. Giới thiệu.
Bài viết trước, tôi đã giới thiệu loại mạch nạp thông dụng là AVR910 USB, tuy nhiên loại mạch nạp này chưa thực sự ổn định và nạp không nhanh lắm.
Bài viết này sẽ giới thiệu với các bạn từng bước thực hiện 1 mạch nạp AVR cực kỳ hữu ích. Loại mạch nạp này sử dụng bootloader nên có thể load nhiều firmware của nhiều loại mạch nạp khác nhau như: Jtag, AVRISPmkII, STK500v2...(tất nhiên là firmware đã được chỉnh sửa cho phù hợp với phần cứng). Khi muốn dùng loại mạch nạp nào, ta chỉ cần load firmware bằng phần mềm đi kèm. Mạch này do người Đức thực hiện các bạn tham khảo và tìm bản mới nhất của firmware tại đây


II. Phần cứng.
Sau đây xin giới thiệu sơ đồ gốc của nhà sản xuất.
AVR ISP ALL IN ONE                                                                                                                                


Sơ đồ này là hoàn chỉnh và thực sự chạy tốt, tuy nhiên, để chuẩn nạp sử dụng header 5x2 hơi có dùng, tính năng truyền nhận dữ liệu (TX, RX) không thực sự cần và lý do cuối cùng là Zener 3V3 có thể khó tìm ở 1 số nơi. Vì vậy tôi đã hiệu chỉnh lại sơ đồ như sau:


AVR_ISP_USB_AIO                                                                                                                                


Chú thích.
+Các diode D4 và D5 sử dụng zener 3V3, khi đó diode D6 (1N4148) được nối tắt. Khi không tìm được zener 3V3 thì có thể dùng zener 3V6 thay thế, khi đó D6 phải mắc diode 1N4148.
+Jumper SLOW SCK: dùng cho chuẩn nạp tốc độ thấp, ở điều kiện bình thường thì nó không được nối tắt.
+Jumper SELF PROG: dùng để nạp lại chip master khi bootloader bị vô hiệu hóa( dùng các firmware USB - không phải COM ảo). Bình thường nó không được nối tắt và chỉ dùng khi cần nạp lại chip master.
+Jumper VTAR(CON2): dùng để cấp nguồn cho mạch đích (mạch cần nạp). Nếu mạch cần nạp đã có nguồn ngoài thì jump này được để hở.
+Chuẩn nạp được thiết kế theo thứ tự chân của các dòng AVR 40 pin như ATmega16: MOSI, MISO, SCK, RESET. Khi cần nạp lại chip master các chân nạp này cũng dùng để nạp cho chip master theo đúng thứ tự vừa nêu.


Sau đây là mạch in đã vẽ xong, tuy nhiên, mạch này vẽ chưa gọn và chưa đẹp, các bạn có khả năng nên tự vẽ lại theo sơ đồ nguyên lý trên:


PCB_OV


Nhìn tổng thể.


PCB_TOP
 Mặt đồng.


PCB_BOT


Sắp xếp và thông số linh kiện.


Lưu ý: qua thực nghiệm, điện trở hạn dòng cho cổng nạp (1k-100-1k-1k-từ trên xuống) là hơi lớn và có thể nạp không tốt ở 1 số dòng chip vì vậy các điện trở này có thể giảm giá trị xuống như sau: 680-68-680-680. Nếu vẫn chưa ổn các bạn có thể thay đổi giá trị điện trở theo hướng giảm xuống nhưng không nên bỏ qua các điện trở này.


III. Phần mềm.
Sau khi thi công xong mạch các bạn tiến hành các bước sau:
+Bước 1: Gắn jump SELF PROG để chuẩn bị nạp chip master ATmega8. Gắn jump VTAR để cấp nguồn cho mạch.
+Bước 2: Dùng 1 chương trình nạp thông dụng nạp file BOOTLOADER_M8.hex vào chip master ví dụ: codevision avr, cụ thể như sau:
Chọn Tools=>Chip Programer=>File=>Load FLASH(duyệt đến nơi lưu file:BOOTLOADER_M8.hex =>Chọn chip ATmega8=>Thiết lập các Fuse Bit như sau:
FUSEBIT2


Tiếp tục chọn Program=> FLASH.
Sau khi nạp xong tiếp tục chọn  Program=>Fuse bit.
Vậy là xong phần mềm, khi nào cần nạp lại thì thực hiện lại các bước trên nhưng không cần phải fuse bit lại. Khi nạp xong nhớ rút jump SELF PROG ra.


III. Giao tiếp với máy tính.
1. Cài phần mềm quản lý AVR USB LAB TOOLS.


AVR_LABS_TOOLS
Phần mềm chạy khi chưa gắn mạch nạp vào.
Gói phần mềm này các bạn tải dưới bài viết hoặc vào trang chủ để tìm  bản mới nhất. 


2. Cắm mạch nạp vào.
Khi cắm mạch nạp vào, máy tính nhận ra thiết bị mới (AVR ISP). Để cài driver ta chọn như sau:
NEW_HARD


Sau đó chọn đến thư mục cài đặt USB AVR LAB TOOL / DRIVER mặc định là C:\Program Files\USB AVR-Lab Tool\driver.
DRIVER 


Sau khi chương trình cài đặt driver hoàn tất khởi động lại máy tính và tiến hành nạp firmware của mạch nạp muốn dùng bằng chương trình USB AVR LAB TOOLS. Cụ thể như sau:
+Khởi động chương trình.
+Chọn firmware cần nạp.
+Chọn nút program để nạp.
+Chọn nút start application để hiệu lực firmware.
NAPFIRM1
http://www.flickr.com/photos/34249786@N04/4235124215/in/photostream/
Khi đó bootloader không còn hiệu lực. Vì vậy để đổi lại firmware khác, các bạn phải chọn nút có hình *(chuyển sang chế độ boot) để chọn cổng COM ảo mà firmware giả lập(nếu có). Nếu firmware là giao tiếp USB chuẩn thì chương trình sẽ tự nhận lại bootloader. Tuy nhiên, nếu chương trình không tự nhận lại bootloader thì ta phải tiến hành các bước nạp lại chip master rồi nạp lại firmware.
+Sau khi bấm nút start application thì window sẽ báo nhận ra thiết bị mới, chính là mạch nạp vừa được hiệu lực. Khi đó window sẽ yêu cầu cài đặt driver và ta lại thực hiện các bước cài driver như trên.
+Theo kinh nghiệm thì firmware AVRISP MkII hoạt động hiệu quả nhất, tuy nhiên mỗi lần muốn thay đổi firmware phải nạp lại chip master ATmega8. 
Lưu ý: Khi dùng các firmware chuẩn USB, có thể phải cài thêm driver giao tiếp USB ngoài driver của mạch nạp. Yêu cầu lúc này là máy có sẵn chương trình AVR STUDIO. Các bạn vào My computer =>Properties=> Hardware=>Device Manager=>Tìm tên mạch nạp mà bạn đã chọn firmware ở trên, nếu thấy nó có dấu hỏi màu vàng thì ấn chuột phải chọn update driver=>Yes this time only=>Install from a list or specific location=>Include this location in the search=> chọn đường dẫn đến driver USB trong thư mục cài đặt AVR Studio mặc định như sau:C:\Program Files\Atmel\AVR Tools\usb. Chờ khi cài xong driver là bạn đã sẵn sàn sử dụng.

Vậy là bạn đã hoàn tất mạch nạp với nhiều loại firmware khác nhau nên có thể gọi đây là mạch nạp tất cả trong 1. Chúc các bạn thành công.
Các bạn tải tất cả dữ liệu của bài viết tại đây: http://hotfile.com/dl/23401660/f0560a8/AVR_USB_ISP_AIO_WWW.EEELABS.ORG.rar.html
Chú ý: Khi in mạch, nếu dùng phương pháp in lụa thì in file AVR_ISP_TOP_MIRORED. Tất cả các bản in phải đảm bảo zoom 100%.






Mọi chi tiết, các bạn có thể để lại comment dưới bài viết này để đặt câu hỏi hoặc trao đổi thông tin. 
Bài viết trên đây có sự tham khảo thông tin từ thành viên ITX và HOANGDAI của diễn đàn điện tử VN.
Đặc biệt gửi lời cảm ơn đến Mr Sơn - mmlovely(dientuvietnam.net) (doanh nghiệp LED Sơn Phú - Cần Thơ) đã hỗ trợ công cụ thí nghiệm
Video hướng dẫn chi tiết.



»»  Đọc Tiếp
  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS
Chủ Nhật, 9 tháng 8, 2009

Mạch Nạp AVR 910 USB

AVR910USB

I. Giới thiệu

AVR 910 USB là một tích hợp giữa USB và AVR910 của ATMEL tạo ra mạch nạp mode ISP chuẩn, gọn, tiện lợi và rẻ tiền. độ ổn định cao. Giao tiếp PC duy nhất bằng Cable USB
Sử dụng trong nhiều sofware compiler như AVR-Studio, CodevisionAVR, AVRDUDE...giao diện thân thiện và dễ dùng

Các loại chip hỗ trợ : 90S và 89S53, 89S8252, 90S2313, 90S8515, ATtiny26, ATtiny45, ATtiny2313, ATmega48, ATmega8, ATmega8515, ATmega8535, ATmega16, ATmega32, ATmega64, ATmega128, AT90CAN128.

Đặc điểm

+ Nguồn cung cấp: 5V từ cổng USB.
+ Giao tiếp Virtual COM qua USB.
+ Tốc độ truyền tối đa: 115200bps, 8 bit, no parity, 1 stop, no flow control.
+ Định dạng file: Intel 8-bit HEX.

Tính năng
+ Hỗ trợ đầy đủ các tác vụ nạp chip thông thường như: Ghi/xóa/đọc nội dung trong chip, kiểm tra lỗi sau khi nạp.
+ Hỗ trợ khóa chip và lập trình fuse bit .
+ Header nạp ISP chuẩn ICE 5x2 như dòng KIT thí nghiệm STK của ATMEL giúp kết nối thuận tiện.
+ Tốc độ nạp cao, sử dụng được với hầu hết các trình biên dịch: Code Vision, AVR Studio...
+ Đơn giản trong kết nối, cài đặt và sử dụng.

avr910fr

avr910bc


II. Sơ đồ nguyên lý.

Tổng hợp qua các diễn đàn điện tử thì thông dụng có 2 mạch nguyên lý sau:

avr910

Mạch AVR 910 USB cơ bản.

avr910up

Mạch cải tiến.(Khuyên dùng trong bài này)

socketna

Chú thích mạch cải tiến:

F1: là cầu chì bảo vệ ngắn mạch ngẫu nhiên của cổng USB.(Có thể tiêu giảm thiết bị này)

J1 và J2: là các jumper chức năng, khi nạp firmware cho master chip(ATMega8) thì cắm jump cho J1(J1 đóng). Khi dùng mạch để nạp xuống chip thì cắm jump cho J2(J2 đóng)

III. Các bước thực hiện

1. Thực thi phần cứng: vẽ layout PCB hoặc làm trên testboard, có thể  cắm thử nghiệm trên breadboard cho chắc.
2. Nạp firmware  cho  ATMega8 (nhờ người khác nạp giùm hoặc lắp một mạch nạp đơn giản qua COM hoặc LPT): Firmware là 1 chương trình giúp giao tiếp giữa mạch nạp, máy tính và AVR đích. Để nạp firmware cho  master(ATMega8), cắm jump cho J1(J1 đóng). Sử dụng một mạch nạp khác cắm vị trí chân MOSI, MISO, SCK, RESET và chân GND tương ứng với mạch nạp(header 5x2 ICE), sau đó nạp chương trình cho con Master.

3. Cài đặt driver cho Window(XP/Vista). Lưu ý: khi cài đặt driver chỉ kết nối mạch nạp với máy tính. Không nên vừa kết nối với adapter(board nạp) hoặc board ứng dụng chứa chip đích vừa kết nối với máy tính.

4. Dùng chương trình nạp thông dụng để kiểm tra mạch hoặc nạp xuống chip, cắm jump cho J2(J2 đóng)

IV. Phần mềm và hướng dẫn sử dụng

Sơ đồ mạch cải tiến + Firmware(*.hex) + Driver Win XP/2000 tại đây  hoặc tại đây

Hướng dẫn cài đặt driver tại đây 

Driver XP và Vista khác tại đây hoặc tại đây: VISTA XP

Hướng dẫn sử dụng với chương trình nạp thông dụng tại đây hoặc tại đây






 

»»  Đọc Tiếp
  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS
Lên đầu trang
Vào giữa trang
Xuống cuối trang