Mục lục:

Nối tiếp Android G1 tới Robot Arduino: 8 bước
Nối tiếp Android G1 tới Robot Arduino: 8 bước

Video: Nối tiếp Android G1 tới Robot Arduino: 8 bước

Video: Nối tiếp Android G1 tới Robot Arduino: 8 bước
Video: DIY #18 | Làm ROBOT Bluetooth điều khiển qua Smartphone - Bằng ARDUINO R3 2024, Tháng Chín
Anonim
Nối tiếp Android G1 tới Robot Arduino
Nối tiếp Android G1 tới Robot Arduino
Nối tiếp Android G1 tới Robot Arduino
Nối tiếp Android G1 tới Robot Arduino
Nối tiếp Android G1 tới Robot Arduino
Nối tiếp Android G1 tới Robot Arduino

Tìm hiểu cách điện thoại di động Android của bạn có thể điều khiển rô bốt bằng bảng Arduino. Điện thoại nhận lệnh qua telnet từ điện thoại khác hoặc PC, vì vậy bạn có thể điều khiển rô bốt từ xa. Dự án này sẽ không sửa đổi G1 theo cách khác để bạn có thể tiếp tục sử dụng nó như một chiếc điện thoại bình thường sau khi tháo dỡ nó. Bằng cách sử dụng các linh kiện điện tử rẻ tiền như bảng Arduino, bạn có thể ghép nối chúng với điện thoại 400 đô la của mình để tạo thành một con rô bốt tuyệt vời. Sẽ tốn hàng trăm đô la để thêm GPS, màn hình LCD, cảm biến chuyển động, wi-fi, kết nối di động, loa và hơn thế nữa vào một bot sở thích, nhưng điện thoại của bạn đã có những thứ này! Cùng với nhau, bảng Android G1 và Arduino cho phép bạn sử dụng các thiết bị điện tử rẻ tiền như các servo và cảm biến đơn giản, để tạo ra các thiết bị mạnh mẽ như rô bốt, dịch chuyển từ xa hoặc đồ chơi vui nhộn cho trẻ em. Thông tin thêm tại Cellbots.com. Lưu ý: Dự án này hiện yêu cầu Android G1 có quyền truy cập root để sử dụng đầu ra nối tiếp từ điện thoại tới rô bốt Arduino. Bạn có thể thêm mô-đun BlueTooth 20 đô la vào bảng Arduino của mình để điện thoại kết nối với nó qua BlueTooth nối tiếp nếu bạn muốn sử dụng phần mềm Android thương mại. Đặc biệt cảm ơn: Chúng tôi có Hacker Dojo ở Mountain View, CA để cảm ơn vì đã liên hệ với chúng tôi, giúp giải quyết một số vấn đề phức tạp thông qua danh sách gửi thư gồm các thành viên tuyệt vời của họ và có chip 74LS04 trong kho. Hầu hết việc lắp ráp được thực hiện tại Tech Shop ở Menlo Park.

Bước 1: Các mặt hàng cần thiết

Món đồ cần thiết
Món đồ cần thiết
Món đồ cần thiết
Món đồ cần thiết
Món đồ cần thiết
Món đồ cần thiết

Để hoàn thành hướng dẫn này, bạn sẽ cần những thứ sau: Phần cứng: - Điện thoại Android G1 Dev (hoặc thiết bị Android khác có quyền truy cập root và đầu ra nối tiếp) - Arduino (Tôi đang sử dụng Freeduino SB nhưng bất kỳ cái nào cũng nên làm) - 3.3v đến 5v bộ chuyển đổi nếu bạn không sử dụng Arduino 3.3v (Tôi đang sử dụng chip 74LS04 với giá dưới 1 đô la nhưng có sẵn các tùy chọn khác) - Bảng ngắt kết nối USB HTC cho G1 - Thiết bị hàn cho hai kết nối nhanh - Một thân robot với micro servos (bìa cứng, acrylic, treads, bánh xe, bất cứ thứ gì sẽ làm được) Phần mềm: - Android Scripting Environment (ASE) - Ứng dụng khách Telnet cho PC của bạn (Tôi đang sử dụng PuTTY trên Windows) - Môi trường phát triển Arduino - (tùy chọn) Ứng dụng khách nối tiếp cho PC của bạn (tôi cũng đang sử dụng PuTTY trên Windows cho việc này) - (tùy chọn) Android SDK Nếu bạn có thể làm theo hướng dẫn, bạn có thể hoàn thành hướng dẫn này với ít kiến thức về Python, Arduino, Android hoặc điện tử. Bạn sẽ muốn biết những điều đó nếu bạn muốn vượt xa đèn LED nhấp nháy nhưng điều này sẽ giúp bạn bắt đầu.

