Съдържание:

Android G1 сериен към Arduino робот: 8 стъпки
Android G1 сериен към Arduino робот: 8 стъпки

Видео: Android G1 сериен към Arduino робот: 8 стъпки

Видео: Android G1 сериен към Arduino робот: 8 стъпки
Видео: SKR 1.4 - Fan Control 2024, Септември
Anonim
Android G1 сериен към Arduino Robot
Android G1 сериен към Arduino Robot
Android G1 сериен към Arduino Robot
Android G1 сериен към Arduino Robot
Android G1 сериен към Arduino Robot
Android G1 сериен към Arduino Robot

Научете как вашият мобилен телефон с Android може да управлява робот с помощта на дъска Arduino. Телефонът приема команди чрез telnet от друг телефон или компютър, така че можете да управлявате робота дистанционно. Този проект няма да промени иначе G1, така че можете да продължите да го използвате като обикновен телефон, след като го откачите. Използвайки евтини електронни компоненти като дъски Arduino, можете да ги сдвоите с телефона си за 400 долара, за да направите страхотен робот. Добавянето на GPS, LCD, сензори за движение, wi-fi, клетъчни връзки, високоговорители и др. Към бот за хоби би струвало стотици долари, но телефонът ви вече има такива! Заедно дъската Android G1 и Arduino ви позволяват да използвате евтина електроника, като прости сервоустройства и сензори, за изграждане на мощни устройства като роботи, дистанционно телеприсъствие или забавни играчки за деца. Повече информация на Cellbots.com Забележка: Този проект в момента изисква Android G1 с root достъп за използване на сериен изход от телефона към робота Arduino. Можете да добавите модул BlueTooth за $ 20 към вашата дъска Arduino, за да накарате телефона да говори с него през сериен BlueTooth, ако искате да използвате търговския софтуер за Android. Специални благодарности: Имаме хакерското доджо в Маунтин Вю, Калифорния, за да благодарим, че ни свърза, помогна с някои трудни въпроси чрез техния пощенски списък със страхотни членове и че имаме чипове 74LS04 на склад. По -голямата част от сглобяването е направено в Tech Shop в Менло Парк.

Стъпка 1: Необходими елементи

Необходими артикули
Необходими артикули
Необходими артикули
Необходими артикули
Необходими артикули
Необходими артикули

За да завършите този урок, ще ви трябва следното: Хардуер: - Android G1 Dev Phone (или друго устройство с Android с root достъп и сериен изход) - Arduino (използвам Freeduino SB, но всеки трябва да го направи) - 3.3v до 5v конвертор, ако не използвате 3.3v Arduino (използвам чип 74LS04 за под $ 1, но са налични и други опции) - HTC USB разкъсваща платка за G1 - Оборудване за запояване за две бързи връзки - Робот с микро серво (картон, акрил, протектори, колела, всичко ще свърши работа) Софтуер: - Android Scripting Environment (ASE) - Telnet клиент за вашия компютър (използвам PuTTY в Windows) - Arduino среда за разработка - (по избор) Сериен клиент за вашия компютър (аз също използвам PuTTY в Windows за това) - (по избор) Android SDK Ако можете да следвате инструкциите, можете да завършите този урок с малко познания за Python, Arduino, Android или електроника. Ще искате да знаете тези неща, ако искате да надхвърлите мигащия светодиод, но това ще ви помогне да започнете.

Стъпка 2: Android G1 с активиран сериен изход

Android G1 с активиран сериен изход
Android G1 с активиран сериен изход
Android G1 с активиран сериен изход
Android G1 с активиран сериен изход
Android G1 с активиран сериен изход
Android G1 с активиран сериен изход

G1 не се доставят с възможност за изпращане на серийни команди от USB порта и няма естествена опция, която да го разреши. Ако сте напреднал потребител на Android SDK, можете да направите своя собствена компилация, но аз избрах да използвам Cyanogenmod 4.2.13. Ако знаете за други устройства с Android със сериен изход, ги добавете към коментарите.

