PDA

View Full Version : Arduino - Mỗi ngày một ví dụ, từ dễ tới khó - Arduino UNO R3



Trang : [1] 2

CKD
06-01-2015, 12:54:56 PM
Arduino - Mỗi ngày một ví dụ, từ dễ tới khó - Arduino UNO R3

Arduino UNO R3
Được CKD đánh giá là bo Arduino chuẩn, là nền tảng của các phiên bản tiếp theo sau này. Các ngõ vào/ra được bố trí theo chuẩn và hầu như tương thích hoàn toàn với các shield. Người mới bắt đầu nên khởi động bằng bo này. Cấu hình, tính năng, giá thành rất phù hợp trong giai đoạn làm quen.

Giới thiệu sơ lượt.
Arduino UNO được phát triển trên nần core xử lý của Atmel là atmega328. Trên bo đã được tích hợp một số phần tử:
- USB - UART dùng để giao tiếp với máy tính thông qua chuẩn serial (chuẩn nối tiếp)
- Mạch điều khiển nguồn và ổn áp.
- Một số linh kiện ngoại vi cần thiết.

5558 5559

Từ khi ra đời đến giờ đã được nâng cấp qua 3 phiên bản, đó là chưa tính đến những bo tự tạo (biến thể của Arduino UNO) của các thành viên khi cùng tham gia vào cộng đồng Arduino. Các biến thể do người dùng tự tạo (DIY hoặc homemade) CKD sẽ giới thiệu sau nếu có time.
Các phiên bản R1 & R2 hiện nay hầu như không còn vì đã được thay thế bởi phiên bản R3. Vậy các phiên bản khác nhau ở điểm nào?
- Với phiên bản R1. USB - UART dùng chíp FTDI
- Với phiên bản R2. USB - UART dùng chíp atmega8 được lập trình thành bộ chuyển đổi USB - serial.
- Với phiên bản R3. USB - UART dùng chíp atmega16 được lập trình thành bộ chuyển đổi USB - serial.
Các cải tiến này nhằm mục đích giúp cho việc lập trình lại core xử lý chính (atmega328) nhanh chóng và ít lỗi hơn. Ngoài ra ở phiên bản R3 một số ngõ vào/ra đã được thay đổi đến vị trí phù hợp hơn. Giúp cho tính tương thích với các shield tốt hơn.



* Vi điều khiển
AVR atmega328


* Điện áp làm việc
5V


* Nguồn cấp
7-12V


* Nguồn cấp - giới hạn
6-12V


* Ngõ vào/ra số (digital I/O)
14, trong đó có 6 ngỏ ra PWM


* Ngõ vào tương tự (analog)
6, có thể dùng như ngõ vào số


* Dòng hạn mức ngõ vào/ra
40mA


* Dòng hạn mức ngõ 3.3V
50mA


* Bộ nhớ Flash
32kB đã dùng 0.5kB cho bootloader


* SRAM
2kB


* EEPROM
1kB


* Tần xố xung nhịp
16MHz



Sơ đồ và chức năng các ngõ vào/ra của atmega328 và tương ứng trên Arduino UNO R3
http://cncprovn.com/updata/img/Arduino%20UNO%20Pinout.png

