View Full Version : Bộ sưu tập hình ảnh step drive
Gamo
20-12-2014, 08:41:29 PM
Nhiều cửa hàng online ship hàng thì họ bỏ miếng nhôm tản nhiệt ra để tiết kiệm tiền shipping.
Nếu bác ở SG thì ra Nhật Tảo, nó bán nhôm tản nhiệt đầy á, giá chừng 1k-2k/miếng nhỏ.
anhxco
20-12-2014, 09:02:44 PM
Hix, giá đó thì đắt hơn cả taotac bác à, giảm nữa đi cho em nhờ, em mua ủng hộ bác 1 con. Mà bác nói 5 con 500k nghĩa là không bán lẻ 1 con hoặc 1 con thì đắt hơn 100k à? Bên taotac họ cho mua lẻ 1 con đó
Hì, bác nên mua ở taotac hoặc nhờ bác itnoi mua cho, e mua để dùng chứ k bphải thương gia.
Thanks bác!
anhxco
20-12-2014, 09:03:19 PM
Nhiều cửa hàng online ship hàng thì họ bỏ miếng nhôm tản nhiệt ra để tiết kiệm tiền shipping.
Nếu bác ở SG thì ra Nhật Tảo, nó bán nhôm tản nhiệt đầy á, giá chừng 1k-2k/miếng nhỏ.
Miếng nhôm nhỏ xíu, nhẹ lắm bác ạ.
trongnam
20-12-2014, 09:12:21 PM
Nhiều cửa hàng online ship hàng thì họ bỏ miếng nhôm tản nhiệt ra để tiết kiệm tiền shipping.
Nếu bác ở SG thì ra Nhật Tảo, nó bán nhôm tản nhiệt đầy á, giá chừng 1k-2k/miếng nhỏ.
lại có vụ bỏ nhôm ra để tiết kiệm tiền ship nữa hả trời :confused:
trongnam
20-12-2014, 09:35:36 PM
@it noi quan trọng giá khi về đến tay em ở VN bao nhiêu bác? em mua 1-2 con
Gamo
20-12-2014, 09:35:50 PM
Hehe, hồi đó em mua mấy cái board to nên nó mesage, xin bỏ miếng nhôm để tiết kiệm tiền ấy mà. Miếng nhôm của em lần ấy to hơn, chắc cũng nặng hơn cái board, x10 cái lên thì cũng tiết kiệm nhiều đấy bác
trongnam
20-12-2014, 09:39:26 PM
Hehe, hồi đó em mua mấy cái board to nên nó mesage, xin bỏ miếng nhôm để tiết kiệm tiền ấy mà. Miếng nhôm của em lần ấy to hơn, chắc cũng nặng hơn cái board, x10 cái lên thì cũng tiết kiệm nhiều đấy bác
thế nó có bớt giá cho bác không?
CKD
20-12-2014, 10:57:02 PM
Thấy mục này chỉ nên bàn về sp, hoặc thêm nữa là trao đổi điểm mua hàng, tránh hình thức trao đổi si giá kiểu mua bán. Đề nghị AD thanh lọc để tránh loãng & lạc đề.
Vụ closed step em nghĩ trước hết làm được damping điện tử, filter (làm smoot tín hiệu) là đã cải thiện được độ tin cậy khi dùng step rồi.
Việc sửa sai.. em nghĩ mấy dòng như closed loop của leadshine thì cũng detect được đến 4000p/r thôi (vì nó dùng encoder chỉ 1000ppr, chạy x4 thì được nhiêu đó). Mà nhiêu đó thôi là thấy ngon rồi. Nó cho chạy vi bước nhiều hơn e nghĩ ko chính xác nữa.
Gamo
21-12-2014, 12:55:42 AM
Hehe, như tình hình thì hình như Alphastep nó dùng resolver nhưng nó cũng chỉ canh lệch 1.8 độ rồi mới sửa thui chứ cũng ko đo tới mức vi bước.
Em đang théc méc là step 2 pha có 4 sequence, giả sử do mistep, thay vì align với sequence 3 thì step mới align với sequence 1. Giả sử driver ko phát hiện, chạy tiếp bằng sequence 4 thì chuyện gì xảy ra? Step sẽ align với 4 ko? Hay là dừng luôn do ko thể nhảy từ 1 sang 4 được? hay là ko xác định được?
trongnam
21-12-2014, 06:05:54 AM
Thấy mục này chỉ nên bàn về sp, hoặc thêm nữa là trao đổi điểm mua hàng, tránh hình thức trao đổi si giá kiểu mua bán. Đề nghị AD thanh lọc để tránh loãng & lạc đề.
Vụ closed step em nghĩ trước hết làm được damping điện tử, filter (làm smoot tín hiệu) là đã cải thiện được độ tin cậy khi dùng step rồi.
Việc sửa sai.. em nghĩ mấy dòng như closed loop của leadshine thì cũng detect được đến 4000p/r thôi (vì nó dùng encoder chỉ 1000ppr, chạy x4 thì được nhiêu đó). Mà nhiêu đó thôi là thấy ngon rồi. Nó cho chạy vi bước nhiều hơn e nghĩ ko chính xác nữa.
trao đổi điểm mua hàng thì cũng cần phải thảo luận cả vấn đề giá cả nữa bác à, mong bác thông cảm :)
nhatson
21-12-2014, 06:29:32 AM
Hehe, như tình hình thì hình như Alphastep nó dùng resolver nhưng nó cũng chỉ canh lệch 1.8 độ rồi mới sửa thui chứ cũng ko đo tới mức vi bước.
Em đang théc méc là step 2 pha có 4 sequence, giả sử do mistep, thay vì align với sequence 3 thì step mới align với sequence 1. Giả sử driver ko phát hiện, chạy tiếp bằng sequence 4 thì chuyện gì xảy ra? Step sẽ align với 4 ko? Hay là dừng luôn do ko thể nhảy từ 1 sang 4 được? hay là ko xác định được?
báo cáo, em nghĩ là sẽ ko sai seqence được, vấn đề ở chỗ tốc đồ điều chỉnh
nếu điều chỉnh sai lệch fullstep, cần quét 10khz <> 3000rpm , tốc độ mà step khó đạt được > tốc độ quết nhanh hơn tốc độ đáp ứng của motor > ko sai lệch
to CKD, dùng encoder với step có chút thách thức, nhất là với encoder độ phân giải cao, lí do la step có độ rung, mà nếu encoder độ phân giải cao, cái rung của động cơ tạo ra jitter > bộ đếm encoder sẽ giao động khi motor quay mỗi bước
CKD
21-12-2014, 07:52:23 AM
@trongnam
Mình thấy bạn thuần là thoả thuận và trả giá. Nó cách biệt khá xa với nội dung chủ đề này. Những việc như thế mình nghĩ nên dùng chứ năng PM thì hay hơn.
Xin lỗi lai spam.
trongnam
21-12-2014, 08:45:30 AM
Ok, lần sau mình sẽ chú ý. Thanks.
nhatson
21-12-2014, 08:53:45 PM
bàng sáng ché em thấy có thể tham khảo cho step closed loop control
https://drive.google.com/viewerng/viewer?url=patentimages.storage.googleapis.com/pdfs/US5134349.pdf
https://drive.google.com/viewerng/viewer?url=patentimages.storage.googleapis.com/pdfs/US4710690.pdf
https://drive.google.com/viewerng/viewer?url=patentimages.storage.googleapis.com/pdfs/US4591774.pdf
https://drive.google.com/viewerng/viewer?url=patentimages.storage.googleapis.com/pdfs/US3532958.pdf
https://drive.google.com/viewerng/viewer?url=patentimages.storage.googleapis.com/pdfs/US3463985.pdf
https://drive.google.com/viewerng/viewer?url=patentimages.storage.googleapis.com/pdfs/US20130043822.pdf
https://drive.google.com/viewerng/viewer?url=patentimages.storage.googleapis.com/pdfs/US20070040529.pdf
https://drive.google.com/viewerng/viewer?url=patentimages.storage.googleapis.com/pdfs/US6140793.pdf
https://www.google.com/patents/CN201536338U?cl=en&dq=Closed+loop+stepper+motor+control&hl=en&sa=X&ei=rtOWVNLaEsK2uATimYDACQ&ved=0CCMQ6AEwATi0AQ
cụ gamo thử với step 2 phase + encoder dô phân giải thấp, chạy như BLDC 3 phase với hall đi ah, smooth lắm ah, dkhien torque rồi dkhien phase squency nửa là ngon :)
dưới 200rpm, em nghĩ step motor khó mất bước
trên 200rpm , chạy như BLDC là khỏi lo mất bước :)
Gamo
22-12-2014, 11:00:21 AM
Hix hix :)) để đọc mới được. Đủ để giải trí nguyên năm.
nhatson
29-12-2014, 07:08:23 AM
animation động cơ bước và động cơ BLDC chạy các kiểu
http://en.nanotec.com/support/tutorials/stepper-motor-and-bldc-motors-animation/
b.r
nhatson
03-01-2015, 10:32:32 AM
clip motor bước ăn dòng theo tải
https://www.youtube.com/watch?v=HM45VGTbIDo
CKD
03-01-2015, 10:50:19 AM
Không thấy emconder hay resolver đâu cả.. nên chắc nó feedback bằng dòng hồi tiếp từ các cuộn dây nhỉ.
Tăng dòng chủ động theo tải kiểu này thì phải sensor được độ trễ do tải ở mỗi bước thì phải.
Càng tìm hiểu thì càng thấy rất rất nhiều điều cần phải tìm hiểu thêm. Càng học thấy mình càng ngu hehe :D
ít nói
03-01-2015, 10:55:34 AM
clip motor bước ăn dòng theo tải
https://www.youtube.com/watch?v=HM45VGTbIDo
clip apha step ăn theo dòng tải
https://www.youtube.com/watch?v=JJH4DlteCYw
nhatson
03-01-2015, 11:03:04 AM
Không thấy emconder hay resolver đâu cả.. nên chắc nó feedback bằng dòng hồi tiếp từ các cuộn dây nhỉ.
Tăng dòng chủ động theo tải kiểu này thì phải sensor được độ trễ do tải ở mỗi bước thì phải.
Càng tìm hiểu thì càng thấy rất rất nhiều điều cần phải tìm hiểu thêm. Càng học thấy mình càng ngu hehe :D
chạy open loop như bthuong thôi cụ CKD ơi, các cụ sách vở cứ nghĩ là step chạy là dòng ko đổi ko ah :)
CKD
03-01-2015, 11:36:11 AM
Một phần sách vở thôi ạ.
Với các cuộn dây thì việc dòng điện (nhất là có dao động kiểu chopping hoặc thay đổi cường độ hoặc chiều dòng điện) bị ảnh hưởng bở góc lệch giữa startor & rotor ở mỗi step có thể lý giải được. Nhưng mà.. nếu có closed loop curent control thì nó tự bù chứ nhỉ. Trừ khi là PWM cứng mà không có feedback về dòng cho driver. Hoặc chạy full/haft thì tình trạng như trên dể hiểu hơn.
Vụ này chưa khảo sát nên hơi khó suy nghĩ tí hehe.
nhatson
03-01-2015, 11:39:02 AM
Một phần sách vở thôi ạ.
Với các cuộn dây thì việc dòng điện (nhất là có dao động kiểu chopping hoặc thay đổi cường độ hoặc chiều dòng điện) bị ảnh hưởng bở góc lệch giữa startor & rotor ở mỗi step có thể lý giải được. Nhưng mà.. nếu có closed loop curent control thì nó tự bù chứ nhỉ. Trừ khi là PWM cứng mà không có feedback về dòng cho driver. Hoặc chạy full/haft thì tình trạng như trên dể hiểu hơn.
Vụ này chưa khảo sát nên hơi khó suy nghĩ tí hehe.
báo cáo cụ CKD , trong clip là em ví dụ, step hoạt động bthuong dòng vẫn thay đổi theo tải , ko phải tĩnh thôi ah
Gamo
03-01-2015, 11:49:04 AM
Cụ CKD chắc đang nói vụ Back EMF
CKD
03-01-2015, 12:15:04 PM
Cụ CKD chắc đang nói vụ Back EMF
Nó đó bác... vụ này thì em gà rồi ạ.
Em đang có 2 mục tiêu mà chỉ được chọn có 1 vì cái bệnh viêm túi. Bác có cao kiến gì giúp em phát.
- Muốn đổi con lap mới.. vì con này đã theo em quá lâu.. giờ muốn đổi cho kịp thời đại, lên core con lap rồi thì mới core cotex gì gì cho mấy cái board.
- Muốn lụm con OSC để có cái mà vọc, rồi còn giao lưu chém gió thêm với mọi người.
Rất có khã năng là nếu khó nghĩ quá.. em sẽ bỏ luôn 2 mục tiêu này, chuyển qua mục tiêu khác.
Gamo
03-01-2015, 12:18:55 PM
Hế hế, có 1 dạo em tính đo back EMF để phát hiện mất bước thay vì dùng encoder nhưng sau đó đọc thấy chưa thằng nào làm được, chỉ mới dùng back emf để phát hiện motor bị kẹt thôi
CKD
03-01-2015, 12:26:55 PM
Ủa ủa.. em nhớ bác Nhất Sơn có đưa vài thông tin kèm clip.. step closed-loop bằng kỹ thuật back EMF thì phải.
nhatson
03-01-2015, 12:30:11 PM
Ủa ủa.. em nhớ bác Nhất Sơn có đưa vài thông tin kèm clip.. step closed-loop bằng kỹ thuật back EMF thì phải.
báo cáo cụ CKD, moi có stall detec bằng back EMF , chưa có closed loop bằng back-EMF :)
CKD
03-01-2015, 12:33:42 PM
Thấy cái này của một anh người Việt.. không biết thực hư thế nào nhỉ :D.
Nếu đúng là sản phẩm của người việt thì quá hay :D.
https://www.youtube.com/watch?v=dJTA_Sb1jpE
nhatson
03-01-2015, 12:40:13 PM
Thấy cái này của một anh người Việt.. không biết thực hư thế nào nhỉ :D.
Nếu đúng là sản phẩm của người việt thì quá hay :D.
https://www.youtube.com/watch?v=dJTA_Sb1jpE
báo cáo, đề tài nghiên cứu khi tác giả còn ở bên korea
http://2007.iccas.org/submission/paper/upload/An%20Open-loop%20Stepper%20Motor%20Driver%20Based%20on%20FPG A.pdf
http://ieeexplore.ieee.org/xpl/login.jsp?tp=&arnumber=4913212&url=http%3A%2F%2Fieeexplore.ieee.org%2Fxpls%2Fabs_ all.jsp%3Farnumber%3D4913212
https://www.linkedin.com/pub/le-ngoc-quy/2a/921/235
b.r
Gamo
03-01-2015, 10:12:23 PM
Bác Nhật Sơn làm đi bác, em đăng ký 3 bộ :))
nhatson
03-01-2015, 10:22:24 PM
Bác Nhật Sơn làm đi bác, em đăng ký 3 bộ :))
closed loop với em vẫn là thách thức, dùng FPGA còn thách thức lớn hơn nữa ah
Gamo
04-01-2015, 08:33:05 AM
Hehe, ủa, mà bác đoán làm sao cha Quys ấy làm step chạy nhanh thế?
nhatson
04-01-2015, 09:14:53 AM
Hehe, ủa, mà bác đoán làm sao cha Quys ấy làm step chạy nhanh thế?
báo cáo , 3000RPM ko tải thì ko vấn đề, vấn đề tại tốc độ đó moment sụt giảm > cũng ko khai thác được > ko cần phấn đấu tốc dộ 3000RPM với step đâu ah
Gamo
04-01-2015, 09:19:23 AM
Hehe, thank kiu sư phụ. Với lại hôm trước bác có nói về chạy step theo dạng brushless. Mình có tài liệu về nó ko bác? Khi chạy step theo kiểu brushless thì có ưu điểm & khuyết điểm gì?
nhatson
04-01-2015, 09:30:21 AM
Hehe, thank kiu sư phụ. Với lại hôm trước bác có nói về chạy step theo dạng brushless. Mình có tài liệu về nó ko bác? Khi chạy step theo kiểu brushless thì có ưu điểm & khuyết điểm gì?
khi chạy brushless step 2 phase tương đương BLDC/BLAC hoặc họ hàng gần hơn em nghĩ là động cơ direct drive
http://www.motion-designs.com/images/DTrends_Nov_2007.pdf
cụ dùng encoder để đếm, dễ nhất em nghĩ là 360p/r, dùng chính cái tín hiệu của encoder để đổi squence cho step motor > tương đương hạot động cua BLDC với hall sensor
lúc này speed sẽ quyết định bởi dòng diện/ độ rộng xung
CKD
04-01-2015, 10:30:57 AM
BLDC/BLAC 3p thì hồi trước chơi RC cũng có dùng nhiều. Cũng có ý định chế cháo. Loại này so với AC servo thì gần giống. Có điều số cực nhiều hơn. Mấy cái dùn trong rc phần lớn là sensorless (back emf). Còn mấy bộ điều khiển này, để lấy nó lái thử con ac servo motor xem sao.
Mà mấy con này nó điều khiển tốc độ bằng tần số chuyển squence & điện áp cấp, có dùng PWM ko thì không rỏ vì nó không có điện trở đo dòng. Còn điều khiển qua hồi tiếp emf thì chịu, chỉ biết là nó góp phần sensor chiều quay & tốc độ. Vụ này chưa rành nenw không phán.
Mấy con sensorless này tốc độ phản ứng ở tần số thấp kém. Có thử qua mây con có sensor, chạy khoẻ và đáp ứng rất nhanh.
CBNN
04-01-2015, 11:48:44 AM
có PWM ở mỗi pha đó huynh ơi . Khi tốc độ bị hãm do ngoại lực , thì duty cycle mở thêm để bù công suất .
sensor chạy ưu điểm nhiều hơn EMF vì nó cảm ứng chính xác vị trí cực từ của rotor kể khi khi đứng yên . Cái nữa khi đk có sensor thì cả 3 pha của motor đều ở mức tích cực khi chạy nên lực từ mạnh hơn . Còn sensorless thì lúc nào cũng có 1 pha nghỉ để lấy EMF . Khi đề pa thì sensorless chạy "mù" để lấy EMF nên đề pa chậm và hơi "lúng túng" (quay giật giật lúc đầu) .
CBNN
04-01-2015, 12:01:57 PM
Và cũng vì thế nên driver hay ESC BLDC có sensor thường có đảo chiều quay cho động cơ , chứ sensorless ít thấy (có nhưng hiếm khi được sử dụng vì nó chậm và không chính xác ).
Đơn cử trong môn RC thì xe điện sử dụng động cơ sensored Brushless mới đáp ứng được nhu cầu .
http://cdn.hobbyking.com/hobbyking/store/catalog/32125.jpg
http://cdn.hobbyking.com/hobbyking/store/catalog/52754-1.jpg
CKD
04-01-2015, 12:42:41 PM
Lạm bàn thêm về tí RC brushless ESC chút nhé bác chủ.. vì nó cũng thuộc nhóm BLDC/BLAC.
http://3.bp.blogspot.com/-hASxsFGn4QU/UjkSqYfqSiI/AAAAAAAAliA/MPfF4Xrc5WE/s1600/TowerPro25aEscSchematic.png
Như sơ đồ trên thì việc điều khiển PWM nếu có thề chỉ có thể điều khiển theo squence, hoặc một phần từ back EMF. Không chính xác thì không đo được dòng phản hồi trên coil.
Xem thêm http://dronespersonalizados.blogspot.com/2013/11/esc.html
Vấn đề RC brushless thì không còn mới.. do đó có rất nhiều thông tin liên quan có thể tìm từ google.com. Qua đó có thể dẽ dàng hiểu được nguyên lý vận hành của mấy chú BLDC. Nếu kết hợp với sensor, kết hợp PWM, mô phỏng sin, điều khiển chính xác tốc độ, chiều quay, gia tốc lớn thì việc biến nó thành servo thiết nghĩ không khó. Thêm mấy cái PID, PI, PD.. hay PIV gì đó là được :D.
Vụ này bác Gamo nghiên cứu từ từ nhé. Em thì mới theo học môn này.. nên em quay lại điều khiển RC servo cho lành hehe. Mấy cái vụ DC servo, BLDC servo, BLAC servo gì đó.. em xin khất.. chạy theo cho có tụ vậy thôi :)
Bổ xung thêm Code for atmage328 theo sơ đồ trên.
#include <avr/io.h>
#include <util/delay.h>
#include <stdio.h>
#define TPC_PIN_INPUT() DDRD &= ~_BV(6)
#define TPC_PIN_OUTPUT() DDRD |= _BV(6)
#define TPC_PIN_ON() PORTD |= _BV(6)
#define TPC_PIN_OFF() PORTD &= ~_BV(6)
#define TPC_PIN_IS_ON() bit_is_set(PIND, 6)
#define TPC_PIN_IS_OFF() bit_is_clear(PIND, 6)
#define TPC_delay_us(x) _delay_us(x)
#define TPC_READ_BIT_TIME_WIDTH 2437
#define TPC_READ_HALF_BIT_TIME_WIDTH (TPC_READ_BIT_TIME_WIDTH/2)
#define TPC_WRITE_BIT_TIME_WIDTH TPC_READ_BIT_TIME_WIDTH
#define TPC_WRITE_HALF_BIT_TIME_WIDTH (TPC_WRITE_BIT_TIME_WIDTH/2)
enum TPC_battType_t
{
TPC_battType_Li = 0,
TPC_battType_Ni = 1
};
enum TPC_cutoffType_t
{
TPC_cutoffType_softCut = 0,
TPC_cutoffType_cutoff = 1
};
enum TPC_cutoffVoltage_t
{
TPC_cutoffVoltage_low = 0,
TPC_cutoffVoltage_middle = 1,
TPC_cutoffVoltage_high = 2
};
enum TPC_startMode_t
{
TPC_startMode_normal = 0,
TPC_startMode_soft = 1,
TPC_startMode_verySoft = 2
};
enum TPC_timingMode_t
{
TPC_timingMode_low = 0,
TPC_timingMode_middle = 1,
TPC_timingMode_high = 2
};
enum TPC_lipoCells_t
{
TPC_lipoCells_autoDetect = 0,
TPC_lipoCells_2 = 1,
TPC_lipoCells_3 = 2,
TPC_lipoCells_4 = 3,
TPC_lipoCells_5 = 4,
TPC_lipoCells_6 = 5,
TPC_lipoCells_7 = 6,
TPC_lipoCells_8 = 7,
TPC_lipoCells_9 = 8,
TPC_lipoCells_10 = 9,
TPC_lipoCells_11 = 10,
TPC_lipoCells_12 = 11
};
typedef struct TPC_settings_t_
{
char brake;
enum TPC_battType_t battType;
enum TPC_cutoffType_t cutoffType;
enum TPC_cutoffVoltage_t cutoffVoltage;
enum TPC_startMode_t startMode;
enum TPC_timingMode_t timingMode;
enum TPC_lipoCells_t lipoCells;
char governorMode;
} TPC_settings_t;
// initializes the settings to default values
void TPC_loadDefault(TPC_settings_t* x)
{
x->brake = 0;
x->battType = TPC_battType_Li;
x->cutoffType = TPC_cutoffType_softCut;
x->cutoffVoltage = TPC_cutoffVoltage_middle;
x->startMode = TPC_startMode_normal;
x->timingMode = TPC_timingMode_low;
x->lipoCells = TPC_lipoCells_autoDetect;
x->governorMode = 0;
}
// configs the settings struct with 2 bytes (which you should get from the ESC, but you can also store it in your own EEPROM or something)
void TPC_word_to_struct(TPC_settings_t* x, unsigned short y)
{
// map the bits to the settings
x->brake = (y & (1 << 0)) == 0 ? 0 : 1;
x->battType = (y & (1 << 1)) == 0 ? TPC_battType_Li : TPC_battType_Ni;
x->cutoffType = (y & (1 << 2)) == 0 ? TPC_cutoffType_softCut : TPC_cutoffType_cutoff;
x->cutoffVoltage = ((y & (0x03 << 3)) >> 3);
x->startMode = ((y & (0x03 << 5)) >> 5);
x->timingMode = ((y & (0x03 << 8)) >> 8);
x->lipoCells = ((y & (0x0F << 10)) >> 10);
x->governorMode = (y & (1 << 7)) == 0 ? 0 : 1;
}
// translates the settings struct into 2 bytes (which you can send to the ESC, or store in your own EEPROM or something)
unsigned short TPC_struct_to_word(TPC_settings_t* x)
{
return 0 |
((x->brake ? 1 : 0) << 0) |
((x->battType ? 1 : 0) << 1) |
((x->cutoffType ? 1 : 0) << 2) |
((x->cutoffVoltage & 0x03) << 3) |
((x->startMode & 0x03) << 5) |
((x->timingMode & 0x03) << 8) |
((x->lipoCells & 0x0F) << 10) |
((x->governorMode ? 1 : 0) << 7);
}
// reads a byte from a psuedo 10-bit UART
unsigned char TPC_ser_read()
{
unsigned char i, x = 0;
TPC_PIN_ON(); // input
TPC_PIN_INPUT();
while (TPC_PIN_IS_OFF()); // wait for powerup if not already
while (TPC_PIN_IS_ON()); // wait until start of frame
while (TPC_PIN_IS_OFF()); // this period indicates start of frame
while (TPC_PIN_IS_ON()); // the first bit always seems to be 1
TPC_delay_us(TPC_READ_BIT_TIME_WIDTH + TPC_READ_HALF_BIT_TIME_WIDTH); // skip
// read the 8 bits LSB first
for (i = 0; i < 8; i++)
{
x |= (TPC_PIN_IS_ON() ? 1 : 0) << i;
TPC_delay_us(TPC_READ_BIT_TIME_WIDTH);
}
return x;
}
// writes a byte to a psuedo 10-bit UART
void TPC_ser_write(unsigned char x)
{
TPC_PIN_ON(); // make sure
TPC_PIN_OUTPUT();
TPC_delay_us(TPC_WRITE_BIT_TIME_WIDTH);
TPC_PIN_OFF(); // signal start
TPC_delay_us(TPC_WRITE_BIT_TIME_WIDTH);
TPC_PIN_ON(); // first bit always 1
TPC_delay_us(TPC_WRITE_BIT_TIME_WIDTH);
TPC_PIN_OFF(); // 2nd bit always 0
TPC_delay_us(TPC_WRITE_BIT_TIME_WIDTH);
// send the byte LSB first
char i;
for (i = 0; i < 8; i++)
{
if ((x & (1 << i)) == 0)
{
TPC_PIN_OFF();
}
else
{
TPC_PIN_ON();
}
TPC_delay_us(TPC_WRITE_BIT_TIME_WIDTH);
}
TPC_PIN_ON(); // leave as input
TPC_PIN_INPUT();
}
// must be sent after receiving configuration from ESC upon initialization
void TPC_send_init_ack()
{
TPC_PIN_ON();
TPC_PIN_OUTPUT();
TPC_delay_us(TPC_WRITE_BIT_TIME_WIDTH);
// send pulses
char i;
for (i = 0; i < 6; i++)
{
TPC_PIN_OFF();
TPC_delay_us(TPC_WRITE_BIT_TIME_WIDTH);
TPC_PIN_ON();
TPC_delay_us(TPC_WRITE_BIT_TIME_WIDTH);
}
TPC_PIN_INPUT(); // leave clean
}
// receive the ack from ESC after writing config to ESC
void TPC_wait_for_ack()
{
TPC_ser_read();
}
// receive current config from ESC
void TPC_read_init(TPC_settings_t* x)
{
// read in 2 bytes
unsigned short y;
y = TPC_ser_read();
y |= TPC_ser_read() << 8;
TPC_word_to_struct(x, y);
TPC_delay_us(TPC_READ_BIT_TIME_WIDTH); // a small delay
TPC_delay_us(TPC_READ_BIT_TIME_WIDTH); // a small delay
TPC_delay_us(TPC_READ_BIT_TIME_WIDTH); // a small delay
TPC_delay_us(TPC_READ_BIT_TIME_WIDTH); // a small delay
TPC_send_init_ack(); // must be sent after receiving configuration from ESC upon initialization
}
// sends configuration to ESC
void TPC_send_config(TPC_settings_t* x)
{
unsigned short y = TPC_struct_to_word(x);
// start writing the config, LSB first
TPC_ser_write(y & 0xFF);
TPC_ser_write((y >> 8) & 0xFF);
// just a small note, these two bytes match the received config during initialization
// the settings are sent in this format
TPC_ser_write((y & (0x01 << 0)) >> 0);
TPC_ser_write((y & (0x01 << 1)) >> 1);
TPC_ser_write((y & (0x01 << 2)) >> 2);
TPC_ser_write((y & (0x03 << 3)) >> 3);
TPC_ser_write((y & (0x03 << 5)) >> 5);
TPC_ser_write((y & (0x03 << 8)) >> 8);
TPC_ser_write((y & (0x01 << 7)) >> 7);
// this is where the string of notes would be, but I don't have that implemented, so these two are just null
TPC_ser_write(0);
TPC_ser_write(0);
TPC_ser_write(11); // this is actually a byte count
TPC_wait_for_ack(); // do not unpower ESCs until the ack has been received, since it's writing to EEPROM during this time
}
static int ser_tx(char c, FILE* f)
{
loop_until_bit_is_set(UCSR0A, UDRE0);
UDR0 = c;
return 0;
}
static FILE mystdout = FDEV_SETUP_STREAM(ser_tx, NULL, _FDEV_SETUP_WRITE);
int main()
{
// setup for 57600 baud
UBRR0H = 0;
UBRR0L = 12;
UCSR0B = _BV(TXEN0) | _BV(RXEN0); // start serial port
stdout = &mystdout; // setup stream
DDRD |= _BV(4); // LED pin output
TPC_PIN_ON();
TPC_PIN_INPUT();
printf("\r\nTesting Begin\r\n");
// at this point, plug in the ESC to the battery
static volatile TPC_settings_t mySettings;
PORTD |= _BV(4); // LED on
TPC_read_init(&mySettings);
PORTD &= ~_BV(4); // LED off
unsigned short x = TPC_struct_to_word(&mySettings);
printf("Read from ESC: 0x%x\r\n", x);
// here we change all the settings
mySettings.brake = mySettings.brake ? 0 : 1;
mySettings.battType = mySettings.battType ? 0 : 1;
mySettings.cutoffType = mySettings.cutoffType ? 0 : 1;
mySettings.cutoffVoltage = (mySettings.cutoffVoltage + 1) % 3;
mySettings.startMode = (mySettings.startMode + 1) % 3;
mySettings.timingMode = (mySettings.timingMode + 1) % 3;
mySettings.lipoCells = (mySettings.lipoCells + 1) % (TPC_lipoCells_12 + 1);
mySettings.governorMode = mySettings.governorMode ? 0 : 1;
x = TPC_struct_to_word(&mySettings);
printf("Sending to ESC: 0x%x\r\n", x);
// and send it back
_delay_ms(1000);
PORTD |= _BV(4); // LED on
TPC_send_config(&mySettings);
PORTD &= ~_BV(4); // LED off
printf("Test Complete\r\n");
// now the ESC must be unpowered
// then reset the system
// to confirm settings
while (1);
return 0;
}
CKD
04-01-2015, 01:00:48 PM
http://robotics.stackexchange.com/questions/261/what-do-the-commutation-waveforms-look-like-for-a-brushless-motor
http://www.edn.com/design/sensors/4407580/Brushless-DC-Motors-Part-II--Control-Principles
http://www.mpoweruk.com/images/BLDCControl.gif
http://www.eetimes.com/document.asp?doc_id=1278317
http://m.eet.com/media/1111369/brushfig1.gif
Gamo
04-01-2015, 01:44:41 PM
Mấy cao thủ BLDC tung chưởng tá lả, em theo mù mắt rồi :cool:
Đang tính chuyển qua chơi RC đây... có điều chơi RC kiếm được tiền ko ta?
CBNN
04-01-2015, 01:58:01 PM
Mấy cao thủ BLDC tung chưởng tá lả, em theo mù mắt rồi :cool:
Đang tính chuyển qua chơi RC đây... có điều chơi RC kiếm được tiền ko ta?
không có gì là không thể bác ui . Nhiều hay ít thôi . Bác CKD hồi xưa chơi RC cũng kiếm được coffe với coke đó!:p
CKD
04-01-2015, 02:01:39 PM
Mấy cao thủ BLDC tung chưởng tá lả, em theo mù mắt rồi :cool:
Đang tính chuyển qua chơi RC đây... có điều chơi RC kiếm được tiền ko ta?
không có gì là không thể bác ui . Nhiều hay ít thôi . Bác CKD hồi xưa chơi RC cũng kiếm được coffe với coke đó!:p
Gì mà ít vậy, kiếm được tiền đủ chơi RC luôn đóa... :cool:
Chí ít thì báo cáo ở nhà là vậy
Mấy cái motor brushless trong RC là hạng ruồi bác ơi. Hàng dùng trong công nghiệp khó xơi hơn nhiều. Nếu không thì thị trường đã đầy BLDC giá rẻ rồi.
nhatson
04-01-2015, 03:47:48 PM
một sản phẩm dến từ thuỵ điển, Brushless servo motor+ drive , với motor là motor của đồ chơi RC, mấy chú này có thể chạy 400% trong thời gian ngắn
http://simplexmotion.com/wp-content/uploads/2012/01/SimplexMotionOpenConcept01b.jpg
http://www.jbcnc.se/images/simplexmotion/SimplexMotion100A_USB02a_inside1_croped.jpg
http://simplexmotion.com/wp-content/uploads/2012/01/SMHub_SM100A_Tests01a.jpg
http://simplexmotion.com/wp-content/uploads/2012/01/SimplexMotion100A_02b_ExplodedTransparent_Render01 a.jpg
Gamo
04-01-2015, 04:18:15 PM
Gì mà ít vậy, kiếm được tiền đủ chơi RC luôn đóa... :cool:
Chí ít thì báo cáo ở nhà là vậy
Mấy cái motor brushless trong RC là hạng ruồi bác ơi. Hàng dùng trong công nghiệp khó xơi hơn nhiều. Nếu không thì thị trường đã đầy BLDC giá rẻ rồi.
Ủa, kiếm tiền bằng cách nào hả bác? Đem RC đi bắn ruồi hả?
CKD
05-01-2015, 10:12:46 AM
Thêm một số thông tin mà em tìm được về BLDC servo
5551
http://www.students.tut.fi/~kontkant/servodrive.php.html
http://openservodrive.com/
http://granitedevices.com/
nhatson
05-01-2015, 05:57:22 PM
http://i1232.photobucket.com/albums/ff370/nhatsonelec/DSC01770.jpg
dự án chìm xuồng, nhái gecko 201, em định khởi động lại, có 2 câu hỏi nhờ các cụ comment
1. Vi bước các cụ hay dùng
2. dòng/áp motor các cụ hay dùng
Nam CNC
05-01-2015, 06:43:26 PM
vi bước 1/10 ( 2000 xung cho 1 vòng )
áp 24-48VDC , dòng em chỉ thích từ 3A trở lại mà với áp thấp thì bác cứ đưa drive đúng Gecko 201 là 7A luôn cho xong.
nhatson
05-01-2015, 06:52:29 PM
vi bước 1/10 ( 2000 xung cho 1 vòng )
áp 24-48VDC , dòng em chỉ thích từ 3A trở lại mà với áp thấp thì bác cứ đưa drive đúng Gecko 201 là 7A luôn cho xong.
thanks anh Nam
7A 80V > giá thành cao + cần tuân thủ nghiem ngặt hdsd ko thì hơi phiền khâu bảo hành ah
rác thải công nghiệp gia dình nhà gecko, trước em có tấm hình thùng rác bự như cái giỏ sắt hay thấy bên bải dương bá trạc cơ
http://farm3.static.flickr.com/2358/2212773329_40a146066a.jpg?v=0
Nam CNC
06-01-2015, 08:34:24 AM
vậy chú Linh chơi đúng như con G250 đi , 24-48 V , 3.5A max.... con đó hơi tuyệt vời , mà mấy anh em diy thì chỉ cần cỡ này là đủ, và ứng dụng thực tế cũng chỉ cần thế này thôi , do anh em khoái đồ to , lắp router lớn nên mấy em 86 mới cần.
Độ phân giải em thấy cần 2000 xung cho 1 vòng là quá đủ, không cần hơn , nếu trục A thì qua hộp số thì độ phân giải tăng lên theo tỉ lệ rồi.
Powered by vBulletin® Version 4.2.3 Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.