Trang Chủ Xã hội Truyền thông Phát triển cho dự án Tango - núm vú

Phát triển cho dự án Tango - núm vú

Video: Project Tango 2025

Video: Project Tango 2025
Anonim

Android thúc đẩy nhiều dự án sáng tạo của Google. Chẳng hạn, thiết bị máy tính bảng được gọi là Project Tango. Thoạt nhìn, một thiết bị Project Tango giống như một chiếc máy tính bảng 7 inch thông thường. Khi bật thiết bị, bạn sẽ thấy màn hình chính Android quen thuộc với các biểu tượng để khởi chạy ứng dụng và với các chỉ báo cho tín hiệu WiFi và Sức mạnh của pin.

Thiết bị này thậm chí chạy ứng dụng Cửa hàng Play của Google, vì vậy bạn có thể sử dụng nó để duyệt web, chỉnh sửa tài liệu và làm tất cả những thứ mà các thiết bị máy tính bảng thông thường làm.

Nhưng phần cứng của dự án Tango không phải là bình thường. Mặt sau của máy tính bảng có bộ cảm biến độ sâu, camera mắt cá và máy ảnh hồng ngoại. Kết hợp dữ liệu từ các nguồn này với phần mềm theo dõi chuyển động nội bộ, Project Tango tạo ra một bản đồ 3D của không gian xung quanh.

Bạn có thể tạo bản đồ phòng khách của riêng mình và lưu trữ bản đồ trên thiết bị Project Tango. Khi mang thiết bị trở lại phòng khách, thiết bị nhớ không gian và tất cả các vật bên trong không gian.

Tango đi kèm với một vài ứng dụng demo. Với một ứng dụng, bạn nhắm mục tiêu thiết bị ở hai điểm để đo khoảng cách giữa các điểm đó. Bạn có thể đứng một vài feet từ điểm xuất phát và điểm kết thúc bởi vì thiết bị này biết bạn từ đâu trong mỗi điểm.

Với một ứng dụng khác, bạn đi qua thế giới ảo. Để thay đổi quan điểm của bạn trong một thế giới, bạn không xoay một phím điều khiển, di chuyển con chuột, hoặc kéo ngón tay của bạn dọc theo một màn hình. Thay vào đó, bạn xem màn hình của thiết bị khi bạn di chuyển quanh môi trường thực tế của chính bạn. Thiết bị này cho bạn thấy những gì bạn thấy trong thế giới ảo khi bạn đi về phía trước, quay sang nhìn sang hai bên và điều hướng theo các đối tượng 3D ảo.

Để giúp bạn bắt đầu phát triển, Project Tango đi kèm với một số ứng dụng mẫu. Mở ứng dụng QuickStart rất cơ bản trong Android Studio hiển thị các giá trị dịch và xoay khi bạn di chuyển thiết bị từ nơi này sang nơi khác. (Xem hình sau).

Ứng dụng QuickStart.

Ở cốt lõi của ứng dụng QuickStart là Hoạt động trên Android. Một số mã của ứng dụng xuất hiện bên dưới.