Xem thêm thông tin từ trang chủ Arduino UNO R3 (http://arduino.cc/en/Main/arduinoBoardUno)
Xem thêm các bài viết về Arduino
- Chuyên mục có các bài viết liên quan đến Arduino http://forum.cncprovn.com/forums/80-Arduino
- Bài viết DIY - Arduino LCD sheild
- Bài viết DIY - Arduino tiny board
- Bài viết Arduino - Mỗi ngày một ví dụ, từ dễ tới khó - Arduino là gì? (http://forum.cncprovn.com/threads/3601-Arduino-Moi-ngay-mot-vi-du-tu-de-toi-kho-Arduino-la-gi)

CKD
06-01-2015, 01:26:12 PM
Kích thước tổng quát Arduino UNO R3
5560

Sơ đồ Arduino UNO R3
5561

Sơ đồ & mạch trên Egale 5562
Sơ đồ PDF 5563

anhcos
06-01-2015, 02:30:00 PM
Chi tiết kỹ thuật thì mình không biết nhiều, nhưng với bo này, nếu dùng visual studio với addins arduino thì sẽ lập trình điều khiển nó với vài ba con step là được chứ CKD.
Chả biết bo R3 này có giá bán ở VN là bao nhiêu?

CKD
06-01-2015, 02:48:22 PM
Chi tiết kỹ thuật thì mình không biết nhiều, nhưng với bo này, nếu dùng visual studio với addins arduino thì sẽ lập trình điều khiển nó với vài ba con step là được chứ CKD.
Chả biết bo R3 này có giá bán ở VN là bao nhiêu?

Mấy cái addin thì em không rỏ. Có cái em dùng Arduino IDE hay dùng luôn AVRStudio, CodeVision thì lập trình vô tư. Tất nhiên như đã đề cập Arduino IDE có nhiều ưu/khuyết, muốn tận dụng hết năng lực con atmega thì nhảy qua dùng AVRStudio hay CodeVision thì hay hơn.

Điều khiển cùng lúc mấy con step là sao a? Nó chỉ làm controller hay làm luôn chức năng driver?
- Controller thì nó có cái project GRBL.. max điều khiển lên tới 4axis, tích hợp G-Code intepreter. Trong dự án GRBL tụi coding nó chủ yếu dùng C, viết cho tương thích với Arduino. Nếu dùng thuần với Arduino thì không đạt được hiệu suất cũng như tốc độ làm việc như trong GRBL.
- Driver step full/haft thì chắc được 2 con lúc :D.

Nói chung thì em cũng chưa trải nghiệm nhiều. Mới làm sơ sơ mấy bài tập:
- Điều khiển I/O, analog.
- Kết nối UART
- Kết nối qua internet shield, làm web master hoặc slaver :D
Mấy cái project đó phần lớn chạy tốc độ chậm, chủ yếu on/off, đo đạt. Gần đây nhất thì mới thử với PID mới thấy nhanh/chậm thế nào, thử luôn chức năng giả lập dùng ADC làm OSC chơi. Tần số lấy mẫu đạt khoảng vài kHz. Có thể gọi là FUN project :D

Nói chung thì cộng đồng dùng Arduino khá là đông. Phần lớn dự án đều mang tính mở (open source) nên mới học, thì tiếp cận dễ. Không biết phải làm thế nào thì chỉ cần hỏi thầy google.com là có ngay bài tập mẫu, hoặc cùng ý tưởng. Cứ thể mà xem rồi thực nhiệm, rồi chỉnh sửa theo ý mình. Các tiện ích viết thêm chạy trên nền Windows cũng được chia sẻ khá nhiều. Không biết lập trình IDE, lập trình VB hay MATLAB bla bla.. vẫn có thể tìm ra được cái để dùng :D.

anhcos
07-01-2015, 08:52:44 AM
Ý là dùng làm controller đó CKD, điều khiển vài con step, tốc độ không cao và một thời điểm cũng điều khiển tối đa có 3 con thôi thì chắc là đáp ứng được nhỉ.

Arduino IDE cho Microsoft Visual Studio ở đây rồi:
http://playground.arduino.cc/Code/VisualStudio
http://www.visualmicro.com/

Vậy nên giao tiếp giữa PC và bo R3 này chắc không lo lắm nữa, chỉ cần lo phần chương trình cho con atomega kia mới mệt.

CKD
07-01-2015, 10:38:52 AM
Chắc là được. Em thì chưa thử bao giờ.. nhưng mà tụi nó dùng chạy CNC, dù thấy không smoot như mấy cái soft trên PC, nhưng so với một số PSD đời cũ thì thấy cũng ổn. Nến nếu dùng để điều khiển mấy thiết bị chụp hình của anh chắc là được.

Có cái thằng visual thì tuyệt.. mà nó là bản thương mại mà.. nghèo sao chơi được a?
Mình thuộc nhóm sinh viên hay là thương mại nhỉ. Li săn chỉ có 29/99 bảng.

Tien Manh
07-01-2015, 10:40:08 AM
Hóng tiếp các bài của cụ, trong lúc chờ hàng về :D. Em mua UNO, LENADO với mấy shield linh tinh như này. Theo cụ có cần mua gì nữa không. Con UNO có USB HID đúng không cụ, dự tính ban đầu là sẽ viết 1 vài thứ có dây dưa đến MACH3, Planet CNC.
5573
5574
5575
5576

Cái shield XBee này em không biết có tác dụng gì?
5577

Có cái này cho vô cái hộp trông nguy hiểm không kém PLC :D
5578

Trong đám này sẽ nhặt một số hữu dụng, hay dùng như Relay, buzzer, joystick, cảm biết khoảng cách, đo nhiệt....
5579

Tien Manh
07-01-2015, 10:44:43 AM
Chắc là được. Em thì chưa thử bao giờ.. nhưng mà tụi nó dùng chạy CNC, dù thấy không smoot như mấy cái soft trên PC, nhưng so với một số PSD đời cũ thì thấy cũng ổn. Nến nếu dùng để điều khiển mấy thiết bị chụp hình của anh chắc là được.

Máy in 3D nữa cụ ạ, có sẵn hết luôn. Giá cũng hạt rẻ. Mầy chán CNC em sẽ chuyển sang loại này. Găm được cả lố step kèm bánh răng chạy đai rồi :D.
5580

hungdn
07-01-2015, 11:05:10 AM
Chắc là được. Em thì chưa thử bao giờ.. nhưng mà tụi nó dùng chạy CNC, dù thấy không smoot như mấy cái soft trên PC, nhưng so với một số PSD đời cũ thì thấy cũng ổn. Nến nếu dùng để điều khiển mấy thiết bị chụp hình của anh chắc là được.

Có cái thằng visual thì tuyệt.. mà nó là bản thương mại mà.. nghèo sao chơi được a?
Mình thuộc nhóm sinh viên hay là thương mại nhỉ. Li săn chỉ có 29/99 bảng.

Bác có thể dùng VS bản Community... tất nhiên là miễn phí và full featured :)
http://www.visualstudio.com/en-us/news/vs2013-community-vs.aspx

CKD
07-01-2015, 11:14:07 AM
3D printer & GRBL CNC nó giống giống nhau bác ạ.
Có mấy bác phát triển để chạy với cortex M3 gọi là TinyG thì phải, dạo này căng thẳng.. đầu óc chẵng nhớ gì :D

anhcos
07-01-2015, 11:34:54 AM
Bác có thể dùng VS bản Community... tất nhiên là miễn phí và full featured :)
http://www.visualstudio.com/en-us/news/vs2013-community-vs.aspx

