Làm cách nào để tích hợp điện thoại thông minh với dự án robot của tôi? [đóng cửa]


24

Điện thoại thông minh ngày nay thường đi kèm với một con quay hồi chuyển, gia tốc kế, la bàn, máy ảnh và cảm biến GPS tất cả trên máy bay. Họ cũng thường có kết nối internet với Wifi và mạng dữ liệu di động. Tôi đã thấy nhiều trường hợp sử dụng điện thoại làm điều khiển từ xa cho robot, nhưng đối với tôi, có vẻ như chính điện thoại là một nền tảng cảm biến và tính toán nhẹ hoàn hảo cho một robot tự trị.

Trở ngại chính mà tôi thấy là giao thoa với các thiết bị truyền động. Chẳng hạn, có thể điều khiển động cơ để điều khiển ngay cả một robot hàng đầu, hoặc điều khiển động cơ servo. Kết nối và giao tiếp với một vi điều khiển cũng có thể là một trở ngại.

Là một người có sở thích robot, tôi muốn biết làm thế nào tôi có thể vượt qua những trở ngại này và những trở ngại khác để có thể khai thác sức mạnh của điện thoại thông minh với các dự án robot của tôi.


Chỉ cần thêm tùy chọn iOS, hãy xem SESO iPhone dưới dạng bộ điều khiển robot
Greenonline

Câu trả lời:


19

Các Android Phụ kiện Development Kit (ADK) nên làm tất cả mọi thứ bạn cần.

QUẢNG CÁO

Đây là một bo mạch Arduino được thiết kế đặc biệt để tương tác với Android. Bạn có thể kết nối cả hai qua Bluetooth hoặc USB (hoặc WiFi / Ethernet, tôi nghĩ vậy).

Vì toàn bộ kiến ​​trúc được mở, bạn có thể sử dụng từng phần cho những gì tốt nhất. Bạn viết mã Android để lấy dữ liệu từ các cảm biến tích hợp của điện thoại và điều khiển màn hình. Và bạn viết mã Arduino để điều khiển bộ truyền động, servo và các cảm biến khác mà điện thoại không đến. Mã để liên lạc giữa hai người được cung cấp nguồn mở thông qua Google.

Từ Blog Arduino :

Bộ công cụ phát triển phụ kiện mở Android (ADK) cung cấp triển khai phụ kiện USB Android dựa trên nền tảng tạo mẫu điện tử nguồn mở Arduino, các tệp thiết kế phần cứng của phụ kiện, mã thực hiện phần sụn của phụ kiện và ứng dụng Android tương tác với phụ kiện. Các tập tin và mã thiết kế phần cứng được chứa trong gói tải xuống ADK.

Hầu hết các ví dụ được thiết kế xung quanh bằng cách sử dụng điện thoại làm giao diện đồ họa cho một số loại phụ kiện phần cứng như đồng hồ. Nhưng không có lý do gì bạn không thể truy cập vào các cảm biến của điện thoại và truyền dữ liệu qua lại.

Adaf Berry thậm chí còn đề cập đến việc sử dụng nó để chế tạo robot trên trang của cửa hàng của họ cho ADK:

Theo dõi nhanh sự phát triển phần cứng điện thoại Android của bạn hoặc chỉ thiết kế robot điện thoại di động với Arduino ADK! Arduino ADK là một bảng vi điều khiển dựa trên ATmega2560 (bảng dữ liệu) mạnh mẽ. Nó có giao diện máy chủ USB để kết nối với điện thoại dựa trên Android và bộ chuyển đổi tăng cường cung cấp năng lượng để sạc điện thoại từ nguồn DC trong khi cắm vào ADK

(nhấn mạnh của tôi)


11

Một tùy chọn khác là bảng IOIO-OTG :

Bảng IOIO-OTG

Các mô tả sản phẩm Sparkfun mô tả chức năng của nó:

Nó có một vi điều khiển PIC hoạt động như một cây cầu kết nối một ứng dụng trên PC hoặc thiết bị Android của bạn với các thiết bị ngoại vi cấp thấp như GPIO, PWM, ADC, I2C, SPI và UART. Thư viện cấp ứng dụng giúp bạn viết mã điều khiển cho các thiết bị ngoại vi cấp thấp này giống như cách bạn viết bất kỳ ứng dụng Java nào khác!