Bước 2: Android G1 với đầu ra nối tiếp được bật

Android G1 với đầu ra nối tiếp được bật
Android G1 với đầu ra nối tiếp được bật
Android G1 với đầu ra nối tiếp được bật
Android G1 với đầu ra nối tiếp được bật
Android G1 với đầu ra nối tiếp được bật
Android G1 với đầu ra nối tiếp được bật

G1 không xuất xưởng với khả năng gửi các lệnh nối tiếp ra khỏi cổng USB và không có tùy chọn gốc nào để kích hoạt nó. Nếu bạn là người dùng Android SDK nâng cao, bạn có thể tạo bản dựng của riêng mình nhưng tôi đã chọn sử dụng Cyanogenmod 4.2.13. Nếu bạn biết các thiết bị Android khác đang hoạt động, hãy thêm chúng vào phần nhận xét.

Theo tùy chọn, bạn có thể làm theo các liên kết ở đó tới hướng dẫn này để nói chuyện với G1 qua USB từ PC của bạn. Kết nối nối tiếp với USB đó không bắt buộc đối với hướng dẫn này nhưng tôi đã sử dụng nó như một cách kiểm tra tỉnh táo tốt đẹp để xác minh điện thoại đang gửi nối tiếp ra. Nếu bạn không sử dụng intructable khác để xác minh đầu ra nối tiếp đang hoạt động, bạn có thể thử kiểm tra đơn giản sau: 1. Mở ứng dụng Terminal trên G1 (đi kèm với Cyanogen nhưng tải xuống ứng dụng từ Market nếu bạn có hình ảnh khác) 2 Điều hướng đến thư mục / dev / bằng cách nhập cd / dev / 3. Nhập ls (đó là L) và tìm ttyMSM2 trong danh sách được trả về. Tập lệnh Python mà chúng ta sẽ sử dụng sau này sẽ gửi lệnh đến '/ dev / ttyMSM2' trong ra lệnh cho họ đi ra ngoài kết nối nối tiếp. Vì điều đó yêu cầu quyền truy cập root, bạn sẽ cần thay đổi các quyền đối với quyền đó mỗi khi khởi động lại điện thoại. Để làm điều đó: 1. Mở ứng dụng đầu cuối trên điện thoại 2. Nhập 'chmod 777 / dev / ttyMSM2' Sau đó, bạn có thể chạy tập lệnh Python từ phần chỉnh sửa Android Scripting trong bước tiếp theo và nó sẽ có quyền truy cập để gửi đầu ra nối tiếp.

Bước 3: Cài đặt Android Scripting Environment (ASE) với Python

Cài đặt môi trường kịch bản Android (ASE) với Python
Cài đặt môi trường kịch bản Android (ASE) với Python
Cài đặt môi trường kịch bản Android (ASE) với Python
Cài đặt môi trường kịch bản Android (ASE) với Python

Các tập lệnh mà chúng tôi sẽ sử dụng để tạo kết nối ổ cắm mở trên điện thoại và gửi lệnh ra ngoài được viết bằng Python. Để chạy điều này trên G1, chúng tôi sẽ cần Môi trường kịch bản Android. Nếu bạn không thấy nó trong Thị trường, bạn có thể tải xuống bằng cách quét mã vạch trên trang liên kết đến tệp apk trên trang này.