Ý bác CKD là cái VisualMicro kia kìa, chứ VS mấy bản mình xài không biết đã có xxxx chưa mà không bao giờ thấy nó hỏi lai sần.

Bo UNI R3 này tme bán 260k, giá quá tốt để vọc vẹo rồi.

nhatson
07-01-2015, 11:43:27 AM
3D printer & GRBL CNC nó giống giống nhau bác ạ.
Có mấy bác phát triển để chạy với cortex M3 gọi là TinyG thì phải, dạo này căng thẳng.. đầu óc chẵng nhớ gì :D

báo cáo là G2 ah, tinyg dùng xmega ah
https://camo.githubusercontent.com/96c72a42068c0132af19898cd534a2cc833f4c15/687474703a2f2f6661726d342e737461746963666c69636b72 2e636f6d2f333733342f31303338353536383436345f326331 343762393830365f625f642e6a7067

https://github.com/synthetos/g2

cuong
09-01-2015, 10:34:47 PM
Vậy hành trang là gồm những dụng cụ gì vậy bác CKD, tốn hết bi nhiêu lúa, mua ở mô, để em còn đu theo. Nghe là nổi máu rồi. Việc điều khiển driver step thì cần đọc những cái gì vậy bác

CKD
09-01-2015, 10:54:17 PM
Để làm quen thì chỉ cần bo Arduino UNO là đủ.. thêm vài linh kiện lặt vặt.

Giá tầm >250K
Mình hay mua ở Thiên Minh http://tme.vn/Product.aspx?id=1628
hoặc http://hshop.vn/mach-arduino/board-arduino/arduino-uno

Các linh kiện khác có thể là
- đèn LED
- điện trở 470om
- bla lba

cuong
09-01-2015, 11:21:14 PM
Ai da. Nghe bảo cần mạch nạp cho con ic trên bo uno à bác, mà em cần đọc thứ gì cho việc điều khiển drive cho step môt vậy bác

cuong
09-01-2015, 11:31:55 PM
Ai da. Nghe bảo cần mạch nạp cho con ic trên bo uno à bác, mà em cần đọc thứ gì cho việc điều khiển drive cho step moto vậy bác

trucnguyen
10-01-2015, 12:30:52 AM
Ai bảo thế thì xúi dại rồi, không cần thêm bất cứ mạch nạp nào đâu bác ah, nó nạp bằng bootloader qua cồng ISCP của con VXL.
Nếu bác có 1 con VXL AVR328P trắng thì bác cũng có thể dùng 1 board UNO làm mạch nạp để download bootloader UNO co con VXL trắng kia. Rồi bác tự làm cái mạch vối con VXL kia + thạch anh 16MHz + vài cái tụ + nút nhấn + 1 mạch chuyển USB-SERIAL là được 1 board UNO made by tự tui.

