1. Tuyển Mod quản lý diễn đàn. Các thành viên xem chi tiết tại đây

Robot...Và những thứ khác ..

Chủ đề trong 'Điện - Điện tử - Viễn thông' bởi gio_mua_dong, 02/10/2002.

  1. 1 người đang xem box này (Thành viên: 0, Khách: 1)
  1. anderson

    anderson Thành viên mới

    Tham gia ngày:
    28/07/2002
    Bài viết:
    60
    Đã được thích:
    0
    Ôi làm thì phải cố thôi
    cuộc thi năm nay tôi cũng tham gia đấy
  2. TuLa

    TuLa Thành viên quen thuộc

    Tham gia ngày:
    24/10/2002
    Bài viết:
    413
    Đã được thích:
    0
    Chúng ta đã hiểu lệch lạc hết về Driver rồi !
    Thực ra driver kô có gì là to tát cả, nó cũng kô phải là thiết bị cứng đâu.
    driver là một phần mềm, nó là một trình điều khiển thiết bị (thường do nhà sản xuất thiết bị viết - lập trình - ra nó). Thí dụ khi ta muốn sử dụng máy in thì ta sẽ phải thực hiện các ghép nối phần cứng với nhau, các ghép nối này chẳng có gì là khó hiểu cả - đó là các chân (các đg dây) của dây cable nối từ các chân giao diện từ máy in với cổng máy in (các chân của cổng máy in) hay nói nôm na là: nối các chân của cổng máy in (trên máy PC) với các chân của giao diện giao tiếp của máy in. Để thực hiện giao tiếp đc với nhau thì chúng cần có các nguyên tắc, các quy tắc giao tiếp (có thể tuân theo một chuẩn quốc tế nào đó hoặc do ta định ra miễn là chương trình cài đặt trên máy in và chương trình cài đặt trên máy tính cùng hiểu, biết quý tắc giao tiếp đó để tiếp nhận dứ liệu mà xứ lí hoặc đưa ra dữ liệu tuân theo đúng quy tắc mà ta đã ấn định). Với máy in thì, trên máy in đã có chương trình cài đặt sẵn và trình này vận hành theo các quy tắc giao tiếp tuân theo chuẩn quốc tế gọi là chuẩn "...Máy in". Ở đầu vào của máy PC là cổng LPT thì ở thể loại tự do (không theo chuẩn nào cả) do vậy: ta cần phải có một phần mềm hoặc một đoạn mã thực hiện các thao tác giao tiếp theo chuẩn "máy in", mục đích của đoạn mã này là đưa ra các Hàm (hay thủ tục) cho người sử dụng dễ dùng (có thể gọi các thủ tục này là các Hàm API - Aplication Programming Interface - có tên chuẩn và thực hiện chức năng như nhau để dễ cho người mặc dù có thể do nhiều người viết khác nhau, bằng các cách viết khác nhau...) - Trình này chính là DRIVER thiết bị . Như vậy, một driver chính là một phần mềm bao gồm một số các thủ tục thực hiện các chức năng giao tiếp của một thiết bị cụ thể, các thủ tục này làm nền (tài nguyên) cho các ứng dụng cần giao tiếp với thiết bị phần cứng; từ đó, khi lập trình giao tiếp với thiết bị cứng thì người lập trình không cần quan tâm đến quy tắc giao tiếp như thế nào nữa, mà chỉ dùng luôn các hàm của driver (có các tham số đầu vào, đầu ra tương ứng) để thực hiện mục đích công việc của mình --> hi hiii, qua tiện còn gì. Với hiểu biết đó về ý nghĩa của driver, với một sự hiểu biết về quy tắc giao tiếp các phần cứng với nhau, ta hoàn toàn có thể viết đc các driver thiết bị. Thí dụ, bạn lập trình điều khiển một MOTOR hay một cái gì đó, gửi các trị số ra cổng song song (cổng máy in chẳng hạn) khi ấy sẽ làm thay đổi trị số điện áp trên các chân tương ứng của cổng máy in => Ohh điều đó là: bạn đã viết đc một trình driver đơn giản rồi, :-D
    Mọi việc cần bắt đầu từ điều đơn giản nhất, nhưng điều đơn giản ấy là gì mới làm ta đau đầu - đó chính là các khái niệm, các ý niệm rất xúc tích từ những người đi trước có đc từ thực tiễn. Khi ta hiểu ra thì phát lên thành rằng "OOOHHHHHHHHHHH" nó quá đơn giản, nhưng đừng thấy thế mà ".... với người đi trc", chúng ta hãy thầm cảm ơn họ với lòng kính trọng nhất vì những điều quá đơn giản đó :-D
    //
    đc viết bởi Tula ngày 11/11/2002
    *.tus
  3. thuonguyen

    thuonguyen Thành viên quen thuộc

    Tham gia ngày:
    20/04/2001
    Bài viết:
    240
    Đã được thích:
    0
    Driver ở đây không chỉ là phần mềm để cài trên máy tính đâu . Các bạn nên hiểu rộng driver hơn một chút . Tôi xin nói với các bạn rõ thêm là trong thực tế có những cánh tay máy có thể nâng cả hàng trăm ký hàng , và để thực hiện những động tác đó nó phải có những cái MOTOR có công suất hàng trăm watts , thử hỏi bạn làm sao mà dùng một trong những cổng có sẵn của máy tính mà điều khiển MOTOR này được , do đó ở đây xuất hiện một bộ phận mạch điện tử , bộ phận này gọi là DRIVER (có thể hiểu là bộ lái) . Chức năng của nó là nhận tín hiệu có công suất nhỏ từ máy tính gửi ra , khuyếch đại lên cho phù hợp với công suất của MOTOR . Thực tế tất cả các máy in đều có motor và driver cho các motor đó , nó thường được thiết kế nằm chung trong máy in , nguồn ta cấp cho máy in chính là cấp một phần nguồn cho các driver để (lái) motor hoạt động . Nếu như driver của máy tính mà có thể điều khiển các motor thì máy in đâu cần phải cắm điện làm gì . Cái driver mà chúng ta quen gọi khi cài trong máy tính thực chất là phần mềm nhằm khai báo cho máy tính biết driver (mạch điện tử) sẽ hoạt động như thế nào .
    Tóm lại : DRIVER chúng ta quen gọi khi cài một thiết bị máy tính thực chất là phần mềm . DRIVER dùng để lái (driver) cái motor thực chất là phần cứng .
    Ví dụ : một ổ đĩa mềm (FD) luôn có 2 motor , 1 cho đĩa quay và 1 cho việc điều khiển đầu từ đi đúng track muốn đọc . 2 motor này được gắn lên 1 bảng mạch điện có nhiều linh kiện điện tử tạo thành 2 bộ driver (lái) riêng biệt , tất cả những đầu điều khiển các bộ driver này mới nối ra một socket có 34 chân dùng để gắn cable ổ đĩa mềm ... và ổ đĩa mềm hoạt động theo điều khiển của máy tính thông qua các bộ phận đã nêu trên .
    Một thông tin khác : trong forum này có bài viết về con Floppy Robot , chính là tác giả con Floppy Rotbot đã sử dụng các phần có sẵn của 1 FD để làm ra con RB đó .

    UchichchichU
  4. anderson

    anderson Thành viên mới

    Tham gia ngày:
    28/07/2002
    Bài viết:
    60
    Đã được thích:
    0
    driver nên phân biệt driver cứng và mềm
    nếu ai biết motơ bước thì cũng biết cái thiết bị cắm trên RS23 để điều khiển motơ đưọc gọi là driver
    nhưng trong phần mềm thì driver dúng là các thủ tục giao tiếp với thiết bị mà thôi
  5. thuonguyen

    thuonguyen Thành viên quen thuộc

    Tham gia ngày:
    20/04/2001
    Bài viết:
    240
    Đã được thích:
    0
    Vì bạn bảo là không hiểu gì hết nên tôi xin nói chi tiết một chút
    Thứ nhất : RB là gì ?
    Ví dụ : có vài quả trứng gà nằm trên mặt đất , bạn dùng tay nhặt quả trứng lên cho vào một cái rỗ được đặt bên cạnh , nhặt cho đến khi hết số trứng có trên mặt đất thế là xong . Bây giờ chúng ta cùng nhau chế tạo ra một cái máy có thể thay ta làm tất cả những công việc trên , cái máy đó có thể tự động làm tất cả thì nó là RB tự động , còn nếu phải có bàn tay con người điều khiển (thông qua bàn phím chẳng hạn ) thì đó là RB bán tự động .
    Vậy nếu có một cỗ máy thực hiện được một vài công việc nào đó một cách tự động hoặc bán tự động thì gọi là RB (thông thường là những công việc của con người) .
    Thứ hai : làm thế nào để RB hoạt động ?
    Phân tích ví dụ trên ( nhặt trứng ) chúng ta có những thao tác sau :
    1. Nâng lên hạ xuống ( để nhặt trứng lên (dưới đất) và bỏ trứng xuống (trong rỗ): đây là chuyển động thẳng .
    2.Chuyển qua lại ( nhặt trứng xong chuyển qua cái rỗ , bỏ trứng xong chuyển về vị trí chuẩn bị nhặt trứng khác) : cũng là chuyển động thẳng
    3. Cặp trứng và nhả trứng ( sao cho đừng vỡ lại là một vấn đề cực kỳ khó): thêm một chuyển động thẳng nữa
    Như vậy chúng ta thấy cần phải có một số thiết bị để thực hiện mấy cái chuyển động thẳng trên
    Có một vài phương án để thực hiện chuyển động thẳng như :
    1.piston và cylinder tức là dùng năng lượng khí nén hoặc chất lỏng
    2. dùng chuyển động quay chuyển thành chuyển động thẳng
    Như vậy để RB hoạt động chúng ta phải có những công cụ như trên . Ở phương án 1: nhược điểm thấy rõ là phải có thêm 1 nguồn năng lượng khác ngoài điện .Ở phương án 2 : thì có nhược điểm là nếu bạn sử dụng motor thông thường thì không thể được do đó ở đây xuất hiện khái niệm sử dụng motor bước (stepping motor)
    Thứ ba : Motor bước (stepping motor) là gì ?
    Một motor thông thường khi cung cấp nguồn cho nó thì nó cứ quay mãi cho đến khi ngắt ra khỏi nguồn nó còn quay theo quán tính khá lâu mới dừng .
    Một motor bước thì không phải như vậy , khi cung cấp nguồn ( tất nhiên phải thông qua Driver) thì motor đứng yên , không quay cho tới khi có lệnh điều khiển cho quay .
    Motor bước còn có thể đang quay thì ngừng lại hầu như ngay lập tức khi có lệnh ngừng quay .
    Motor bước còn có thể quay 1 vòng , 1/2 vòng , 1/4 vòng ,1/8 vòng ... và hiện nay bước nhỏ nhất mà một motor bước thực hiện được là quay 0.0003472 vòng tức 1/8 độ (360 độ = 1 vòng).
    Motor bước có thể quay cả hai chiều .
    Như vậy motor bước và driver sẽ giúp chúng ta thực hiện chính xác các động tác , bằng các chức năng là có thể vừa chạy vừa ngừng một cách chính xác .
    Thứ tư : Làm thế nào mà motor bước có thể đang đứng chuyển qua chạy , đang chạy lại thắng lại được ? ( Xin hẹn hôm khác sẽ trình bày )

    UchichchichU
    Được thuonguyen sửa chữa / chuyển vào 09:22 ngày 15/11/2002
  6. thuonguyen

    thuonguyen Thành viên quen thuộc

    Tham gia ngày:
    20/04/2001
    Bài viết:
    240
    Đã được thích:
    0

    Thứ tư : làm thế nào mà một motor bước có thể chạy rồi dừng , đang dừng lại chạy
    Trên hình là một sơ đồ motor bước đơn giản nhất .
    Giải thích các chi tiết :
    _ Rotor là một nam châm vĩnh cữu
    _ Stator là nam châm điện gồm có 3 cực A , B ,C
    Bây giờ ta cung cấp nguồn cho các cực của A,B,C sao cho :
    A : là S
    B : là N
    C : là N
    Lúc này cực N của rotor hút cực A ( S) trong khi cực N của rotor bị hai cực B và C đẩy , khoảng giữa hai cực B và C là khoảng có lực đẩy yếu nhất và như thế rotor đứng im như hình vẽ . Tức là cấp nguồn cho motor nhưng motor đứng , không quay .
    Bây giờ ta chuyển theo thứ tự như sau :
    A : vẫn là S
    B : vẫn là N
    C : thì chuyển từ N sang S
    Như vậy cực S của rotor chịu thêm lực hút của cực C nên có khuynh hướng lệch về hướng cực C , lập tức ta chuyển cực A thành N thì như thế ta thấy cực S rotor quay thẳng hướng với cực C và đứng lại .
    Kết quả ta có rotor đang đứng chuyển sang quay ngược chiều kim đồng hồ một góc 60 độ ( 1/6 vòng) rồi dừng lại .
    Căn cứ vào cách làm như thế bạn có thể quay theo hướng ngược lại ,và muốn quay như thế nào tuỳ thích .
    Như vậy để quay được mỗi lần 60 độ ( 1/6 vòng ) ta cần có một stator 3 cực , quay mỗi lần 30 độ (1/12 vòng) thì cần có 6 cực ...v.v và nếu quay 1/8 độ mỗi lần thì cần có bao nhiêu cực ? các bạn thử tính xem .
    Khi có quá nhiều cực thì một vấn đề khác phát sinh là làm sao để biết rotor đang ở vị trí nào khi mới cấp nguồn lần đầu . Đó chính là việc xuất hiện thêm một bộ phận có tên gọi là encoder được gắn kèm đồng trục với rotor để xác nhận thực trạng rotor đang ở đâu , và sau cùng có thêm chức năng dò sai để hiệu chỉnh cho chính xác sau mỗi lần quay vượt hơn 1 vòng (kiểu cổ điện , dùng cho những bộ phận không cần độ chính xác cao ) và sửa sai sau mỗi lần quay hơn 1độ (1 vòng =360 độ ) dể dùng cho những công việc có độ chính xác cao như kết nối mạch cho những con IC) . Encoder dò sai hoạt động như thế nào sẽ nói vào lúc khác .
    Tới đây chúng ta có thể thấy rõ chức năng của Driver cho motor :
    Driver sẽ làm nhiệm vụ là đảo chiều các cực của Stator sao cho đúng với yêu cầu của hướng quay và quay bao nhiêu vòng hoặc bao nhiêu phần trăm của 1 vòng .
    Hẹn lúc khác sẽ tiếp

    UchichchichU
    Được thuonguyen sửa chữa / chuyển vào 14:24 ngày 20/11/2002
  7. thuonguyen

    thuonguyen Thành viên quen thuộc

    Tham gia ngày:
    20/04/2001
    Bài viết:
    240
    Đã được thích:
    0
    Sau khi có bộ motor + driver được chuyển từ chuyển động quay thành chuyển động thẳng ( như trình bày trên).
    Giả sử driver có các ngõ điều khiển như sau :
    chân A : điều khiển cho phép chạy tới , hoặc chạy lùi
    chân B : cứ mỗi 1 xung dương vào thì motor sẽ quay 1 step ( 1 step tương ứng với bao nhiêu vòng hoặc bao nhiêu phần của 1 vòng tuỳ thuộc vào motor như trình bày trên)
    Giả sử chuyển đổi 1 step thì chạy được 0,05 mm
    Vậy nếu cần dịch chuyển 1mm chúng ta sẽ cần : 1/0.05 = 20 xung dương cấp vào chân B
    Muốn chạy tới hay lùi thì điều khiển chân A
    giả sử A có mức 1 thì chạy tới : mang dấu (+) có mức 0 thì chạy lùi : mang dấu (-)
    Bây giờ chúng ta lập một chương trình điều khiển như sau :
    Yêu cầu : nhập vào 1 số có đơn vị là mm sẽ được motor điều khiển chạy đúng chiều dài = số mm vừa nhập .
    _ số mm nhập vào sẽ được chuyển thành số xung sẽ cấp ra chân B
    _ nếu số nhập vào có dấu (+) thì chân A có mức 1 : chạy tới
    _ nếu số nhập vào có dấu (-) thì chân A có mức 0 : chạy lùi
    Như thế là chúng ta đã điều khiển được một chuyển động thẳng từ stepping motor , ghép nhiều chuyển động thẳng , nhiều bộ như thế chúng ta có thể tạo ra một con RB
    Thế nào là RB tự động ?
    Một RB tự động thì không cần chúng ta nhập thông số cho nó mà nó tự nhập thông số lấy :
    Giả sử RB có gắn 1 thiết bị đo khoảng cách thì đây chính là thiết bị nhập dữ liệu một cách tự động , thiết bị dò ra khoảng cách bao nhiêu mm thì chuyển thành xung đưa ra cấp cho motor quay theo yêu cầu . Nếu ta dùng camera thì phải có một công đoạn xử lý hình ảnh , thông dụng nhất là xử lý ành 2 chiều(2-D) và hiện đại nhất là xử lý ảnh 3 chiều (3-D) màu
    nhưng tóm lại dù xử lý ảnh kiểu gì cũng với mục đích là để xác định khoảng cách mà vận hành .
    Thế nào là RB bán tự động ?
    Rất đơn giản là các cần điều khiển chạy tới lui được phát ra các dãy xung cung cấp cho driver , khi thấy chạy tới đúng vị trí yêu cầu thì nhả tay điều khiển . Từng động tác một cho đến khi xong tất cả các thao tác .
    Chương trình điều khiển lúc đầu được đặt trong máy tính , khi hoàn chỉnh sẽ nạp vào một bộ vi xử lý riêng cho RB .
    Như vậy khái quát về các chi tiết tạo thành một RB là như thế , tất cả chỉ là cơ sở lý thuyết , mong là có thể giúp các bạn hiểu thêm một vài điều .

    UchichchichU
  8. thuonguyen

    thuonguyen Thành viên quen thuộc

    Tham gia ngày:
    20/04/2001
    Bài viết:
    240
    Đã được thích:
    0
    Hi all
    Tôi không biết bài viết của tôi có giúp ích gì không , bởi không thấy có bạn nào có ý kiến gì cả , nhưng không sao đã nói thì nói cho đủ mới thôi .
    Encoder dùng để làm gì ?
    Là một cái đĩa gắn đồng trục với rotor để xác nhận thực trạng rotor đang ở vị trí nào để điều khiển và cũng để trong 1 số trường hợp cần thiết dùnq để về vị trí ban đầu (Origin =ORG)
    Trong một số máy tự động khi bạn mở máy thì nó chẳng thể nào biết hiện tại các phần cơ của nó đang ở đâu nên trên bàn điều khiển máy có 1 chức năng tạm gọi là ORG , khi nhấn nút này các phần cơ được các stepping motor đưa về vị trí ORG và từ đây các vận hành mới bắt đầu . Công việc xác định đã về ORG là do endoder thông báo cho vi xử lý để dừng motor lại .
    Hoạt động của encoder dựa trên một cái đĩa có đục lỗ và dùng ánh sáng chiếu qua lỗ , phía bên kia đặt 1 bộ cảm nhận ánh sáng khi nhận được tín hiệu thì đó chính là ORG của motor .
    Sử dụng 1 dĩa tròn có 1 lỗ (hay 1 khe) là kiểu encoder cho những yêu cầu không cần độ chính xác cao .
    Nhữn motor hiện đại có độ chính xác cao thì dùng 1 đĩa phản quang có nhiều vạch phản quang xen kẻ không phản quang để xác định chính xác có thể theo từng độ .
    Thông thường một bộ stepping motor gắn truyền động cơ khí chuyển động thẳng luôn có các sensor để xác vị trí ORG của phần cơ khí và giới hạn 2 đầu của chuyển động thẳng ( gọi là (+) limited và ( -) limited) , như vậy khi nhấn nút ORG trên bàn điều khiển rotor sẽ quay bất kỳ cho đến khi gặp sensor giới hạn (+) hoặc (-) thì quay theo hướng ngược lại (-) hoặc (+) cho tới khi gặp sensor OGR cơ khí và ORG của encoder cùng có tín hiệu thì ngừng .
    Encoder còn có chức năng sửa sai sau một số lần quay nhất định , ở loại cổ điển chỉ có 1 khe trên đĩa thì sửa sai sau mỗi vòng quay . Còn kiểu hiện đại dùng đĩa phản quang thì có thể sửa sai sau mỗi độ quay của rotor .
    Do đó trong chương trình điều khiển có thể phải thêm chức năng cho nút ORG nhất là những RB tự động . Còn những RB bán tự động thì không cần thiết có nút ORG và cũng có thể cũng không cần dùng các chức năng của encoder .

    UchichchichU
  9. mtu

    mtu Thành viên mới

    Tham gia ngày:
    09/04/2002
    Bài viết:
    60
    Đã được thích:
    0
    Bài viết của thuongxuyen rất bổ ích, bây giờ mình muốn điều khiển một motor bằng PC, mình phải làm thế nào để tạo giao tiếp giữa motor và PC để đk nó?? có phải dùng thiet bị hay zắc chuyển đổi không/???
    http://bkhanoi.com
  10. thuonguyen

    thuonguyen Thành viên quen thuộc

    Tham gia ngày:
    20/04/2001
    Bài viết:
    240
    Đã được thích:
    0
    Nói về một chức năng cơ bản mà RB tự động cần phải có , đó là chức năng học việc (LEARNING), và công việc của chúng ta là phải làm là tạo 1chức năng dạy cho chúng (TEACHING) , tất cả 2 việc này đều dựa trên cơ sở lập chương trình cho RB , thực chất đây phải là 1 chức năng cơ bản của RB .
    Ví dụ chúng ta cần một cánh tay máy thực hiện động tác nhặt trứng như ví dụ trước đây , trước khi để cho nó tự làm mọi thứ ta sẽ mở chức năng Learning lên rồi đưa cánh tay máy đến những vị trí mà cánh tay máy sẽ đi qua , lúc này chương trình của RB sẽ lần lượt ghi nhận lại từng bước cho đến khi xong toàn bộ hành trình , kết thúc công việc teaching cho RB chúng ta sẽ cho RB thử thực hiện lại những thao tác vừa học nếu sai đâu thì chương trình phải cho phép sửa riêng phần đó , để cho dễ hình dung các bạn có thể lấy công việc tạo lập 1 macro trong Excel bằng chức năng Record Macro và sau đó nếu sai thì có thể dùng Visual Basic E***or cũng trong Excel ( Tool/Macro?/...)..

    UchichchichU

Chia sẻ trang này