Sau khi cài đặt và chạy ASE, bạn sẽ muốn thêm vào mô-đun Python từ menu: 1. Mở ASE và đảm bảo rằng bạn có kết nối internet đang hoạt động (wi-fi hoặc 3G) 2. Nhấn nút menu trên điện thoại và chọn Trình thông dịch 3. Nhấn lại menu và chọn Thêm 4. Chọn Python (hiện tại là v2.6.2 khi viết phần này) và nó sẽ tải xuống một số tệp zip Bạn có thể muốn khám phá việc tạo, mở, chỉnh sửa và chạy các tập lệnh để làm quen với Python thông qua ASE nhưng nó không bắt buộc.

Bước 4: Sao chép và chạy Tập lệnh Cellbot.py để khởi chạy chương trình Python

Sao chép và chạy Tập lệnh Cellbot.py để khởi chạy chương trình Python
Sao chép và chạy Tập lệnh Cellbot.py để khởi chạy chương trình Python

Hướng dẫn này sử dụng tập lệnh Python để làm "bộ não" của robot. Nhận mã mới nhất từ dự án Google Code nguồn mở của chúng tôi. Bạn chỉ cần tệp cellbot.py nhưng những người khác có thể trợ giúp với nhiều thứ khác nhau mà bạn muốn khám phá. Tôi chỉ cần cắm điện thoại vào kết nối USB của PC và gắn ổ đĩa trước khi sao chép tệp vào / sdcard / ase / scripts.

Chương trình tạo một kết nối ổ cắm mở để chấp nhận một phiên telnet đến. Nó cũng in các lệnh đã nhận ra màn hình trong khi gửi chúng ra cổng nối tiếp. Đặt tệp này trên thẻ SD của điện thoại trong thư mục / ase / scripts /. thẻ SD từ PC của bạn nếu bạn đã sao chép chúng theo cách đó vì điện thoại không thể truy cập các tệp cùng lúc với PC của bạn. 3. Mở ứng dụng Android Scripting Environment 4. Nhấp vào cellbot.py để khởi chạy nó. Bạn sẽ thấy xác nhận rằng thiết bị đã sẵn sàng tại thời điểm này để chấp nhận các phiên telnet đến trên cổng 9002. Mẹo: Đảm bảo chạy "chmod 777 / dev / ttyMSM2 "lệnh từ bước # 3 đầu tiên. Xem bước # 5 để tìm địa chỉ IP của điện thoại.

Bước 5: Telnet vào G1 và kiểm tra gửi lệnh cho nó

Telnet vào G1 và kiểm tra gửi lệnh cho nó
Telnet vào G1 và kiểm tra gửi lệnh cho nó
Telnet vào G1 và thử nghiệm gửi nó lệnh
Telnet vào G1 và thử nghiệm gửi nó lệnh
Telnet vào G1 và kiểm tra gửi lệnh cho nó
Telnet vào G1 và kiểm tra gửi lệnh cho nó

Điện thoại phải sẵn sàng để bạn truyền vào nó và gửi lệnh từ PC của bạn. Nó sẽ in chúng ra màn hình của điện thoại để xác nhận những gì nó nhận được. Tôi đã sử dụng PuTTY trên Windows nhưng chúng tôi đã xác nhận rằng minicom hoạt động tốt trên máy Mac như được mô tả trong hướng dẫn này.

Trước tiên, bạn sẽ cần tìm địa chỉ IP của điện thoại. Tính năng này khả dụng bằng cách đi tới Menu> Cài đặt> Điều khiển không dây> Cài đặt Wi-Fi, sau đó nhấn vào kết nối hiện đang hoạt động. Một thông báo bánh mì nướng bật lên sẽ hiển thị địa chỉ IP hiện tại trên mạng cục bộ. Viết nó ra giấy vì bạn sẽ sử dụng nó mỗi khi bạn muốn mở một phiên telnet từ PC của mình. Các chỉ định IP thường hết hạn sau một số ngày nhất định, vì vậy bạn có thể cần phải kiểm tra lại điều này. Định tuyến đến điện thoại từ bên ngoài mạng cục bộ có thể thực hiện được nhưng không được đề cập ở đây. Mở ứng dụng khách telnet mà bạn chọn và kết nối với IP của điện thoại trên cổng 9002. Từ dòng lệnh, bạn thực hiện việc này với tên "telnet 192.168.1.1 9002" bằng cách sử dụng IP thực của điện thoại. Nhập một số ký tự và nhấn enter để xem chúng hiển thị trên màn hình điện thoại. Bạn có thể nhập q để thoát tập lệnh Python, điều này sẽ đóng phiên đầu cuối của bạn. Nếu vì bất kỳ lý do gì mà bạn không thể kết nối qua telnet và cần phải hủy chương trình, khởi động lại điện thoại đơn giản sẽ thực hiện được mẹo. Người dùng nâng cao có thể muốn tìm ID tiến trình thông qua ps và sau đó sử dụng kill để ngăn chặn nó. Nâng cao: Phiên bản tương lai của nó có thể chạy một máy chủ web cục bộ từ điện thoại thay vì chấp nhận các lệnh qua telnet. Chúng tôi cũng đang khám phá XMPP để trò chuyện với rô bốt của bạn.