Board UNO R3 bác có thể mua ở đây cho rẽ, khoảng 160 K hay 170K gì đó: http://dientuachau.com/page/index.php?_m=mod_product&_a=view&p_id=1107
Rẽ hơn nữa là loại này cũng bootloader UNO luôn 90K : http://dientuachau.com/page/index.php?_m=mod_product&_a=view&p_id=1108

2 cái này hoàn toàn như nhau, chỉ khác nhau ở chổ cái thằng mắc hơn dùng con AVR gì đó làm giao tiếp USB- SERIAL nên nó tự nhận dạng driver và COM port tự động (phải cài trước Arduino IDE). Còn cái rẽ hơn dùng 1 chip USB-Serial của Tàu , nên bác phải tự cài driver và khai báo COM port bằng tay trong Arduino IDE.

Arduino đúng là một công cụ lý tưởng để mọi người tiếp cận với VXL - em cũng mới a dua theo được hơn tháng, càng tìm hiểu càng thích.:o

trucnguyen
10-01-2015, 12:44:58 AM
Tý nữa thì quên, 1 kinh nghiệm cho bác nào thích làm Board UNO made by tự tui, khi mua mạch chuyển USB-COM thì nhớ chọn loại có tín hiệu bắt tay DTS nhé rồi nối ngõ này vào chân RST của cổng ICSP thì mới tiện khi nạp chương trình. Không nên mua loại chỉ có ra 2 ngõ RX và TX vì nếu không thì phải bấm nút giữ RESET mỗi lần nạp thì hơi mệt.
Mà em nghĩ cũng không nên chế cháo làm gì, đi mua cái board 90K cho nhanh, con AVR328P trắng cũng 75K rồi.

anhcos
10-01-2015, 09:05:56 AM
Chơi luôn con có cổng USB-SERIAL luôn cho tiện đi bác, dây usb-com to và dài hơn sợi usb nhiều, mình cũng nhảy vô ngâm cứu với ae. Mai mốt có kết quả sẽ sô hàng luôn.

CKD
10-01-2015, 09:23:24 AM
Bản thân trên UNO đã có usb-serial rồi. Board arduino nano cũng giống như UNO, sau khi test thành công thì chơi arduino micro cho gọn và rẻ.
Thực ra với em, dùng mấy bo này để thí nghiệm cho dễ. Ok rồi thì làm lại pcb rồi mới chiến.

trucnguyen
10-01-2015, 09:43:48 AM
Em vừa download bootloader UNO cho con Arduino micro của em đó bác CKD, giờ thì con micro thành con UNO rồi.
Test thử phần addon UNO tự sinh code của MATLAB thì thấy OK.

jimmyli
10-01-2015, 10:18:29 AM
có thể nạp bootloader từ arduino vs arduino không thì mua con atmega8 chế thành mạch nạp hoặc dùng cổng lpt máy bàn nạp cũng được :D thiếu gì cách nạp, mua thêm 1 modul usb-rs232 để nạp firmware cho những ứng dụng k cần giao tiếp vs máy tính

Luyến
11-01-2015, 07:25:43 PM
em đang ham hố board arduino này lập trình C cho VDK để điều khiển robot u dog công nghiêp.

https://www.youtube.com/watch?v=jAbgPbywdHA

cuong
04-03-2015, 04:22:49 AM
bác CKD bảo mỗi ngày một ví dụ, làm em mừng hụt, mua một mớ linh kiện và board về mà seach chả ra arduino điều khiển ac servor, tìm được một bài về stepmoto mà chưa có gì để test cả. các bác cho hỏi arduino có điều khiển được acservor không? mò chỗ nào để đọc ạ?. chân thành cảm ơn các bác

Luyến
04-03-2015, 08:34:40 AM
bác vào trang chủ arduino.cc >> seach ac servo nó ra cả mớ. sao chưa biết dùng đã mua cả mớ về rồi lại trách người khác vậy??

CKD
04-03-2015, 09:05:29 AM
bác CKD bảo mỗi ngày một ví dụ, làm em mừng hụt, mua một mớ linh kiện và board về mà seach chả ra arduino điều khiển ac servor, tìm được một bài về stepmoto mà chưa có gì để test cả. các bác cho hỏi arduino có điều khiển được acservor không? mò chỗ nào để đọc ạ?. chân thành cảm ơn các bác