По желание можете да следвате връзките там към тази инструкция за разговор с вашия G1 през USB от вашия компютър. Тази серийна към USB връзка не е необходима за този урок, но го използвах като добра проверка за здрав разум, за да проверя дали телефонът изпраща сериен изход. Ако не използвате другия ненатрапчив, за да проверите дали серийният изход работи, можете да опитате тази проста проверка: 1. Отворете приложението Terminal на G1 (идва с Cyanogen, но изтеглете такова от Market, ако имате различно изображение) 2 Придвижете се до директорията/dev/, като въведете cd/dev/3. Въведете ls (това е L) и потърсете ttyMSM2 в списъка, който се връща Скриптът на Python, който ще използваме по -късно, изпраща команди до '/dev/ttyMSM2' в поръчайте им да прекъснат серийната връзка. Тъй като това изисква root достъп, ще трябва да променяте разрешенията за това всеки път, когато рестартирате телефона. За да направите това: 1. Отворете терминалното приложение на телефона 2. Въведете „chmod 777 /dev /ttyMSM2“След това можете да стартирате скрипта Python от редактирането на Android Scripting в следващата стъпка и той ще има достъп за изпращане на сериен изход.

Стъпка 3: Инсталирайте Android Scripting Environment (ASE) с Python

Инсталирайте Android Scripting Environment (ASE) с Python
Инсталирайте Android Scripting Environment (ASE) с Python
Инсталирайте Android Scripting Environment (ASE) с Python
Инсталирайте Android Scripting Environment (ASE) с Python

Скриптовете, които ще използваме за създаване на отворен контакт на телефона и изпращане на команди, са написани на Python. За да стартираме това на G1, ще се нуждаем от Android Scripting Environment. Ако не го виждате в Market, можете да го изтеглите, като сканирате баркода на тази страница, който води до apk файла на тази страница.

След като инсталирате и стартирате ASE, ще искате да добавите към модула Python от менюто: 1. Отворете ASE и се уверете, че имате работеща интернет връзка (wi-fi или 3G) 2. Натиснете бутона на менюто на телефона и изберете Тълкуватели 3. Натиснете отново менюто и изберете Добавяне 4. Изберете Python (в момента v2.6.2 от момента на писане на това) и той ще изтегли някои zip файлове. Може да искате да проучите създаването, отварянето, редактирането и изпълнението на скриптове, за да се запознаете с Python чрез ASE, но не е задължително.

Стъпка 4: Копирайте и стартирайте Cellbot.py скрипта, за да стартирате програмата Python

Копирайте и стартирайте скрипта Cellbot.py, за да стартирате програмата Python
Копирайте и стартирайте скрипта Cellbot.py, за да стартирате програмата Python

Този урок използва скрипт на Python, за да бъде „мозъкът“на робота. Вземете най -новия код от нашия проект за Google Code с отворен код. Имате нужда само от файла cellbot.py, но други може да ви помогнат с различни неща, които искате да проучите. Просто включих телефона в USB връзката на моя компютър и монтирах устройството, преди да копирам файла в/sdcard/ase/scripts.

Програмата създава връзка с отворен гнездо, за да приеме входяща telnet сесия. Той също така отпечатва получените команди на екрана, докато ги изпраща през серийния порт. Поставете този файл на SD картата на телефона в директорията/ase/scripts/. Подробни стъпки за зареждане и стартиране на скриптовете: 1. Копирайте скрипта cellbot.py в директорията/ase/scripts/на SD картата 2. Не забравяйте да демонтирате SD картата от вашия компютър, ако сте ги копирали по този начин, тъй като телефонът няма достъп до файловете едновременно с вашия компютър. 3. Отворете приложението Android Scripting Environment 4. Кликнете върху cellbot.py, за да го стартирате Трябва да видите потвърждение, че устройството е готово в този момент да приема входящи telnet сесии на порт 9002. Съвет: Не забравяйте да стартирате „chmod 777 /dev/ttyMSM2 команда от стъпка #3 първо. Вижте стъпка #5 за намиране на IP адреса на телефона.