Bước 6: Kết nối Bộ chuyển mức 3.3v đến 5v với Arduino

Kết nối Bộ chuyển mức 3.3v đến 5v với Arduino
Kết nối Bộ chuyển mức 3.3v đến 5v với Arduino
Kết nối Bộ chuyển mức 3.3v đến 5v với Arduino
Kết nối Bộ chuyển mức 3.3v đến 5v với Arduino
Kết nối Bộ chuyển mức 3.3v đến 5v với Arduino
Kết nối Bộ chuyển mức 3.3v đến 5v với Arduino

Arduino được sử dụng trong hướng dẫn này là mô hình 5v vì vậy chúng tôi cần chuyển đổi tín hiệu 3.3v ra khỏi G1 bằng cách sử dụng bộ chuyển mức. Có thể kết nối trực tiếp với Arduino 3.3v nhưng đó không phải là thứ tôi đã thử nghiệm.

Có một số cách để tiếp cận điều này nhưng chúng tôi sẽ sử dụng chip 74LS04 trong ví dụ này. Bạn có thể tìm kiếm một cái ở đây và chúng có thể dưới $ 1. Tim và tôi nhặt được của chúng tôi từ Hacker Dojo ở Mountain View, CA nhưng những thứ này RẤT phổ biến và nên phong phú ở bất cứ nơi nào bán hoặc tặng chip. Ở mức cao, chúng tôi chỉ cần gửi tín hiệu TX từ bảng đột phá HTS USB vào chân 1 của chip 74LS04. Để làm cho nó hoạt động, chúng tôi đi qua chip hai lần và đi ra chân 4 đến chân RX trên Freeduino SB (chân nối tiếp của bạn có thể khác nếu bạn có bảng Arduino khác nhưng tất cả đều phải hỗ trợ điều này). Làm theo các bước sau để nối dây bộ dịch chuyển mức và kết nối bảng mạch USB HTC (chưa cắm nó vào điện thoại và rút nguồn điện vào Arduino): 1. Gắn chip 74LS04 vào bảng mạch của bạn. Đảm bảo rằng con chip cản trở điểm gãy trung tâm để các chân không bị chập (một động tác ngu ngốc mà tôi đã thực hiện lúc đầu) 2. Gắn hai dây vào bảng HTC USB như được mô tả trong hướng dẫn này, nhưng chúng tôi sẽ chỉ sử dụng chân 7 (Ground) và 8 (TX0) vì chúng tôi chỉ thực hiện truyền một chiều cho hướng dẫn này. 3. Kết nối đầu kia của dây nối đất (chân 7) với mặt đất trên bảng mạch của bạn (đầu này phải được kết nối với đất trên Arduino của bạn) 4. Kết nối đầu kia của dây TX0 (chân 8) với bảng mạch. nó chạy vào chân 1 của chip 74LS04. (thực hiện tìm kiếm hình ảnh để biết sơ đồ đầy đủ của chip) 5. Sử dụng dây để kết nối chân 2 và 3 của chip 6. Kết nối chân 4 của chip với điểm Arduino RX (chân 0 trên Freeduino SB và Arduino Duemilanove) 7. Kết nối chân 7 (GND) trên chip với mặt đất cho bảng mạch của bạn (cũng kết nối với mặt đất Arduino) 8. Kết nối chân 14 (VCC) với nguồn 5v trên bảng mạch của bạn (lấy nguồn từ Arduino Đầu ra 5v) Bây giờ bạn đã sẵn sàng cắm bảng ngắt USB HTC vào đáy điện thoại và bật nguồn Arduino. Kiểm tra các tia lửa và mùi và chạm vào mọi thứ để đảm bảo chúng mát. Nếu bạn chưa có robot, bạn có thể kiểm tra xem đèn LED bật và tắt để xác nhận rằng nó đang hoạt động.