Xin lỗi bác ạ.
1. Kế hoạch là vậy nhưng hơi bận & con lười nó lớn nên chưa làm được ạ.
2. Cao thủ VXL trên diễn đàn mình đông quá, mà viết bài so sài, chém gió trước cao thủ thì kỳ quá.. nên ngại ạ.

CKD xin cố gắng thực hiện đúng như chủ đê ạ. Mà bác cũng chăm ghê, bài viết lúc 04h. Bác ở VN hay nước ngoài thế ;)

nhatson
04-03-2015, 09:49:50 AM
bác CKD bảo mỗi ngày một ví dụ, làm em mừng hụt, mua một mớ linh kiện và board về mà seach chả ra arduino điều khiển ac servor, tìm được một bài về stepmoto mà chưa có gì để test cả. các bác cho hỏi arduino có điều khiển được acservor không? mò chỗ nào để đọc ạ?. chân thành cảm ơn các bác

ý bác là motion control cho ac servo drive hay dùng uno làm ac servo drive?

b.r

CKD
04-03-2015, 02:35:28 PM
Cơ bản nếu xem ac servo như brushless motor + encoder + PID position thì có khã năng làm được. Có hiệu quả hay không thì khó nói trước vì tuỳ thuộc vào tiêu chí đánh giá.

Xét về giá có thể tham khảo: ac servo 2hnd có giá dao động trong khoảng 10-15k/w

cuong
06-03-2015, 08:03:04 PM
To bác luyến: hihi em nói vui thôi, ai cũng cơm áo gạo tiền mà. Em có seach mà nó ra rc servo không hà. Em dốt điện, và tiếng anh luôn mới đau chứ.
-to bác linh: em tính điều khiển thông qua driver.
-to bác CKD. Em ở Việt Nam. Tại tìm hoài hổng ra nên khuya rồi cũng post lên đây để đi ngủ. Cảm ơn bác và các bác khác khui cái chủ đề này cho em để em biết đến vdk. Hôm qua làm cho con step của bác nam và driver của bác luyến mua năm xưa chạy được làm mừng hết lớn.
Chân thành cảm ơn và tiếp tục hóng các chủ đề về arduino, đặc biệt là chủ đề về ac servo

Gamo
06-03-2015, 08:48:17 PM
CKD đẹp chai, có tín đồ kìa. Em đăng ký nhờ bác CKD chỉ cách dk AC Servo luôn nhe :x :x :x

CKD
06-03-2015, 10:28:49 PM
Hôm rồi có cụ nào quảng cáo đã điều khiển được ac servo rồi đó mà. Cụ nào làm được mà có tinh thần quảng bá thì dù là a rờ méo hay gì gì thì em cũng chuyển thể để dùng với arduino được. Mà nói trước, được là chạy được chứ speed & smooth thì không dám so à.

CKD
06-03-2015, 10:34:17 PM
Như vụ dc servo, chạy thì vô tư rồi. Nhưng speed chưa đạt nên chẵng dám khoe tiếp (đọc encoder max 20kHz). Lão elm chan dùng avr cũ, thạch anh 10MHz mà đọc được encoder tới 40kHz. Lại thấy nhiều bác khuyến khích chuyển qua a rờ méo nên đang phân vân.
Sãn phẩm chư hoàn thiện, chạy thì rùa, post lên sợ bị cười nên e ngại.

Gamo
06-03-2015, 10:35:45 PM
Hehe, hôm trước mới điều khiển nó theo 2 dạng: 6 steps & sine wave. 6 steps thì giống BLDC nhưng như cụ Linh nói thì ko ngon rồi nên bỏ qua. Còn sinewave thì giống vụ ông sửa cái máy tiện cho tui vậy, tạo ra 3 nguồn sine bằng PWM lệch pha nhau 120 độ là xong. Thật ra thì chỉ cần 2 nguồn là đủ, nguồn còn lại dùng tụ làm lệch pha. Nhưng mà chỉ mới làm tới mức đó thôi, có nghĩa là tần số phải đúng với hiệu điện thế & motor thì mới chạy được >.<

PS: hehe, post lên để có cái mà chọc chứ http://www.pic4ever.com/images/onion055.gif
Mà DC Servo cổ rồi, bác làm AC Servo đi :x :x :x
Thấy AC Servo mới toanh bán rẻ đầy đường mà ko có driver, còn nguyên bộ thì... alphastep cho nó rẻ >.<