Стъпка 5: Telnet в командите G1 и го изпратете

Telnet в командите G1 и тестовото изпращане
Telnet в командите G1 и тестовото изпращане
Telnet в командите G1 и тестовото изпращане
Telnet в командите G1 и тестовото изпращане
Telnet в командите G1 и тестовото изпращане
Telnet в командите G1 и тестовото изпращане

Телефонът трябва да е готов, за да влезете в него и да му изпратите команди от вашия компютър. Той ще ги отпечата на екрана на телефона, за да потвърди какво получава. Използвах PuTTY в Windows, но ние потвърдихме, че minicom работи чудесно на Mac, както е описано в тази инструкция.

Първо ще трябва да намерите IP адреса на телефона си. Това е достъпно, като отидете в Меню> Настройки> Безжични контроли> Настройки на Wi-Fi и след това натиснете текущата активна връзка. Ще се появи изскачащо тост съобщение с текущия IP адрес в локалната мрежа. Запишете това, тъй като ще го използвате всеки път, когато искате да отворите telnet сесия от вашия компютър. Присвояванията на IP обикновено изтичат след определен брой дни, така че може да се наложи да проверите отново. Забележка: Този урок предполага, че вашият компютър и телефон са в една и съща локална мрежа. Маршрутизацията към телефона извън локалната мрежа трябва да е възможна, но не е обхваната тук. Отворете избрания от вас telnet клиент и се свържете с IP на телефона на порт 9002. От командния ред правите това като „telnet 192.168.1.1 9002“, като използвате действителния IP адрес на телефона. Въведете някои символи и натиснете enter, за да ги видите на екрана на телефона. Можете да въведете q, за да напуснете скрипта на Python, което трябва да затвори вашата терминална сесия. Ако по някаква причина не можете да се свържете чрез telnet и трябва да убиете програмата, просто рестартиране на телефона трябва да свърши работа. Разширените потребители може да поискат да намерят идентификатора на процеса чрез ps и след това да използват kill, за да го спрат. Разширено: Бъдещата версия на това може да изпълнява локален уеб сървър от телефона, вместо да приема команди чрез telnet. Ние също проучваме XMPP, за да разговаряме с вашия робот.

Стъпка 6: Свържете превключвател на ниво 3.3v към 5v към Arduino

Свържете превключвател на ниво 3.3v към 5v към Arduino
Свържете превключвател на ниво 3.3v към 5v към Arduino
Свържете превключвател на ниво 3.3v към 5v към Arduino
Свържете превключвател на ниво 3.3v към 5v към Arduino
Свържете превключвател на ниво 3.3v към 5v към Arduino
Свържете превключвател на ниво 3.3v към 5v към Arduino

Arduino, използван в този урок, е 5v модел, така че трябва да преобразуваме 3.3v сигнала, излизащ от G1, с помощта на превключвател на нивата. Трябва да е възможно директно свързване към 3.3V Arduino, но това не беше нещо, което тествах.

