PDA

View Full Version : DIY - Arduino tiny board



CKD
08-11-2013, 11:08:47 AM
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 (http://sotatec.com.vn/nhom-gioi-thieu-sotatec-94.html).

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.

http://farm8.staticflickr.com/7314/11337211184_8001567023_z.jpg

517

518

520

521

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 (http://forum.cncprovn.com/threads/3145-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.

ghoang
08-11-2013, 01:26:20 PM
Đ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ỉ

CKD
08-11-2013, 03:20:03 PM
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.

ghoang
08-11-2013, 03:38:58 PM
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

vouvoume
08-11-2013, 06:09:44 PM
Dự án trên dựa vào nguồn từ đây http://matrixstorm.com/avr/tinyusbboard/

Hello everyone. ;)

It's me, the designer of tinyUSBboard.
I am very exited you are discussing it here in the forum.
I also saw your pictures CKD, here my question: Where did you solder the crystal?

Best regards,

jimmyli
08-11-2013, 06:36:18 PM
@ vouvoume: below IC atmega :D

vouvoume
08-11-2013, 06:50:48 PM
@ vouvoume: below IC atmega :D

ahhh, okay

Thank you ;)

anhcos
08-11-2013, 07:42:24 PM
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.

Nam CNC
08-11-2013, 09:08:26 PM
ú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ê.

CKD
09-11-2013, 12:51:33 AM
Hello everyone. ;)

It's me, the designer of tinyUSBboard.
I am very exited you are discussing it here in the forum.
I also saw your pictures CKD, here my question: Where did you solder the crystal?

Best regards,

Thanks you for your project.

The crystal is below Atmega

see image
607

ahdvip
09-11-2013, 12:00:27 PM
hello, vouvoume!
Do you know Stephan Bärwolf?

vouvoume
10-11-2013, 06:11:04 PM
hello, vouvoume!
Do you know Stephan Bärwolf?

Yes, I know him very well ;-)

Btw.: Thanks for all the nice Pictures.

lekimhung
06-12-2013, 01:15:19 AM
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.

ahdvip
06-12-2013, 08:51:01 AM
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

CKD
06-12-2013, 12:55:18 PM
- 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.


##########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_atmeg a328p_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

Mở bài tập Blink trong mục axemple của Arduino.
Chọn Serial Port, vào probety thiết bị USBasp và xem là COM Port nào thì chọn đúng port đó.
965

Chọn Board là tinyUSBboard (USBaspLoader ATmega8 at 16MHz, Rev.3)
966
Upload thử xem thế nào..


Driver USBasp.

lekimhung
06-12-2013, 11:09:46 PM
Mình làm đầy đủ theo trang chủ, cài firmware Rev. 3 tinyUSBboard firmware - english version (http://matrixstorm.com/avr/tinyusbboard/bootloader/rev3_default_enus_lfx3f_hfxc0_v0x96x2.hex) test ok, nhận ra thiết bị keyboard chứ không nhận ra USBasp, sau đó thử tinyUSBboard as USBasp programming hardware (http://matrixstorm.com/avr/tinyusbboard/examples/rev3_usbaspprogrammer.hex) 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.

jimmyli
07-12-2013, 12:34:08 AM
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é :D.

ahdvip
07-12-2013, 02:42:57 AM
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é :D.
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.

ahdvip
07-12-2013, 02:48:00 AM
Mình làm đầy đủ theo trang chủ, cài firmware Rev. 3 tinyUSBboard firmware - english version (http://matrixstorm.com/avr/tinyusbboard/bootloader/rev3_default_enus_lfx3f_hfxc0_v0x96x2.hex) test ok, nhận ra thiết bị keyboard chứ không nhận ra USBasp, sau đó thử tinyUSBboard as USBasp programming hardware (http://matrixstorm.com/avr/tinyusbboard/examples/rev3_usbaspprogrammer.hex) 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.
Muốn nhận ra "usbasp" thì ngay khi cắm mạch vào phải nhấn giữ 1 phím, bạn coi có nhấn phím đó chưa

CKD
07-12-2013, 10:57:06 AM
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

lekimhung
07-12-2013, 01:58:48 PM
Đã thành công khi nhấn và giữ phím pro, cám ơn mọi người nhiều nha.

duonghoang
11-12-2013, 04:37:02 PM
http://www.5giay.vn/dien-tu-dien-lanh-gia-dung/6272317-arduino-board-mach-phat-trien-ung-dung-cho-sinh-vien-va-nhung-ai-dam-me-sang-tao.html
Vô tình thấy trang này bán toàn Module của Arduino anh em vào ghé xem thử nha

kTech
23-09-2016, 04:22:51 AM
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

Chào bạn, mình có thử làm nhưng phần driver nó chỉ nhận là USBasp, cho mình hỏi làm thế nào để chuyển nó sang cổng COM Port (vì hiện tại Arduino không nhận cổng COM Port để upload)