CKD
06-03-2015, 10:47:07 PM
Cụ Gà tập trung lo điều khiển speed & torque cho con AC đồng bộ Ok là có thể phát triển thành servo mấy hồi.

Em thì còn lâu mới đu tới.. vì em sợ điện tử... chỉ chơi với 5/12/24V thôi.. lớn hơn nữa thì em chẵng dám đụng. Hời trước ráp amp cũng chỉ chơi DC 36V là hết.

Gamo
06-03-2015, 10:52:43 PM
Hehe, tau cũng rứa, trên 40v là bắt đầu rét rồi http://www.pic4ever.com/images/bb4.gif

Thôi đợi ông nào can đảm vậy...

CKD
06-03-2015, 11:00:31 PM
Mà cụ Gà.. cái lão elm-chan đó bảo có kỹ thuật đọc encoder với tốc độ x2 lần tần số quét là thế nào nhỉ.. trình tiếng anh gà quá, đọc cái http://elm-chan.org/works/smc/report_e.html của lão không hiểu hết ý được.
Làm cách nào đọc được encoder tới 52kHz.. trong khi chu kỳ tính PID đã mất 92us, chạy với thạch anh 10MHz

6410

Chơi DC servo dù biết là nó cũ, khã năng ứng dụng so với giá có thể mua được cũng không được khã thi cho lắm. Nhưng DC servo có cái lợi là không cần thuật toán điều khiển gì cả. Rất đơn giản, dễ tiếp cận.. muốn điều khiển được DC motor chỉ cần làm được mấy chuyện:
- Chiều dòng điện cấp cho motor ---> sẽ quyết định chiều quay của motor.
- Cường độ dòng điện (đương nhiên phải dính tới áp).. quyết định tốc độ và moment.
* mọi thông số phải <= định mức của motor.. nếu không muốn nó chạy xíu rồi xì khói.

Ngoài ra.. em tạm ngưng vì tạm thời đã hiểu sơ sơ thế nào là PID.. cũng như các tham số và tác động của nó.

CKD
06-03-2015, 11:18:16 PM
Ai bảo test như cái clip là tệ :)


https://www.youtube.com/watch?v=gjZXh4yjLG8

cuong
07-03-2015, 12:03:35 AM
- ặc em mới là "gà mờ" nè "hu hu". ngu điện tử, tự động, lập trình mà còn đu đeo, thôi theo step tiếp vậy, một loạt khái niệm mới thế em đu theo không nổi, trên máy mà em tính làm theo là cnc panel saw. cho nghề gỗ (đã có lần hỏi bác Linh qua điện thoại), bọn nó dùng plc để điều khiển ac servo hay sao ý, cơ mà trong tủ điện có tới hai cái biến tần, có khi nào biến tần điều khiển vị trí cho acservo không các bác?. plc thì em cũng ngu luôn nên mới chuyển qua arduino. vì lúc bác CKD giới thiệu thì em có hỏi cụ gg cụ cho một loạt ví dụ về step, nghĩ là bí quá thì dùng step, nên mới đu theo hihih. cho em hỏi ngu một tý : có con step nào có thông số tương đương ac servo 1,2kw không ạ

Gamo
07-03-2015, 08:00:33 AM
Về vụ đọc encoder, để hồi xem của elmchan ra sao. Tại vì dùng timer của ARM, chỉ có mấy dòng code setup timer & 1 dòng để read position của encoder mỗi khi cần dùng nên chẳng bao giờ để ý.

* 6 steps sequence để điều khiển BLDC/AC Servo:
| Step1 | Step2 | Step3 | Step4 | Step5 | Step6 |
----------------------------------------------------------
|Channel1 | 1 | 0 | 0 | 0 | 0 | 1 |
----------------------------------------------------------
|Channel1N | 0 | 0 | 1 | 1 | 0 | 0 |
----------------------------------------------------------
|Channel2 | 0 | 0 | 0 | 1 | 1 | 0 |
----------------------------------------------------------
|Channel2N | 1 | 1 | 0 | 0 | 0 | 0 |
----------------------------------------------------------
|Channel3 | 0 | 1 | 1 | 0 | 0 | 0 |
----------------------------------------------------------
|Channel3N | 0 | 0 | 0 | 0 | 1 | 1 |
----------------------------------------------------------