Има няколко начина да се подходи към това, но в този пример ще използваме чип 74LS04. Можете да търсите такъв тук и те вероятно са под $ 1. Тим и аз взехме нашите от хакерското доджо в Маунтин Вю, Калифорния, но те са МНОГО често срещани и трябва да бъдат в изобилие, където и да се продават или даряват чипове. На високо ниво ние просто ще изпратим TX сигнала от HTS USB пробивната платка в пин 1 на чипа 74LS04. За да работи, ние преминаваме през чипа два пъти и излизаме щифт 4 към RX щифта на Freeduino SB (вашият сериен щифт може да е различен, ако имате друга платка Arduino, но всички трябва да поддържат това). Следвайте тези стъпки, за да свържете превключвателя на нивата и да свържете USB платката на HTC (все още не я включвайте в телефона и изключете захранването от Arduino): 1. Поставете чипа 74LS04 на вашата дъска. Уверете се, че чипът пречи на централния счупване, така че щифтовете да не са къси (тъп ход направих в началото) 2. Прикачете два проводника към USB платката на HTC, както е описано в тази инструкция, но ще използваме само щифтове 7 (Ground) и 8 (TX0), тъй като ние правим само еднопосочно предаване за този урок. 3. Свържете другия край на проводника за заземяване (щифт 7) към маса на вашата дъска (която трябва да бъде свързана към маса на вашия Arduino) 4. Свържете другия край на проводника TX0 (щифт 8) към макета, където той влиза в пин 1 на чипа 74LS04. (направете търсене на изображение за пълна диаграма на чипа) 5. Използвайте проводник, за да свържете пин 2 и 3 на чипа 6. Свържете щифт 4 на чипа към точката Arduino RX (пин 0 на Freeduino SB и Arduino Duemilanove) 7. Свържете щифт 7 (GND) на чипа към земята за вашата макетна платка (която също се свързва към заземяването на Arduino) 8. Свържете щифт 14 (VCC) към 5v захранването на вашата дъска (което получава захранването от Arduino 5v изход) Сега трябва да сте готови да включите HTC USB разкъсващата платка в долната част на телефона и да включите Arduino. Проверете за искри и миризми и докоснете нещата, за да се уверите, че са студени. Ако все още нямате робот, можете да проверите дали светодиодът се включва и изключва, за да потвърдите, че работи.

Стъпка 7: Заредете програмата Cellbots на Arduino

Заредете програмата Cellbots на Arduino
Заредете програмата Cellbots на Arduino
Заредете програмата Cellbots на Arduino
Заредете програмата Cellbots на Arduino

Вземете изходния код на Arduino от нашия сайт за проект на Google Code. Отворете програмата Cellbots.pde Arduino в редактора на Arduino. След това го натиснете към дъската на Arduino.

Можете да тествате разговора с кода на Arduino, като отворите серийния монитор в редактора на Arduino. Това е чудесен начин да тествате вашия робот или устройство, като говорите директно с Arduino, преди да свържете всичко към телефона. Кодът изпраща серийни команди обратно към серийния монитор, за да потвърди какво прави, дори ако все още нямате изграден робот.. Така че може да искате да поставите този превключвател, но просто го изключих, когато трябваше да заредя нова програма.

Стъпка 8: Изпълнете целия процес

Изпълнете целия процес
Изпълнете целия процес
Изпълнете целия процес
Изпълнете целия процес
Изпълнете целия процес
Изпълнете целия процес

Трябва да можете да свържете HTC USB платката към телефона, да стартирате файла cellbot.py в ASE и да отворите терминални сесии в телефона. Въведете „H“, за да накарате телефона да поздрави или други команди от файла README.txt.

"Q" ще напусне скрипта на Python на телефона и ще затвори терминалния гнездо. Ето резюме на всичко това: 1. Скриптът Python отваря сокет за приемане на входящи telnet връзки и ехо на командите от серийния порт 2 Свързваме се от нашия компютър към телефона чрез telnet на порт 9002 и му изпращаме команди, които виждаме на екрана 3. HTS USB платката се свързва с USB порта на G1 и изпраща 3.3v сигнал в пина 1. 74LS04. сигнал излиза от чипа на пин 2, връща се обратно на щифт 3 и излиза отново на щифт 4 при 5v 5. Нашият Arduino приема серийния сигнал на RX пин 0 и го обработва чрез програмата Cellbot.pde 6. Ние може да въведете 'q', за да убиете скрипта на Python и да затворите връзката telnet Сега, когато сте завършили този много сложен процес за изпращане на основни команди до робот Arduino, време е да го хакнете, за да бъде по -страхотно! Все още нямаме двупосочен сериен режим, така че Arduino не може да изпраща команди обратно в телефона, но работим върху това. Бъдете в течение, като се абонирате за нашия блог на Cellbots.com. За авторите: Тим Хийт Водещ изследовател, който за първи път събра този процес в Tech Shop в Менло Парк, където той е член. Райън Хикман програмист, който е работил върху кода на Python и Arduino и е автор на тази инструкция.

Препоръчано: