как делать настоящий телефон
Делаем мобильный телефон с нуля
Сегодня мы сделаем вполне себе рабочий, хотя и довольно простой в плане функционала, мобильный телефон.
Вот перечень тех функций, которые будет поддерживать наш телефон:
Телефон будет работать в GSM сетях и использовать обычную SIM карту. Он будет сконструирован на базе железа и софта входящего в комплект Arduino GSM Shield (можно купить на амазоне,
90$ за новый, и 70$ за б/у). Однако Arduino GSM Shield это просто набор голых плат, в них мало веселья, нам же нужен настоящий телефон, с интерфейсом, кнопками, микрофоном, дисплеем и т.д. Детальное описание железа и софта можно найти на open source проекте размещенном на GitHub (Железо и Софт)
Зачем я делаю этот проект? Отчасти потому что это весело, и отчасти потому что, хотя телефоны и стали за последние 10-15 лет вездесущими, очень малый процент людей догадывается и понимает как они работают, и как они устроены. С виду они кажутся сложными, но на самом деле собираются также как электро чайник или микроволновка. А так как телефоны вездесущи и популярны, в мире полно компаний которые выпускают нужные нам комплектующие.
Проведя пару вечером за компьютером я натыкался на места где можно было бы купить все элементы по довольно низким ценам в малом количестве, и для их сборки не нужно было дополнительное оборудование, только твои, надеюсь умелые руки. Возможно я что то упростил, и конечно придется приложить немного усилий для сборки телефона, но поверь мне, собрать его гораздо проще, чем получить степень по физике.
Шаг 1: Материалы и комплектующие
Платы можно заказать от OSH Park. Стоимость комплекта из 3 штук
Для сборки платы понадобится конечно же паяльник (пример), припой, щипцы и т.д. Для программирования микроконтроллера понадобится AVR программатор (например такой) и usb кабель (пример). Для зарядки батареи понадобится mini-USB. Если у тебя нет ничего из этого, и ты не планируешь создавать дома полноценную лабораторию, то обратись в местный кружок юных техников, скорее всего у них есть все что тебе нужно, и они не откажут тебе в просьбе поработать с их оборудованием в обмен на хрустящие купюры или банку меда 🙂
Для корпуса нам понадобится фанера 6 мм (только не покупай фанеру на которой видны следы клея, при работе с лазером он может возгореться), шпон,
1.5 см шурупы. Хотя конечно ты можешь придумать и свой корпус и сделать его из любого другого материала.
Шаг 2: Паяем электронику
Хотя в телефоне много мелких компонентов, которые монтируются к плате, тем не менее, немного наловчившись, вполне можно спаять все это руками.
Хотя процесс припоя большинства компонентов не сложен, есть некоторые моменты на которые нужно обратить внимание:
Конденсаторы: будь осторожен с полярностью больших конденсаторов (1000 uf), они могут взорваться если паять их обратной стороной. Для ориентира обращай внимание на оранжевую полосу.
Полярность: другие компоненты с полярностью: включая супер конденсатор, диоды, микроконтроллер ATmega1284P, M10 GSM модуль, сокет SIM карты, микрофон. Компоненты без полярности: микрофон, кнопки, малые конденсаторы, резисторы.
Шаг 3: Прошиваем
Шаг 4: Решаем проблемы со связью
В телефоне много компонентов, которые ответственны за работу с сетью, их не верная настройка может повлечь проблемы с подключением к сети. Если на дисплее не исчезая светится Connect, можно быть уверенным что то то пошло не так. Ниже я приведу одни из самых частых причин подобного поведения. Если же ты вовсе не видишь на дисплее ничего, то нужно проверить места спайки компонентов, и убедится в том, что софт встал как нужно и без ошибок.
Что нужно проверить:
Не забыл ли ты вставить SIM карту?
Корректно ли припаян сокет SIM карты? А 22 омный резистор (тот, который соединяет сокет сим карты и GSM модуль)? Все ли в порядке с GSM модулем?
Корректно ли припаяна антенна?
Резистор на 0 ом корректно ли припаян? (тот, что на соединении M10 GSM модуля и антенны)
Попробуй выйти из помещения в место с точно хорошим сигналом.
Шаг 5: Использование телефона
Вот и настал таки тот самый радостный момент, когда можно начать звонить подругам и друзьям 🙂
По крайней мере, я надеюсь что у тебя все получилось! Однако осталось еще буквально пара моментов.
Блокировка телефона.
Чтобы заблокировать телефон нажми левую верхнюю кнопку. В таком состоянии он по прежнему будет принимать смс и звонки.
Звонки.
Для совершения звонков просто набери нужный номер и нажми Call (все как на обычном телефоне), для удаления вводимых цифр используй кнопку *.
Шаг 6: Делаем корпус
Корпус я сделал из шпона на лазерном чпу. Нужно быть очень внимательным с размерами, так чтобы в корпус поместилась плата и конечно чтобы на задней и передней частях совпадали места с отверстиями. Схему корпуса можно найти на GitHub (ссылка).
Ну что, кажется аппарат для дозвона на Луну готов 🙂
Мобильный телефон своими руками. Часть 1
Недавно на хабре был пост про то, как некие умельцы из Массачусетсого Технологического создали «самодельный» мобильный телефон. Я думаю, пришла пора доказать, что наши месье тоже знают толк в из… э… в изысканных удовольствиях.
Итак, представляю вашему вниманию мобильный телефон, собранный практически «на коленке»!
Всех заинтересованных прошу под кат. Много картинок!
В связи со значительным объёмом материала статья будет в двух частях. В первой части будет приведено описание аппаратной части, а во второй части будут рассмотрены AT-команды модуля и приведены примеры их использования.
Итак, начнём.
Краткое описание
«Сердцем» телефона является GSM-модуль Quectel M10, обладающий широкими функциональными возможностями, включая как телефонную связь, так и передачу данных. Также устройство имеет источник питания, позволяющий питать устройство от источника 12В (например, свинцово-кислотного аккумулятора), интерфейс RS-232, клавиатуру, антенну, держатель SIM-карты и разъём подключения гарнитуры.