Ban này nên làm mọi thứ bạn muốn và thậm chí nó còn có một hướng dẫn tốt để giúp bạn bắt đầu.


6

Vấn đề chính mà tôi thấy nó không thực sự gây nhiễu với các bộ truyền động-- nếu bạn có một cách tốt để truyền tín hiệu không dây kỹ thuật số (thậm chí tốt hơn sẽ là tín hiệu tương tự hoặc kênh đủ tốt để thực hiện tín hiệu PWM), bạn có thể chỉ cần giao tiếp với một chip điều khiển động cơ (ví dụ L293D) và hoạt động tốt. Đối với động cơ servo, bạn cần thời gian đáp ứng tốt để có thể xử lý các xung. Nếu bạn có một kênh có khả năng PWM, điều này không khó vì kênh này có tốc độ truyền cao. Nếu bạn có một kênh chậm, các servo có thể không thực hiện được do bạn yêu cầu thời gian xung chính xác.

Tùy chọn đầu tiên tôi thấy (mặc dù nó khá cồng kềnh) là lấy Raspberry Pi, kết nối nó qua ethernet với bộ định tuyến không dây và kết nối điện thoại với cùng một mạng không dây. Bây giờ chỉ cần viết một ứng dụng cơ bản cho điện thoại của bạn để gửi yêu cầu đến Pi dựa trên đầu vào và viết một máy chủ khác như ứng dụng cho Pi xử lý các yêu cầu này. Có thể cồng kềnh và hơi cứng, nhưng nó khá mở rộng, IMO. Bạn cũng có thể đặt bộ định tuyến bên ngoài và dán cái này vào Pi (hoặc sử dụng điểm phát sóng và loại bỏ hoàn toàn bộ định tuyến).

Một tùy chọn khác là sử dụng bộ điều khiển bluetooth giống như bộ điều khiển được hiển thị ở đây . Tôi chưa từng sử dụng cái này trước đây, nhưng có vẻ như bạn vẫn sẽ cần một bộ vi điều khiển để xử lý việc này. Tôi đoán bạn có thể kết nối trực tiếp các chân RX / TX của nó với TX / RX trên một arduino, mặc dù tôi không chắc về điều này.

Nếu bạn đã sử dụng XBee / ZigBee trước đây, bạn có thể muốn dùng thử bluetooth bluetooth .

Tùy chọn cuối cùng là sử dụng cổng USB của điện thoại với thiết lập điều khiển không dây thông thường (XBee / bất cứ thứ gì) - nhưng điều này sẽ yêu cầu một trình ghi trình điều khiển và tất cả.


5

Vâng, việc thiếu chân GPIO trên điện thoại thông minh là một điều đáng xấu hổ. Nếu bạn đã có ROS chạy trên robot, bạn có thể sử dụng ứng dụng này trên điện thoại Android để có quyền truy cập vào bộ cảm biến trên điện thoại.


4

Nhiều thiết bị Android gần đây, chẳng hạn như Nexus 7, hỗ trợ USB On The Go (OTG), một cách thú vị để nói rằng 'Chế độ lưu trữ USB' được hỗ trợ. Trong những trường hợp này, với cáp phù hợp có thể có giá dưới 1 đô la, mọi thiết bị USB tương thích đều có thể được sử dụng. Bạn không cần một phiên bản đặc biệt của Arduino có phần cứng cho chế độ Máy chủ lưu trữ USB.

Tôi đã thử nghiệm điều này đủ để biết rằng một Arduino 'bình thường' như Leonardo hay Teensy 2 xuất hiện trên điện thoại Android dưới dạng thiết bị TTY (ví dụ: cổng nối tiếp) khi được kết nối với cáp OTG.

Bài viết này đi sâu vào cách sử dụng API máy chủ USB của Android để giao tiếp với Arduino từ ứng dụng Android. Nó yêu cầu Android 3.1+ và không yêu cầu bạn phải root thiết bị.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.