@cương: step hay hơn bác ợ. Cnc gỗ vẫn hay dùng step mà. Servo chỉ đc cái nhanh khi di chuyển nhưng việc cấu hình mất công lắm, chưa kể nếu bác làm ko chuẩn, ngồi giật tóc cả ngày cũng ko hiểu vì sao đường tròn bị méo đâu. Bác thích nhanh thì me mấy lão bán alphastep, vừa nhanh vừa dễ xài.

CKD
07-03-2015, 08:13:58 AM
Ý bác cuong là cưa CNC, mà là cưa lọng hay chỉ là cưa thẳng. Mấy tính năng này chắc để chỉnh thước, cữ... thì phải.

Thật ra trong điều khiển công nghiệp, có nhiều ứng dụng vị trí bằng VFD + motor + encoder lắm. Mọi thứ đều được kết nối với PLC để điều khiển.
Nhưng mà... mấy ứng dụng này thường chỉ để di chuyển chậm.. khi dừng phải dùng phanh từ. Điêù khiển vị trí khá chính xác. Các ứng dụng mình đã tiếp xúc thì độ chính xác đạt 0.1mm

nhatson
07-03-2015, 08:17:07 AM
Mà cụ Gà.. cái lão elm-chan đó bảo có kỹ thuật đọc encoder với tốc độ x2 lần tần số quét là thế nào nhỉ.. trình tiếng anh gà quá, đọc cái http://elm-chan.org/works/smc/report_e.html của lão không hiểu hết ý được.
Làm cách nào đọc được encoder tới 52kHz.. trong khi chu kỳ tính PID đã mất 92us, chạy với thạch anh 10MHz

6410

Chơi DC servo dù biết là nó cũ, khã năng ứng dụng so với giá có thể mua được cũng không được khã thi cho lắm. Nhưng DC servo có cái lợi là không cần thuật toán điều khiển gì cả. Rất đơn giản, dễ tiếp cận.. muốn điều khiển được DC motor chỉ cần làm được mấy chuyện:
- Chiều dòng điện cấp cho motor ---> sẽ quyết định chiều quay của motor.
- Cường độ dòng điện (đương nhiên phải dính tới áp).. quyết định tốc độ và moment.
* mọi thông số phải <= định mức của motor.. nếu không muốn nó chạy xíu rồi xì khói.

Ngoài ra.. em tạm ngưng vì tạm thời đã hiểu sơ sơ thế nào là PID.. cũng như các tham số và tác động của nó.


;----------------------------------------------------------;
; 83kHz Position capture and servo operation interrupt

background:
push T0L
pushw Z
in T0L, SREG ;Save flags

mov ZL, _PvEnc ;ZL[1:0] = previous A/B signal
in _PvEnc, PIND ;Sample A/B signal into _PvEnc[1:0]
swap _PvEnc ;/
ldi ZH, 1 ;Convert it to sequencial number.
sbrc _PvEnc, 1 ;
eor _PvEnc, ZH ;/
sub ZL, _PvEnc ;Decode motion
andi ZL, 3 ;/
breq enc_zr ;-> Not moved
cpi ZL, 3 ;
breq enc_rev ;-> -1 count
cpi ZL, 1 ;
breq enc_fwd ;-> +1 count
mov ZL, _PvDir ;-> Missing code recovery:
mov ZH, _PvDir ; double count for previous direction
lsl ZL ;
asr ZH ;/
rjmp enc_add
enc_rev:ldiw Z, -1
rjmp PC+3
enc_fwd:ldiw Z, 1
mov _PvDir, ZL
enc_add:addw _Pos, Z
adc _PosX, ZH
enc_zr:
dec _CtDiv ;Decrement 1/83 divider
rjne bgnd_exit ;If not overflow, exit interrupt routine.

em chưa check code, nhưng khả năng là encoder có 4 trạng thái cho 1 chu kì, ta có thể bắt xung ở trạng thái thứ 1 và thứ 4 = +4 > tương đương bắt được xung gấp 2 lần tần số quét

Gamo
07-03-2015, 08:25:25 AM
À, nhắc mới nhớ, xin hỏi các cao thủ luôn:

1. Mấy chú Tây làm bằng cách nào mà có thể cắt nhôm sắt hộp chính xác ta? Độ chính xác là bao nhiêu? Mình có thể DIY được ko?

2. Cắt dây & cắt tia nước thì ưu nhược điểm ra sao?

nhatson
07-03-2015, 09:10:46 AM
À, nhắc mới nhớ, xin hỏi các cao thủ luôn:

1. Mấy chú Tây làm bằng cách nào mà có thể cắt nhôm sắt hộp chính xác ta? Độ chính xác là bao nhiêu? Mình có thể DIY được ko?