Модуль M10-TE-A
Начнём с блока питания
Блок питания
Блок питания обеспечивает питание устройства напряжениями +4,1В (ток до 2А), +5В (ток до 500 мА), +3,3В (ток до 100 мА). Напряжение 4,1В нужно для питания GSM-модуля. GSM-модули предъявляют весьма высокие требования к источнику питания. Источник питания модуля должен иметь напряжение от 3.4 В до 4.5В при токе до 2А, при этом амплитуда пульсаций при скачкообразном изменении тока нагрузки от нуля до максимума не должна превышать 400мВ. На рис. 1 показана допустимая амплитуда пульсаций питающего напряжения при работе модуля.
Рис. 1. Допустимые пульсации напряжения питания при работе GSM-модуля.
Изначально предполагалось, что устройство будет содержать микроконтроллер с напряжением питания 3.3 В и дисплей, для питания подсветки которого нужно будет напряжение 5В. На данном этапе предположим, что ток по каналу 5В не превышает 0.5А. Входное напряжение источника питания выберем равным 12В. Схема электрическая принципиальная приведена на рис. 2.
Рис. 2. Схема источника питания (pdf)
Схема не лишена недостатков, и в основном использует то, что было у меня «под рукой». Для серийной продукции такое решение, конечно, мало подходит, но для экспериментов вполне годится. Не будем подробно останавливаться здесь на работе этой схемы и на расчетах номиналов, так как они элементарны и подробно описаны в документации на соответствующие микросхемы.
Итак, собираем схему на макетной плате (рис. 3) и проводим испытания под нагрузкой, при этом контролируя температуру тепловыделяющих элементов. Испытания пройдены успешно.
Если вы собираетесь использовать только GSM-модуль, без других узлов, то источники +5В и 3,3В не нужны.
Рис.3. Плата источника питания
Плата клавиатуры
Схема платы клавиатуры практически без изменений взята из документации на модуль. Однако, уже после того, как она была собрана, оказалось, что ряд кнопок не поддерживается данной версией модуля. В принципе, можно вообще не подключать клавиатуру к модулю, все действия с модулем можно производить с помощью AT-команд через UART.
Схема клавиатуры приведена на рис. 4. Диоды служат для защиты модуля от статического напряжения.
Рис.4. Схема клавиатуры (pdf)
Рис.5. Плата клавиатуры
Плата GSM-модуля
Переходим к основной плате.
Так как устройство собрано на макетной плате, я решил использовать не модуль Quectel M10, который распаивается на плате, а его «производную», модуль с модулем M10-TE-A, имеющий разъём IDC с шагом контактов 1,27мм (двухрядная розетка). Антенна подключается к специальному маленькому разъёму (GSC) через переходник GSC-SMA. В серийном устройстве, на нормальной плате, разумеется, имеет смысл использовать обычный модуль M10. Следует иметь в виду, что M10 и M10-TE-A имеют разную нумерацию выводов, поэтому схему также придётся скорректировать.
Рис.6. Схема платы GSM (pdf)
Схема содержит модуль, держатель SIM-карты, разъем для подключения гарнитуры, разъем клавиатуры и пару микросхем: интерфейс RS-232 и вспомогательную микросхему для подключения к модулю пъезоизлучателя и светодиода. Никаких особых схемотехнических изысков здесь нет, практически всё взято из документации на модуль.
Ещё пара слов про подключение клавиатуры. Так как ряды ROW3, ROW4 и столбец COL4 не используются модулем, я решил задействовать их для кнопок включения и выключения модуля.
Дисплея телефон тоже не имеет. Хотя модуль имеет выводы для прямого подключения дисплея, его всё равно нельзя подключить, так как эта функция (как и многие другие) отключена у модулей, поступающих в открытую продажу.
Для питания часов реального времени используется ионистор (конденсатор ёмкостью 1Ф, большая круглая штука на плате). Если часы не нужны, его можно не устанавливать.
Сборка
Итак, пришла пора собрать наш конструктор:
Рис. 8. Всё готово к сборке
Рис. 9. Телефон в сборе
Теперь можно вставить SIM-карту, подключить питание, подключить телефон к компьютеру через COM-порт и приступить к исследованию AT-команд.
Пара слов про бюджет.
Бюджет
Модуль Quectel M10-TE-A 665,64 р.
Антенна 120 р.
Держатель SIM-карты SCV-W2523X-06-LF 21,80р
Кабель-переходник GSC-SMA — 161,86р.
Остальные комплектующие найдены в радиусе трёх метров.
В заключение первой части
В следующей части будут рассмотрены AT-команды, поддерживаемые модулем.
Ссылки
К сожалению, на сайте производителя представлена далеко не полная информация о модуле. Большая часть pdf-файлов не выложена в открытый доступ, тем не менее, в сети можно найти некоторые из них. Я взял на себя труд собрать эти файлы и выложить для скачивания.
1. M10_ATC_V1.03.pdf — справочник по AT-командам модуля M10
2. M10_EVB_UGD_V1.01.pdf — описание отладочной платы на базе модуля M10
3. M10_GSM_Module_Specification.pdf — краткое описание модуля M10
4. M10_HD_V1.02.pdf — Hardware Design
5. M10-TE-A_HD_V1.01.pdf — описание платы на основе модуля M10
6. GPRS_Startup_UGD_V101.pdf — установка модема в Windows
7. GSM_UART_AN_V100.pdf — подключение устройств к UART
8. RF LAYOUT_AN_V1.0.pdf — подключение антенны к модулю
9. GSM_Location_ATC_V10.pdf — запрос координат и времени
Документы, описывающие работу с FTP, HTTP, MMS, SMTP и TCP/IP соответственно:
10. GSM_FTP_ATC_V100.pdf
11. GSM_HTTP_ATC_V100.pdf
12. GSM_MMS_ATC_V101.pdf
13. GSM_SMTP_ATC_V11.pdf
14. GSM_TCPIP_AN_V101.pdf
PS. Если у вас не открываются ссылки, попробуйте скачать здесь:
PDF (одним архивом)
Схемы (одним архивом)
Без слежки и закладок. Как собрать свой мобильник и почему это проще, чем кажется
Содержание статьи
Все началось с того, что некоторое время назад я собирал для себя телефон на модуле связи GSM. Современная электроника была размещена в винтажном корпусе с внешней трубкой и дисковым номеронабирателем (помнишь ли ты еще, как ими пользоваться?). Увы, из-за непродуманной схемы звонить с него было неудобно.
Тогда я решил предпринять вторую попытку, но уже с новой концепцией. Хотелось создать компактное устройство, выполняющее функции простого кнопочного телефона и при этом пригодное к практическому использованию. В идеале заряда даже от небольшого аккумулятора должно хватать минимум на неделю. Никаких лишних сервисов, подозрительных приложений и надоедливых уведомлений, только самое необходимое — звонки, SMS и телефонная книжка.
Проект демонстрировался на Chaos Constructions 2019 и, к моему (приятному) удивлению, вызвал интерес у широкой аудитории. Многим было любопытно узнать внутреннее устройство мобильного телефона, поэтому сегодня я подробно расскажу, как можно собрать подобный гаджет самостоятельно.
WARNING
Увы, система сотовой связи по умолчанию позволяет операторам следить за абонентами практически в режиме реального времени и с точностью порядка двадцати метров (за счет триангуляции с нескольких вышек). C учетом российской практики выдачи симок в обмен на паспортные данные, ситуация выглядит печальной. На самом деле уйти из-под надзора телекоммуникационных компаний тоже возможно, но такие способы выходят за рамки этой статьи.
Блок-схема компонентов
Сперва определимся с требованиями к устройству: нам нужно совершать исходящие звонки, принимать входящие, читать и писать SMS (в том числе на кириллице) и управлять контактами в телефонной книге. Это базовая функциональность, которую пользователи ожидают от кнопочных телефонов. Конечно, это далеко не полный список и тут не хватает как минимум встроенных игр (змейки или тетриса), но их легко будет добавить уже на финальном этапе.
Ключевым компонентом устройства станет модуль сотовой связи SIM800C. Он содержит полный радиотракт, аудиотракт и реализует основные функции работы с сетью GSM. Иными словами, это практически готовый мост GSM-UART, который нуждается лишь в управлении через внешний терминал.
Для этого нам потребуется экран, клавиатура и какой-нибудь микроконтроллер для выполнения основной программы. В качестве экрана я использовал дисплейный модуль ST7735 с разрешением 128 на 160 пикселей. К нему у меня уже была готовая библиотека, которая позволяла отрисовывать символы и графические примитивы. По большому счету выбор дисплея некритичен для проекта, и ты можешь использовать любой другой с подходящей диагональю.
Клавиатура с шестнадцатью кнопками реализована на сдвиговых регистрах (пара восьмибитных микросхем 74HC165 (PDF). Также ты можешь использовать их отечественный аналог — микросхемы компании «Интеграл» КР1533ИР9. В любом случае выход таких регистров представляет собой неполноценный SPI, так как даже при отключении они не переходят в высокоимпедансное состояние. Поэтому вместо аппаратной и совмещенной с дисплеем шины SPI для них использовалась программная реализация.
Управлять всем будет микроконтроллер семейства STM32. Так как особого быстродействия не требуется, подойдут даже бюджетные решения. Я остановил свой выбор на F103C8T6 (PDF), его ресурсов тут должно хватить с избытком. Кроме того, именно на таком микроконтроллере выпускается известная модельная линейка отладочных плат BluePill (прекрасное средство для избавления от Arduino-зависимости). Это позволило собрать прототип и протестировать работу компонентов практически с самого старта.
Некоторые микросхемы F103C8T6 имеют 128 Кбайт памяти вместо заявленных по документации 64 Кбайт. Однако это относится к недокументированным возможностям, и рассчитывать на «лишний» банк памяти не стоит.
Позже (и в качестве приятного бонуса) я решил добавить в проект внешнюю постоянную память W25Q32 (PDF) на 32 Мбит. Это позволило не перезаписывать флеш самого микроконтроллера и хранить все контакты отдельно. Кроме того, появилась возможность загружать на телефон картинки, символы и прочие элементы растровой графики.
Сама схема мобильного телефона достаточно стандартная и в комментариях вряд ли нуждается. SIM800C включается при подаче низкого уровня на вывод REST (используется транзистор Q1, соединенный с контактом PA0 микроконтроллера). Дополнительно светодиоды VD2 и VD3 указывают на состояние радиомодуля. VD2 мигает при успешном подключении, тогда как VD3 горит все время, пока SIM800C активен.

Компоненты размещены на двух односторонних печатных платах, преимущественно поверхностным монтажом. Первая плата содержит радиомодуль, микроконтроллер, микросхему внешней памяти и разъемы для подключения антенны и динамика. Вторая плата целиком и полностью отдана под клавиатуру. Собранная конструкция помещается в корпус из оргстекла и закрепляется на стойках М3.
Питается наше устройство от литий-полимерного аккумулятора на 1500 мА · ч. Его емкость примерно в два раза ниже, чем у современных флагманских смартфонов, но и ее хватает примерно на неделю в режиме ожидания (потребление около 6 мА) или на сутки активного пользования (потребление около 40 мА).
Вообще говоря, большая часть использованных электронных компонентов сейчас доступна в виде готовых оценочных плат или модулей. Поэтому, если тебе не хочется возиться с разводкой плат и пайкой микросхем, ты можешь собрать все на беспаечных макетках.
Настраиваем UART
Сегодня существует масса вариантов для программирования микроконтроллеров. Это и различные языки (С/С++, Rust), и самые разнообразные прикладные библиотеки, абстрагирующие разработку от аппаратного уровня (HAL от ST Microelectronics, Arduino Core и другие). Я использовал в проекте каноничный C и открытую libopencm3.
Полный комплект исходных файлов проекта доступен в репозитории на GitHub.
Первым делом следует инициализировать UART1, ведь именно он отвечает за общение с радиомодулем. Параметры стандартные: 115 200 бод и 8N1.
Работа с экраном
Как и любую другую периферию, дисплей перед использованием предстоит инициализировать. Конечно, сегодня подходящий код можно найти и в интернете, но я решил написать реализацию самостоятельно. Это не отнимет много времени, зато позволит лучше узнать возможности микросхемы ST7735. Я ориентировался на документацию (PDF) производителя и брал за основу готовые примеры в псевдокоде.
Продолжение доступно только участникам
Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте
Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее
Как сделать настоящий телефон своими руками
Как создать свой мобильный телефон
Все началось с того, что некоторое время назад я собирал для себя телефон на модуле связи GSM. Современная электроника была размещена в винтажном корпусе с внешней трубкой и дисковым номеронабирателем (помнишь ли ты еще, как ими пользоваться?). Увы, из-за непродуманной схемы звонить с него было неудобно.
Тогда я решил предпринять вторую попытку, но уже с новой концепцией. Хотелось создать компактное устройство, выполняющее функции простого кнопочного телефона и при этом пригодное к практическому использованию. В идеале заряда даже от небольшого аккумулятора должно хватать минимум на неделю. Никаких лишних сервисов, подозрительных приложений и надоедливых уведомлений, только самое необходимое — звонки, SMS и телефонная книжка.

По мнению всех ведущих специалистов с мировым именем, тут десять баллов из десяти по шкале ремонтопригодности
Проект демонстрировался на Chaos Constructions 2021 и, к моему (приятному) удивлению, вызвал интерес у широкой аудитории. Многим было любопытно узнать внутреннее устройство мобильного телефона, поэтому сегодня я подробно расскажу, как можно собрать подобный гаджет самостоятельно.
Увы, система сотовой связи по умолчанию позволяет операторам следить за абонентами практически в режиме реального времени и с точностью порядка двадцати метров (за счет триангуляции с нескольких вышек). C учетом российской практики выдачи симок в обмен на паспортные данные, ситуация выглядит печальной. На самом деле уйти из-под надзора телекоммуникационных компаний тоже возможно, но такие способы выходят за рамки этой статьи.
Собираем свой собственный смартфон

Это руководство описывает от начала до конца конструирование своего собственного смартфона. Начинается дело с печати на 3D-принтере корпуса, затем спаиваются печатные платы, всё это дело собирается, и, в конце концов, на смартфон устанавливается мобильная операционная система, и с помощью языка программирования Python она становится персонально Вашей. Вы можете ознакомиться с подробностями о данном проекте по ссылке.
Необходимые навыки: — базовые навыки пайки; — знакомство с Raspberry Pi. Или: — много свободного времени и терпения.
Шаг 1: Собираем необходимые материалы
Перед тем, как начать, давайте-ка закажем все компоненты, которые нам потребуются. Итак, вам потребуются следующие электронные компоненты и печатные платы (в России компоненты можно приобрести, например, в таких магазинах): 1. Raspberry Pi A+ 256MB 2. модуль GSM Adafruit FONA uFL Version 3. 3.5′ PiTFT сенсорный экран 4. Raspberry Pi Camera 5MP 5. преобразователь Powerboost 500 Basic 6. GSM антенна 7. 1В 8Ом динамик 8. адаптер USB — Wifi 9. электретный микрофон 10. 1200мА литий-ионная батарея 11. 4-40 x 3/8′ винты 12. M2.5 x 5mm винты 13. M2.5 x 20mm винты 14. M2 x 5mm винты 15. ползунковый переключатель 16. провода
Ну а пока вы ждете доставки заказа со всем перечисленным, можно напечатать корпус.
Шаг 2: Печатаем корпус на 3D принтере
Шаг 3: Основная сборка
Теперь давайте соединим всё вместе. На диаграмме изображен Raspberry Pi. Вместо того, чтобы сразу подключаться к нему, подключите провод к 26 контакту на PiTFT. Теперь дальше.
1. Присоедините контакт «bat» на модуле GSM (Adafruit FONA) к такому же контакту на преобразователе (PowerBoost). 2. Припаяйте провод от контакта GND (земля) на модуле GSM к такому же контакту на преобразователе. 3. Припаяйте провод от контакта GND на преобразователе к одному из контактов полузнкового переключателя. 4. Также присоедните контакт GND от преобразователя к «земле» дисплея PiTFT (Такая же распиновка первых 26 контактов, как у Raspberry Pi, обратите внимание, что стрелка и «1» обозначаются первый контакт). 5. Присоедините 5В линию от преобразователя к 5В линии дисплея. 6. Припаяйте провод от центрального контакта ползункового переключателя к контакту «EN» (Включено) на преобразователе. 7. Припаяйте провод от контакта «KEY» на модуле GSM к контакту 12 (GPIO 18) на дисплее. 8. Поместите дисплей над Raspberry Pi. 9. Перепроверьте все соеднинения!
ВНИМАНИЕ: Пока проходит тестирование, убедитесь, что 5В разъем micro USB не подключен. Raspberry Pi уже запитан от батареи.
Если вы переключите ползунковый переключатель, светодиоды на преобразователе должны загореться и Raspberry Pi должен включиться. Подсветка дисплея также должна включиться. Если у вас на SD карте Raspberry Pi настроена отправка картинки на дисплей, то она должны отобразиться на нем. В противно случае, дисплей будет просто гореть белым, что на данный момент тоже пойдет. Скорее всего, на модуле GSM не загорятся светодиоды. Чтобы его включить, удерживайте кнопку включения на нем в течении пары секунд. Или подайте сигнал на разъем GPIO 18 на Raspberry Pi в течении того же времени. Если вам удалось запитать Raspberry Pi, дисплей и модуль GSM от батареи, пора переходить к следующему шагу.
Шаг 4: Финальная сборка
Если вы попытаетесь все включить сейчас, то поведение устройства должно быть аналогичным, как на предыдущем шаге. На следующем шаге мы установим сим-карту в модуль GSM, что позволит устройству контактировать с сотовой сетью.
Шаг 5: Установка сим-карты
Теперь, когда соединение модулей завершено, можно установить сим-карту, чтобы модуль GSM мог контактировать с сотовой сетью. Данный модуль использует сети 2G для передачи данных, например T-Mobile. Обратите внимание, что модуль не работает с сетями 3G и 4G. AT&T планирует отключить поддержку 2G сетей к 2021 году, так что мы будем использовать сим-карту T-Mobile. Данный модуль GSM использует сим-карту стандартного формата, так что микро или нано сим-карты сюда не пойдут. Активируйте карту согласно инструкциям оператора. Затем установите сим-карту в модуль GSM и включите его. Если красный светодиод модуля будет моргать каждые 3 секунды, значит он подключился к сотовой сети! На следующем шаге мы установим программное обеспечение, чтобы Raspberry Pi смог общаться с модулем GSM.
Шаг 6: Установка SD карты
Закончите установку и перезапустите Raspberry Pi. Напишите startx и Raspberry Pi запустит LXDE на дисплее. Чтобы войти через HDMI, напишите:
Шаг 7: Установка Wifi
У вашего телефона нет клавиатуры, так что для доступа к устройству через консоль, нужно установить wifi для подключения по ssh. Подключите Wifi адаптер к компьютеру и настройте подключение через Wifi Config. Выключите Raspberry Pi и подключите к нему Wifi адаптер. Если вам все еще не удается подключиться к Raspberry Pi по ssh, попробуйте использовать USB концентратор. Больше информации по настройке Wifi можно найти здесь.
Шаг 8: Финальная подготовка программного обеспечения
Тестирование модуля GSM
Чтобы протестировать модуль GSM, установите minicom с помощью команды:
sudo apt-get install minicom
Должен открыться терминал по взаимодействию с устройствами через ком-порт. Если вы напишете:
в ответ должны получить «ОК». Если не получили, то проверьте все соединения. Если же получили, значит модуль GSM готов к работе.
Вы могли заметить, что текст на экране показывается боком, а не ориентируется на положение телефона. Давайте изменим это с помощью команды:
sudo nano /etc/modprobe.d/adafruit.conf
Измените в файле значение параметра «rotate» на 180.
Наконец, чтобы добавить LXDE в автозагрузку, следуйте описанию в инструкции.
Установка программного обеспечения для камеры
Теперь давайте установим программное обеспечение, которое помогает снимать фото камерой Raspberry Pi. Для начала напишите:
sudo apt-get install python-pip
sudo pip install picamera=0.8
Наконец, загружаем программное обеспечение:
git clone https://github.com/spadgenske/adafruit-pi-cam
Шаг 9: Установка TYOS
TYOS — это операционная система для мобильных устройств (Технически, модифицированная версия Raspbian — это операционная система, а TYOS — это только графическая оболочка), дающая возможность телефону отправлять и получать sms сообщения, а также делать звонки. В консоли напишите:
Для запуска TYOS напишите:
sudo python /home/pi/tyos/src/main.py
Когда TYOS запустится, убедитесь, что все работает путем отправления sms и совершения звонка. Когда вы убедитесь, что все в порядке, можно установить TYOS в автозагрузку.
sudo nano /etc/rc.local
чтобы открыть конфигурационный файл. Внизу, после текста и до строчки «exit 0», добавьте следующий текст:
sudo python /home/pi/tyos/src/main.py —power
Теперь перезапустите Raspberry Pi. TYOS должен стартовать при загрузке устройства!
Шаг 10: Собираем всё вместе
Теперь можно всё надежно упаковать в корпус. 1. Используя горячий клей, приклейте микрофон и динамик в разъемы под них. 2. Используя винты M2, закрепите камеру. Потребуется соединить ленточным кабелем камеру и Raspberry Pi, так что разместите ее подходящим образом. 3. Используя винты M2.5, закрепите Raspberry Pi вместе с установленной SD картой и адаптером Wifi вниз корпуса. 4. Присоедините ленточный кабель камеры с Raspberry Pi. 5. Также используя винты M2.5, закрепите модуль GSM с сим картой в корпус. 6. При укладке проводом убедитесь, что они не мешают никакой другой электронике. 7. Оберните преобразователь изолентой, чтобы избежать короткого замыкания. 8. Поместите преобразователь и батарею между Raspberry Pi и дисплеем. 9. С помощью горячего клея приклейте ползунковый переключатель в разъем, предназначенный для него вверху корпуса. 10. Используя винты 4-40, соедините верхнюю и нижнюю часть корпуса вместе. 11. Проверьте все соединения.
Мои поздравления! Вы только что собрали свой собственный смартфон! Если вам не по душе телефон, называющийся «tyfone», можете поменять лого в /home/pi/tyos/graphics/logo.png на любое, какое пожелаете.
Блок-схема компонентов
Сперва определимся с требованиями к устройству: нам нужно совершать исходящие звонки, принимать входящие, читать и писать SMS (в том числе на кириллице) и управлять контактами в телефонной книге. Это базовая функциональность, которую пользователи ожидают от кнопочных телефонов. Конечно, это далеко не полный список и тут не хватает как минимум встроенных игр (змейки или тетриса), но их легко будет добавить уже на финальном этапе.
Ключевым компонентом устройства станет модуль сотовой связи SIM800C. Он содержит полный радиотракт, аудиотракт и реализует основные функции работы с сетью GSM. Иными словами, это практически готовый мост GSM-UART, который нуждается лишь в управлении через внешний терминал.
Для этого нам потребуется экран, клавиатура и какой-нибудь микроконтроллер для выполнения основной программы. В качестве экрана я использовал дисплейный модуль ST7735 с разрешением 128 на 160 пикселей. К нему у меня уже была готовая библиотека, которая позволяла отрисовывать символы и графические примитивы. По большому счету выбор дисплея некритичен для проекта, и ты можешь использовать любой другой с подходящей диагональю.
РЕКОМЕНДУЕМ: Как создать защищенное зашифрованное устройство
Клавиатура с шестнадцатью кнопками реализована на сдвиговых регистрах (пара восьмибитных микросхем 74HC165 (PDF). Также ты можешь использовать их отечественный аналог — микросхемы КР1533ИР9. В любом случае выход таких регистров представляет собой неполноценный SPI, так как даже при отключении они не переходят в высокоимпедансное состояние. Поэтому вместо аппаратной и совмещенной с дисплеем шины SPI для них использовалась программная реализация.
Управлять всем будет микроконтроллер семейства STM32. Так как особого быстродействия не требуется, подойдут даже бюджетные решения. Я остановил свой выбор на F103C8T6 (PDF), его ресурсов тут должно хватить с избытком. Кроме того, именно на таком микроконтроллере выпускается известная модельная линейка отладочных плат BluePill (прекрасное средство для избавления от Arduino-зависимости). Это позволило собрать прототип и протестировать работу компонентов практически с самого старта.
Некоторые микросхемы F103C8T6 имеют 128 Кбайт памяти вместо заявленных по документации 64 Кбайт. Однако это относится к недокументированным возможностям, и рассчитывать на «лишний» банк памяти не стоит.
Позже (и в качестве приятного бонуса) я решил добавить в проект внешнюю постоянную память W25Q32 (PDF) на 32 Мбит. Это позволило не перезаписывать флеш самого микроконтроллера и хранить все контакты отдельно. Кроме того, появилась возможность загружать на телефон картинки, символы и прочие элементы растровой графики.
Сама схема мобильного телефона достаточно стандартная и в комментариях вряд ли нуждается. SIM800C включается при подаче низкого уровня на вывод REST (используется транзистор Q1, соединенный с контактом PA0 микроконтроллера). Дополнительно светодиоды VD2 и VD3 указывают на состояние радиомодуля. VD2 мигает при успешном подключении, тогда как VD3 горит все время, пока SIM800C активен.

Принципиальная схема устройства
Компоненты размещены на двух односторонних печатных платах, преимущественно поверхностным монтажом. Первая плата содержит радиомодуль, микроконтроллер, микросхему внешней памяти и разъемы для подключения антенны и динамика. Вторая плата целиком и полностью отдана под клавиатуру. Собранная конструкция помещается в корпус из оргстекла и закрепляется на стойках М3.
Питается наше устройство от литий-полимерного аккумулятора на 1500 мА · ч. Его емкость примерно в два раза ниже, чем у современных флагманских смартфонов, но и ее хватает примерно на неделю в режиме ожидания (потребление около 6 мА) или на сутки активного пользования (потребление около 40 мА).
Вообще говоря, большая часть использованных электронных компонентов сейчас доступна в виде готовых оценочных плат или модулей. Поэтому, если тебе не хочется возиться с разводкой плат и пайкой микросхем, ты можешь собрать все на беспаечных макетках.
Смена минимальной частоты процессора
CPU на современных смартфонах может работать в нескольких доступных режимах, таких как:
В игровых смартфонах намного лучше работает система охлаждения. В них разогнан CPU, из-за чего процессоры таких устройств способны функционировать на более высоких частотах. Если запустить игру на стандартном смартфоне, как только будут преодолены пороговые значения, он начнет сбрасывать свою производительность к минимальным показателям. Это основная причина того, почему Nexus 5 проигрывал другим моделям смартфоном, имеющие такие же процессоры.
При помощи приложения App Override, пользователь устройства может заменить максимальную частоту процессора. Это можно сделать непосредственно в самих настройках CPU. После этого смартфон будет думать, что он совершил процессор троттлинга до необходимой ему минимальной частоты. На самом же деле показатели последней будут выставлены пользователем самостоятельно. Для этого нужно выполнить такие действия:
Лучше всего установить максимальную и минимальную частоту на одном и том же уровне. Таким образом, во время троттлинга смартфон будет сбрасывать показатели лишь весьма условно, не влияя на них по сути.
Телефонная книга
Как я уже говорил, информация о контактах хранится в микросхеме внешней памяти. Каждая запись занимает 32 байта: шестнадцать на номер телефона и столько же на имя абонента. Сейчас эти данные у меня записываются открытым текстом, без шифрования. Конечно, желательно использовать здесь AES или любой другой блочный шифр.
РЕКОМЕНДУЕМ: 3D-сканер из смартфона или фотокамеры
Основные возможности телефонной книги позволяют выбрать нужный номер контакта (telbook_get_number()), а также добавить или удалить уже существующий (telbook_rec_add() и telbook_rec_del()). Кроме того, можно произвести поиск имени по телефону с помощью функции telbook_find_name(). Для низкоуровневого взаимодействия с микросхемой памяти написана библиотека 25q32, которая берет на себя все нюансы аппаратной реализации.
Как сделать телефон-слайдер?
Следующий видеоролик расскажет про сборку телефона уже более похожего на настоящий. Это телефон-слайдер. У него есть два основных достоинства. Во-первых, размер. Он как у настоящего мобильника. Во-вторых, подвижные детали. Этот бумажный телефон действительно легким движением руки раскладывается как настоящий слайдер.
В ролике вас научат, как собрать из бумаги корпус этого замечательного аппарата. Но чтобы довести эту работу до конца вам придется проявить некоторую фантазию. Придумайте и сами дорисуйте, какими должны быть экран и клавиатура у нового модного слайдера. Справитесь?
Для сборки потребуется: три листа бумаги А4, узкий скотч, фломастеры.

