Bước 7: Tải chương trình Cellbots trên Arduino

Tải Chương trình Cellbots trên Arduino
Tải Chương trình Cellbots trên Arduino
Tải chương trình Cellbots trên Arduino
Tải chương trình Cellbots trên Arduino

Lấy mã nguồn Arduino từ trang web dự án Google Code của chúng tôi. Mở chương trình Cellbots.pde Arduino trong trình chỉnh sửa Arduino. Sau đó đẩy nó vào bảng Arduino của bạn.

Bạn có thể kiểm tra việc nói chuyện với mã Arduino bằng cách mở màn hình nối tiếp trong trình chỉnh sửa Arduino. Đây là một cách tuyệt vời để kiểm tra robot hoặc thiết bị của bạn bằng cách nói chuyện trực tiếp với Arduino trước khi kết nối mọi thứ với điện thoại. Mã sẽ gửi các lệnh nối tiếp trở lại màn hình nối tiếp để xác nhận xem nó đang làm gì ngay cả khi bạn chưa chế tạo rô-bốt của mình.. Vì vậy, bạn có thể muốn đặt cái này một công tắc nhưng tôi chỉ cần rút phích cắm của nó khi tôi cần tải một chương trình mới.

Bước 8: Chạy toàn bộ quy trình

Chạy toàn bộ quy trình
Chạy toàn bộ quy trình
Chạy toàn bộ quy trình
Chạy toàn bộ quy trình
Chạy toàn bộ quy trình
Chạy toàn bộ quy trình

Bạn sẽ có thể kết nối bảng HTC USB với điện thoại, kích hoạt tệp cellbot.py trong ASE và mở các phiên đầu cuối vào điện thoại. Gõ "H" để điện thoại chào hoặc bất kỳ lệnh nào khác từ tệp README.txt.

Một "q" sẽ thoát khỏi tập lệnh Python trên điện thoại và đóng ổ cắm đầu cuối. Dưới đây là bản tóm tắt về cách hoạt động của tất cả: 1. Tập lệnh Python mở một ổ cắm để chấp nhận các kết nối telnet đến và lặp lại các lệnh ra cổng nối tiếp 2 Chúng tôi kết nối từ PC với điện thoại qua telnet trên cổng 9002 và gửi cho nó các lệnh mà chúng tôi thấy trên màn hình 3. Bo mạch HTS USB giao diện với cổng USB của G1 và gửi tín hiệu 3.3v vào chân 74LS04 1. 4. The tín hiệu đi ra khỏi chip trên chân 2, quay trở lại trên chân 3 và đi ra một lần nữa trên chân 4 ở 5v 5. Arduino của chúng tôi chấp nhận tín hiệu nối tiếp trên chân RX 0 và xử lý nó thông qua chương trình Cellbot.pde 6. Chúng tôi có thể gõ 'q' để hủy tập lệnh Python và đóng kết nối telnet Bây giờ bạn đã hoàn thành quá trình rất phức tạp này để gửi các lệnh cơ bản đến rô bốt Arduino, đã đến lúc bạn hack nó để trở nên tuyệt vời hơn! Chúng tôi chưa có nối tiếp 2 chiều hoạt động nên Arduino không thể gửi lại các lệnh vào điện thoại nhưng chúng tôi đang làm việc trên điều đó. Luôn cập nhật bằng cách đăng ký vào blog của chúng tôi tại Cellbots.com. Giới thiệu về tác giả: Tim Heath Trưởng nhóm nghiên cứu, người đầu tiên đưa quá trình này lại với nhau tại Tech Shop ở Menlo Park, nơi anh là thành viên. Lập trình viên Ryan Hickman, người đã làm việc trên mã Python và Arduino và là tác giả của cuốn sách Có thể hướng dẫn này.

Đề xuất: