Mình ngoài vụ đam mê chế tạo cơ khí còn rất đam mê điện, điện tử, tin học v.v... khi rảnh rỗi cũng hay vọc phá bên các lĩnh vực này.
Đây là board Arduino với cấu hình rất nhỏ gọn, tiện dụng giúp người sử dụng có thể dễ dàng học tập thí nghiệm lập trình AVR một cách dễ dàng.
- Arduino là gì? Arduino là một dự án phát triển lập trình vi xử lý mở, được rất nhiều thành viên tham gia củng phát triển, và có rất nhiều dự án nhỏ phát triển trên nền tảng này được tặng miễn phí trên internet xem thêm về Arduino ở đây.
Board chỉ bao gồm 1 chíp vxl AVR atmega8 kèm một vài linh kiện khác. Có chức năng giao tiêp USB kết nối với máy tính để tiện cho việc lập trình bằng chương trình Arduino.
Dự án trên dựa vào nguồn từ đây http://matrixstorm.com/avr/tinyusbboard/
Xem thêm chủ đề DIY - Arduino LCD sheild của CKD
File đính kèm là chương trình gia công board trên máy cnc.
Đang có âm mưu dùng Modbus Arduino để đọc và xuất Axis trên mach3 ra led7 đoạn, không biết CKD đã làm cái này chưa nhỉ
Nếu chỉ là DRO thì không thành vấn đề bạn à.
Cái đó prototype mình cũng đã làm rồi, dùng board Arduino UNO hoặc Arduino MEGA.
Mình sử dụng đồng thời marcopump & Arduino Modbus, các giải pháp khác mình chưa thử qua. Tuy nhiên do hạn chế tốc độ truy xuất của Modbus trên Mach3 nên đáp ứng hơi chậm, do đó mình tạm thời ko nghiêm cứu tiếp. Mình đang định chuyển qua thử nghiệm trên đường Modbus TCP/IP để tăng tốc độ thử xem thế nào.
- macropump đọc dữ liệu DRO và truyền ra ngoài qua đường RS232 với giao thức Modbus RTU.
- Arduino nhận dữ liệu Modbus, phân tích, hiển thị qua LCD hoặc 7LED.
Ngoài ra còn một giải pháp khác là dùng Brain trên Mach3, nhưng mình chưa thử qua nốt.. giải pháp này đơn giản hơn dùng với macropump.
Hiện mấy bác khoai tây và nhất là thằng anh china giao tiếp mở rộng thiết bị với Mach3 qua plugin USB.. tốc độ truy xuất & xử lý rất cao, có thể truyền được cả step/dir signal. Nhưng vụ này mình chưa dám đụng vì trình kém.
Các vấn đề đến Modbus mình nghiêm cứu ở đây www.modbus.org
Các vấn đề về DRO, mach3 v.v.. mình tìm hiểu qua thầy Google.
Arduino UNO của của china khá rẻ, qua tuần mua về ngâm cứu từ từ vậy.
Cảm ơn CKD nhiều khi làm có gì khó khăn sẽ nhờ tiếp
Lần sửa cuối bởi ghoang, ngày 08-11-2013 lúc 03:40:08 PM.
@ vouvoume: below IC atmega![]()
Có máy tính rồi các bác xuất tọa độ ra led làm gì nhỉ.
Mình có cách khác, viết 1 chương trình trên PC đọc giá trị axis của Mach3, sau đó truyền qua RS232 thôi.
úi trời .... diễn đàn có luôn tác giả nước ngoài luôn, tự nhiên thấy vui ghê.
DT: O7837277II - CKD's Youtube Channel - Facebook - Tổng hợp chủ đề
17 ds 3, Thạnh Mỹ Lợi, Q2, tp.HCM
hello, vouvoume!
Do you know Stephan Bärwolf?
Bỏ ra cả buổi làm 1 cái theo tác giả, hy sinh 1 dây LPT làm mạch nạp firmware kiểu mì ăn liền cho avr, nạp và test firmware thì ok, nhưng mà mở Arduino IDE để upload chương trình vào board thì lỗi không tìm thấy phần cứng USBasp (avrdude: error: could not find USB device "USBasp" with vid=0x16c0 pid=0x5dc) , chán quá. Ai biết tại sao không? Thiệt tình là tui không biết gì về Arduino hay chip avr này.
Vào trang chủ trên kia đọc lại đi bạn, nó có hướng dẫn phần add phần cứng vào Soft Aduino rồi mới dùng được
NGUYỄN NGỌC ĐỨC - cncquangnam@gmail.com - DĐ: 0989315944
TK Techcombank: 19026797927015 (Tân Bình, HCM)
- Bước đầu tiên là phải xác định xem máy tính đã nhận được USBasp driver chưa? Nếu chưa thì phải cài driver cho nó.Thường khi cắm thiết bị vào, nếu thiết bị hoạt động Ok thì windows sẽ thấy và yêu cầu cài driver. Nếu dùng với win vista hoặc win7 và có kết nối internet thì có thể windows sẽ tự tìm driver và tự cài. Nếu dùng XP thì phần lớn trường hợp là phải cài driver thủ công.
Nếu windows không hỏi driver và trước giờ vẫn chưa dùng USBasp bootloader thì phần lớn trường hợp là mạch chưa hoạt động, hoặc hoạt động mà giao tiếp USB chưa nhận. Lúc này cần xem lại xem mạch & firmware đã đúng & hoạt động chưa. Xem USB có hoạt động.
Với mạch này thì nếu dùng 2 diode zener không đúng như sơ đồ thì mạch cũng không giao tiếp USB được.
- Bước thứ hai là config Arduino để Arduino có thể nhận biết được thiết bị. Do thiết bị này được phát triển thêm, không phải các thiết bị mặt định do chính Arduino phát triển. Nên chúng ta phải config bằng tay. Mình dùng Arduino version 1.0.4. Hiện Arduino có nhiều version mới hơn, nhưng việc config phức tạp hơn nên mình dùng V này. Bạn có thể lên trang http://arduino.cc/en/Main/Software để tìm & download về.Cài đặt Arduino software.
Vào thư mục hardware/arduino trong thư mục cài đặt (thường là C:\Program Files\Arduino\hardware\arduino) mở file board.txt bằng Notebad và chèn đoạn code sau vào cuối file. Sau đó lưu (save) lại rồi đóng file.
Mở bài tập Blink trong mục axemple của Arduino.Mã:##########tinyUSBboard (Rev.3 and future)###(magic=0xfe9a5680)####################### newtinyUSBboard.name=tinyUSBboard (USBaspLoader ATmega328p at 16MHz, Rev.3) newtinyUSBboard.upload.protocol=usbasp newtinyUSBboard.upload.maximum_size=28672 newtinyUSBboard.upload.speed=115200 newtinyUSBboard.upload.disable_flushing=true newtinyUSBboard.bootloader.low_fuses=0xD7 newtinyUSBboard.bootloader.high_fuses=0xD0 newtinyUSBboard.bootloader.extended_fuses=0x04 newtinyUSBboard.bootloader.path=tinyUSBboard newtinyUSBboard.bootloader.file=tinyUSBboard_atmega328p_16mhz_rev3.hex newtinyUSBboard.bootloader.unlock_bits=0x3F newtinyUSBboard.bootloader.lock_bits=0x3F newtinyUSBboard.build.mcu=atmega328p newtinyUSBboard.build.f_cpu=16000000L newtinyUSBboard.build.core=arduino:arduino newtinyUSBboard.build.variant=tinyusbboard tinyUSBboard.name=tinyUSBboard (USBaspLoader ATmega8 at 16MHz, Rev.3) tinyUSBboard.upload.protocol=usbasp tinyUSBboard.upload.maximum_size=6144 tinyUSBboard.upload.speed=115200 tinyUSBboard.upload.disable_flushing=true tinyUSBboard.bootloader.low_fuses=0x1F tinyUSBboard.bootloader.high_fuses=0xC0 tinyUSBboard.bootloader.path=tinyUSBboard tinyUSBboard.bootloader.file=tinyUSBboard_atmega8_16mhz_rev2.hex tinyUSBboard.bootloader.unlock_bits=0x3F tinyUSBboard.bootloader.lock_bits=0x3F tinyUSBboard.build.mcu=atmega8 tinyUSBboard.build.f_cpu=16000000L tinyUSBboard.build.core=arduino:arduino tinyUSBboard.build.variant=tinyusbboard
Chọn Serial Port, vào probety thiết bị USBasp và xem là COM Port nào thì chọn đúng port đó.
Chọn Board là tinyUSBboard (USBaspLoader ATmega8 at 16MHz, Rev.3)
Upload thử xem thế nào..
Driver USBasp.
DT: O7837277II - CKD's Youtube Channel - Facebook - Tổng hợp chủ đề
17 ds 3, Thạnh Mỹ Lợi, Q2, tp.HCM
Mình làm đầy đủ theo trang chủ, cài firmware Rev. 3 tinyUSBboard firmware - english version test ok, nhận ra thiết bị keyboard chứ không nhận ra USBasp, sau đó thử tinyUSBboard as USBasp programming hardware thì nhận ra phần cứng USBasp nhưng hình như nó không phải là firmware Arduino nên không upload được.
Vậy cho hỏi có phải là mình chọn không đúng firmware không ? Cụ thể là chọn file nào đây, ai làm rồi chi mình với.
Anh sài chip gì để làm mạch nạp vậy? Atmega8? Nếu đúng thì sài luôn cái firmware của nó đi việc gì phải sài tinyusb làm gì cho rách việc, em sài usbasp có thể nạp được chip >64kb chứ cái tiny chỉ nạp từ 64kb đổ lại thôi. Anh lên GG seach thì có ngay cái trang chủ của nó luôn nhé.
Ban đầu bạn phải dùng 1 mạch nạp để nạp bộ nạp khởi động cho board, sau đó thì có thể dùng chính nó để nạp chương trình cho nó. Cho hỏi luôn là bạn đang sử dụng chip gì và khi nào bạn nạp hết được 64kb chưa. Tinyasp này cũng có thể chuyển thành 1 mạch nạp usbasp đó, xài firmware trên trang đó luôn.
Lần sửa cuối bởi ahdvip, ngày 07-12-2013 lúc 02:50:52 AM.
NGUYỄN NGỌC ĐỨC - cncquangnam@gmail.com - DĐ: 0989315944
TK Techcombank: 19026797927015 (Tân Bình, HCM)
NGUYỄN NGỌC ĐỨC - cncquangnam@gmail.com - DĐ: 0989315944
TK Techcombank: 19026797927015 (Tân Bình, HCM)
Mình quên mất. Có mấy điều cần lưu ý với board này.
* Ngoài những bước tiến hành như trên, mình tóm tắc lại thế này:
- Nạp firmware cho AVR bằng mạch nạp. Bất kỳ mạch nạp nào có thể dùng cho Atmega8/16/32 v.v.. đều có thể dùng.
- Set fuse/clockbits cho AVR. Cụ thể là l-fuse=0x3f, h-fuse=0xc0.
- Khi cấp nguồn và cắm USB, phải ấn và giữ đồng thời button Pro (button trên pin PD6, pin 12) để Atmega8 khởi động vào chế độ USBasp.
- Khi đó Windows sẽ nhận thiết bị là USBasp.
- Các bước sau đó với Arduino thì như bài trên.
Đính kèm là tinyUSBboard firmware cho Atmega8/16 với xtal 16MHz
DT: O7837277II - CKD's Youtube Channel - Facebook - Tổng hợp chủ đề
17 ds 3, Thạnh Mỹ Lợi, Q2, tp.HCM