/ * * Bản quyền năm 2014 Google Inc. Tất cả các quyền được bảo lưu. * * Cấp phép theo Giấy phép Apache, Phiên bản 2. 0 ("Giấy phép"); * bạn không thể sử dụng tệp này ngoại trừ tuân thủ Giấy phép. * Bạn có thể lấy bản sao Giấy phép tại * * // www. apache. org / licenses / LICENSE-2. 0 * * Trừ khi luật pháp hiện hành yêu cầu hoặc đã đồng ý bằng văn bản, phần mềm * phân phối theo Giấy phép được phân phối trên cơ sở "AS IS", * KHÔNG CÓ ĐẢM BẢO HO ORC ĐIỀU KIỆN BẤT K AN HÌNH THỨC NÀO, thể hiện hay ngụ ý.* Xem Giấy phép cho các ngôn ngữ cụ thể chi phối điều khoản và * hạn chế theo Giấy phép. * / import com. Google. atap. tangoservice. Tango; nhập khẩu com. Google. atap. tangoservice. Tango. OnTangoUpdateListener; nhập khẩu com. Google. atap. tangoservice. TangoConfig; nhập khẩu com. Google. atap. tangoservice. TangoCoordinateFramePair; nhập khẩu com. Google. atap. tangoservice. TangoPoseData; / / Có nhiều tờ khai nhập khẩu ở đây lớp MainActivity công khai mở rộng hoạt động {@Hãy bảo vệ void onCreate (Bundle savedInstanceState) {super. onCreate (savedInstanceState); setContentView (bố cục R. activity_main); mTranslationTextView = (TextView) findViewById (R id id. translation_text_view); mRotationTextView = (TextView) findViewById (R.số luân phiên_tập tin xem); / / Khởi tạo Tango khách hàng mTango = mới Tango (này); / / Thiết lập cấu hình Tango cho phép theo dõi chuyển động mConfig = mTango. getConfig (TangoConfig. CONFIG_TYPE_CURRENT); mConfig. putBoolean (TangoConfig.KEY_BOOLEAN_MOTIONTRACKING, true);} @Chuyển quyền được bảo vệ void onActivityResult (int requestCode, int resultCode, Intent data) {try {setTangoListeners ();} catch (TangoErrorException e) {} thử {mTango. kết nối (mConfig);} catch (TangoOutOfDateException e) {} catch (TangoErrorException e) {}} private void setTangoListeners () {// Chọn phối hợp các cặp khung ArrayList framePairs = new ArrayList (); khung. thêm (mới TangoCoordinateFramePair (TangoPoseData. COORDINATE_FRAME_START_OF_SERVICE, TangoPoseData. COORDINATE_FRAME_DEVICE)); // Thêm một người nghe Tango pose data mTango. connectListener (framePairs, new OnTangoUpdateListener () { @Override public void onPoseAvailable (TangoPoseData pose) { // Định dạng dịch và quay dữ liệu cuối cùng String translationMsg = Chuỗi định dạng (sTranslationFormat, pose. [0], [1], đặt ra [2].vòng quay cuối cùng [1], đặt ra [2] // Hiển thị dữ liệu trong TextViews runOnUiThread (new Runnable () { @Override public void run () { mTranslationTextView setText (translationMsg); mRotationTextView. }); } });}} Những gì bạn nhìn thấy ở đây không phải là toàn bộ MainActivity 210 dòng lớp học, nhưng một số điểm nổi bật quan trọng của lớp đã được tóm tắt.

Hãy nhìn vào lớp MainActivity. Tâm của mã hoạt động nằm trong lớp OnTangoUpdateListener vô danh với phương thức onPoseAvailable của nó.

Trong cuộc sống hàng ngày, đặt ra là cách bạn định hướng đầu của bạn so với môi trường xung quanh. Và trong thuật ngữ Project Tango, một đặt ra là cách bạn định hướng thiết bị liên quan đến môi trường xung quanh. Một hình dáng được mô tả bằng bảy số, như số dịch và số quay mà bạn thấy trong hình trước. Khi phần cứng của thiết bị cảm thấy một tư thế mới, phần mềm gọi phương thức onPoseAvailable. Phương thức onPoseAvailable phải hiển thị các thông báo như Translation: -2.6622, 3 214773, 2. 824979 trong các trường văn bản của hoạt động.

Nhưng có vấn đề. Các quy tắc luồng của Android cho thấy không có chủ đề nào ngoài chủ đề chính có thể cập nhật giao diện người dùng của ứng dụng. Trong lớp MainActivity, cá thể OnTangoUpdateListener chạy trong một chủ đề của riêng nó. Vì vậy, phương thức onPoseAvailable của cá thể không thể hiển thị các thông báo trong các trường văn bản của hoạt động bằng cách gọi trực tiếp mTranslationTextView. setText và mRotationTextView. setText phương pháp.

Nhưng như Giáo sư Farnsworth trong

Futurama luôn luôn nói, có "Tin vui, mọi người! "Android có một phương pháp runOnUiThread chỉ trong những dịp như vậy. Tham số của phương thức runOnUiThread là một lớp thực hiện giao diện Runnable của Java. Trong mã của ứng dụng QuickStart, phương thức chạy của lớp này hiển thị văn bản thay mặt cho trường hợp OnTangoUpdateListener. Cuối cùng, người dùng của thiết bị nhìn thấy dữ liệu Translation and Rotation, và tất cả là tốt.

Phát triển cho dự án Tango - núm vú

Lựa chọn của người biên tập

Làm thế nào để trình bày các ngày trong các định dạng khác nhau trong R - núm vú

Làm thế nào để trình bày các ngày trong các định dạng khác nhau trong R - núm vú

Bạn có thể nhận thấy trong R như. Ngày () là mặc định theo mặc định: Nó dự kiến ​​ngày được định dạng theo thứ tự của năm, tháng, và ngày. May mắn thay, R cho phép bạn linh hoạt trong việc xác định định dạng ngày tháng. Bằng cách sử dụng đối số định dạng của. Date (), bạn có thể chuyển đổi bất kỳ định dạng ngày thành một đối tượng Date. ...