2. Cắt dây & cắt tia nước thì ưu nhược điểm ra sao?

1.chính xác thì em nghĩ cắt bằng cưa vòng, ko thì cắt bằng đá rồi để lên máy phay lấy kích thước

2. cắt dây để cắt mí cái dạng có chiều sâu+ góc cạnh, cắt tia nươc có tác dụng lớn với inox dầy + đá hoa cuông, với inox mòng em e tia nước ko xử lí được

nhatson
07-03-2015, 09:12:05 AM
- ặc em mới là "gà mờ" nè "hu hu". ngu điện tử, tự động, lập trình mà còn đu đeo, thôi theo step tiếp vậy, một loạt khái niệm mới thế em đu theo không nổi, trên máy mà em tính làm theo là cnc panel saw. cho nghề gỗ (đã có lần hỏi bác Linh qua điện thoại), bọn nó dùng plc để điều khiển ac servo hay sao ý, cơ mà trong tủ điện có tới hai cái biến tần, có khi nào biến tần điều khiển vị trí cho acservo không các bác?. plc thì em cũng ngu luôn nên mới chuyển qua arduino. vì lúc bác CKD giới thiệu thì em có hỏi cụ gg cụ cho một loạt ví dụ về step, nghĩ là bí quá thì dùng step, nên mới đu theo hihih. cho em hỏi ngu một tý : có con step nào có thông số tương đương ac servo 1,2kw không ạ

nếu chỉ cần dkhien vị trí tới lui, ko yêu cầu cao về profile, aduino có thư viện stepper controller, dùng chung step/servo chạy step dir được hết ah

CKD
07-03-2015, 01:17:52 PM
@nhatson
Cái source của elm-chan thì có xem qua, nhưng là ASM, mà môn này thì gà quá nên vẫn không hiểu. Tất cả các phát triển từ nguồn elm-chan đều dùng ASM. Phải chi dùng C hay gì đó thì hay biết mấy.
Ngoài ra nó còn có cascade pid nữa. Nói chung không chuyên nên khó xơi hehe.

@cuong
Nếu ứng dụng của bạn chỉ dùng để chỉnh cữ, giữ phôi.. trong cưa tự động thì không quá khó.

Gamo
07-03-2015, 04:20:57 PM
1.chính xác thì em nghĩ cắt bằng cưa vòng, ko thì cắt bằng đá rồi để lên máy phay lấy kích thước

2. cắt dây để cắt mí cái dạng có chiều sâu+ góc cạnh, cắt tia nươc có tác dụng lớn với inox dầy + đá hoa cuông, với inox mòng em e tia nước ko xử lí được

Ủa, cắt bằng đá là sao hả bác?

Gamo
07-03-2015, 05:13:39 PM
Ủa, cắt dây có phải cắt EDM ko? Hay là cắt bằng dây kim cương?

nhatson
07-03-2015, 09:12:57 PM
Ủa, cắt dây có phải cắt EDM ko? Hay là cắt bằng dây kim cương?

cụ hỏi em cắt dây vs water jet giờ quay ra hỏi em cắt dây phải là EDM ko , nghi ngờ cụ qua :)

Gamo
07-03-2015, 09:40:56 PM
Hehe, tại đang tính đi cắt dây/water jet. Thế rồi lại té ngửa ra là có 2 pp cắt dây lận ;)

cuong
08-03-2015, 07:09:49 AM
cảm ơn bác linh và các CKD, em bị chứng ì tâm lý huhu,hihi. Làm cho step chạy rồi thì đấu ac driver vô chân tương tự như đấu vô step driver thôi đúng không các bác?hihihi.
em mới vừa lòi ra câu hỏi. trong đoạn chương trình này:

// Define a stepper and the pins it will use
AccelStepper stepper(AccelStepper::DRIVER, 13, 12); // 13-PUL,12-DIR

void setup()
{
stepper.setAcceleration(8000);
stepper.setCurrentPosition(0);
stepper.setMaxSpeed(1000);
}
long current_position;
void loop()
{
current_position = stepper.currentPosition();
if(current_position>=50000){
stepper.moveTo(0);
}
if(current_position<=0){
stepper.moveTo(-500);
}
stepper.run();
}

đoạn nào tính tỉ số xung và vòng quay vậy các bác, để cần biết mô tơ quay chính xác một vòng cần bao nhieu xung. ttrên step em cài :400 fulse/rev, full curent