Làm thế nào để dự đoán các giá trị dữ liệu mới với R - núm vú

Làm thế nào để dự đoán các giá trị dữ liệu mới với R - núm vú

Ngoài mô tả các mối quan hệ, mô hình cũng có thể được sử dụng để dự đoán các giá trị cho dữ liệu mới. Cho rằng, nhiều hệ thống mô hình trong R sử dụng cùng một chức năng, được gọi là predict (). Mỗi mô hình hóa mô hình trong R có một hàm dự đoán với hương vị riêng của nó, nhưng nhìn chung các chức năng cơ bản cũng giống nhau cho tất cả chúng. ...

Lựa chọn của người biên tập

Làm thế nào để Gửi tin nhắn trực tiếp trên Twitter - núm vú

Làm thế nào để Gửi tin nhắn trực tiếp trên Twitter - núm vú

Tin nhắn trực tiếp (DMs) cho phép bạn gửi đi liên lạc với các ghi chú cá nhân thông qua Twitter. Giống như các tweet thường lệ và @replies, tin nhắn trực tiếp được giới hạn ở 140 ký tự. Không giống như các tweet thường dùng và @replies, người duy nhất có thể thấy một tin nhắn trực tiếp là người nhận. Bạn có thể gửi DM chỉ cho người dùng Twitter đang theo dõi bạn ...

Làm thế nào để tìm kiếm người trên Twitter - núm vú

Làm thế nào để tìm kiếm người trên Twitter - núm vú

Bạn có thể tìm kiếm người trên Twitter theo nhiều cách. Cách đơn giản nhất là sử dụng trường tìm kiếm - tìm biểu tượng kính lúp và các từ Search Twitter bên trong một hình bầu dục - hiện diện trong thanh điều hướng ở đầu mỗi trang Twitter. Chạy tìm kiếm của bạn bằng bất kỳ tên, từ khóa, ngành, tiêu đề và ...

Làm thế nào để Thiết lập tin nhắn văn bản Twitter (Giao hàng SMS) - núm vú

Làm thế nào để Thiết lập tin nhắn văn bản Twitter (Giao hàng SMS) - núm vú

Để Chọn tham gia để nhận Twitter thông qua tin nhắn văn bản (gửi SMS). Trước tiên, bạn phải thiết lập một thiết bị di động để Twitter biết nơi gửi Tweets của bạn. Để làm như vậy, hãy làm theo các bước sau: Nhấp vào biểu tượng bánh răng ở góc trên cùng bên phải của Twitter của bạn. com màn hình chính. Nhấp vào Cài đặt trong ...

Lựa chọn của người biên tập

Lợi ích sức khoẻ của Thiền - Thập kỷ

Lợi ích sức khoẻ của Thiền - Thập kỷ

Trong những năm 70 và 80 Thiền Siêu Việt và sự thư giãn- nghiên cứu đáp ứng các nghiên cứu khoa học về thiền định, và kết quả cho thấy những lợi ích đặc biệt của thiền định đối với một loạt các biện pháp sức khoẻ, từ huyết áp và mức cholesterol đến tuổi thọ và tần suất các chuyến thăm của bác sĩ. Dưới đây là một số ví dụ về một số kết quả nghiên cứu liên quan đến thiền định ...

Sĩ quan của freemason Lodge - những người có đầu

Sĩ quan của freemason Lodge - những người có đầu

Sĩ quan được các thành viên trong hội đồng bầu ra, mặc dù một số ít được Thầy tôn kính chỉ định. Trong hầu hết các nhà nghỉ, các nhân viên phục vụ ở vị trí của họ trong một năm. Tên và nhiệm vụ của các nhân viên hầu hết được lấy từ các phong tục tập quán cũ được thực hiện bởi các phường của các nhà đúc thời trung cổ, nơi có trí thông thái có nguồn gốc. Ở Anh ...

Bạn nên thiền định trong bao lâu? - núm vú

Bạn nên thiền định trong bao lâu? - núm vú

Bạn có thể thích thiền của mình ngắn và nhanh hoặc lâu và chậm. Nếu bạn không thể lập lịch trình nửa giờ, thì hãy thiền trong vài phút. Ngồi 5-10 phút mỗi ngày tốt hơn là ngồi hàng giờ một tuần một lần - mặc dù bạn có thể muốn làm cả hai. Đồng hồ báo thức kỹ thuật số ...