Как делать телефон настоящий

Кроме десятка известных международных корпораций, телефоны выпускают сотни компаний в разных странах. Продаются не только готовые аппараты, но и всевозможные детали, микросхемы и модули.

Содержание

  • Что делаем
  • Что понадобится
  • Как спаять электронику
  • Как прошить
  • Как решить проблемы со связью
  • Как сделать корпус
  • Как пользоваться телефоном
  • 4 примера самодельных телефонов

Что делаем

Прежде чем покупать сырье, паять и прошивать, нужно решить, что мы хотим получить в итоге. Нам нужен телефон, который выполнит классический набор обязательных действий:

  • будет делать исходящие, принимать входящие вызовы;
  • будет передавать и получать SMS-сообщения;
  • станет будильником, при необходимости;
  • сохранит информацию о наших контактах;
  • покажет дату и время на экране.

Под каждую из поставленных задач понадобится свой аппаратный модуль или микропрограмма. Приступим к реализации.

Что понадобится

Вне зависимости от числа встроенных модулей для беспроводной и проводной передачи данных, любой телефон начинается с основной платы микроконтроллера.

Готовая микросхема

Вы можете не изобретать велосипед, а сразу взять готовую микросхему Arduino GPRS Shield SIM900 или GSM Shield 2 со встроенным антенным модулем. Она уже включает:

  • Модули для взаимодействия с базовыми станциями сотовых операторов с помощью стандарта GSM в диапазонах частот 850-960 МГц и 1805-1880 МГц. Это покроет все поставленные задачи для общения, обмена текстовыми сообщениями.
  • GPRS-модем, который работает с вышеуказанным модулем GSM. Потенциально, плата сможет скачивать со скоростью до 85,6 Кбит/ секунду.

Как сделать настоящий телефон своими руками

Arduino GSM Shield стоит 4-5 тысяч рублей, а GPRS Shield SIM900 в 1-2 тысячи рублей на декабрь 2019 года. Разница между GPRS Shield SIM900 и GSM Shield 2 лишь в том, что у первой модели антенна прикручивается отдельно в разъем, а во втором варианте этого не нужно.

Тем, кому важны дополнительные возможности в виде поддержки UMTS (3G), LTE (4G), позиционирования GPS/ГЛОНАСС, Bluetooth или Wi-Fi, стоит посмотреть на другие микроконтроллеры или просто припаять нужные передатчики к плате Arduino.

Экран

К плате нужен экран. Его можно присмотреть на специализированных сервисах. Лучше выбирайте светодиодные DIY Матрицы. Их легче настроить, а мы не ставим цели сделать смартфон для просмотра изображений или интернет-страниц.

Как сделать настоящий телефон своими руками

Существуют сразу готовые варианты плат, со встроенным небольшим текстовым экраном и всеми модулями передачи данных. Один из них, DIY Cellphone, LED Matrix. На декабрь 2019 года мы нашли эту плату за 3778 рублей, смотрите по ссылке.

Также нам понадобятся транзисторы, резисторы, кнопки, микрофон, динамики, USB-разъем и литий-ионная батарея. Полный список смотрите в подготовленном нами документе здесь. В результате вы должны уложиться в 10 тысяч рублей.

Не меняйте размер предусмотренной для передачи данных, антенны, без понимания физики процесса. Ее длина напрямую связана с частотами передачи и приема сигнала. При спонтанном изменении размеров антенны, увеличивается коэффициент стоячей волны (КСВ) и ухудшаются приемо-передающие качества. Больше не значит лучше.

В итоге у вас есть три варианта:

  1. Купить одну готовую плату, в которую уже встроены все модули, экран, клавиатура.
  2. Купить частично готовую плату, на которую нужно допаивать экран, клавиатуру и не только.
  3. Купить голый микроконтроллер и все нужные элементы отдельно, а затем спаять в единый блок.

Какой вариант выбрать, решайте сами, исходя из количества свободного времени, денег, мастерства и желания. Чем меньше действий от вас требует выбранное решение, тем дороже оно будет стоить. Дешевле всего – купить готовый смартфон в магазине.

Если денег не хватает, а паять вы умеете, попробуйте отпаять нужные детали от своих старых смартфонов. Это не только сэкономит бюджет, но и время на ожидание посылок с комплектующими.

Как спаять электронику

Для пайки понадобится стандартный набор инструментов – сам паяльник, припой, щипцы. При работе, обращайте внимание на 2 момента:

  • Полярность, ошибка возможно будет стоить деталей. Например, конденсатор может рвануть.
  • Схемы плат создатели указывают в документации для конкретных модулей, например, клавиатуры.

Паять можно не только платы, но и внешнюю антенну для того, чтобы получить качественный сигнал. В качестве сырья подойдут медный провод, металлические диски и штыри. Как спаять усиливающую внешнюю сотовую антенну для телефона или 3G-модема смотрите в видео.

Как прошить

Чтобы прошить самодельный телефон, заранее предусмотрите на плате разъем для подключения к компьютеру, ноутбуку или специальному программатору. Как правило такой порт уже предусмотрен, если вы покупаете частично готовую плату. Производители уже предполагают, что вам придется ее программировать через внешние устройства.

Для прошивания понадобится еще один посредник, даже если вы пользуетесь компьютером, — программатор. Приведем два, для примера:

  • ATAVRISP2, поставляется с собственным ПО, подключается к компьютеру через USB-разъем;
  • USBASP – подходит для сторонних программ для прошивки микросхем, подключается аналогично предыдущему варианту, для соединения с микросхемой использует 10-контактный интерфейс ISP.

Для работы используйте одну из программ:

  • AVRdude;
  • AVRdude_Prog;
  • Bascom-AVR;
  • Khazama AVR Prog;
  • eXtreme Burner AVR.

Они поддерживают современные операционные системы семейств Windows, Mac, Linux. Не все перечисленные программы русифицированы.

Попробуйте запрограммировать AVR с помощью языков Assembler или Си.

Как решить проблемы со связью

Причин проблем со связью 6:

  • некачественный припой;
  • некачественные материалы узлов, в том числе разъема для SIM карты;
  • отсутствие или неверное расположение SIM-карты в разъеме;
  • неверно подобранные характеристики антенны;
  • ошибки при программировании;
  • отсутствие связь в районе использования.

При самостоятельной работе, часто связь не ловит из-за неверно подобранной антенны. Один и тот же модуль не сможет одинаково эффективно принимать сигналы на разных радиочастотах. Поэтому не стоит пытаться использовать UMTS-антенну, которая работает на 2110-2170 МГц для приема GSM на 890-960 МГц, если производитель не предусмотрел этого.

Как сделать корпус

Главная цель корпуса – защитить хрупкие внутренние узлы, сохранив управляемость, понятность интерфейса и эстетичность.

При работе удобнее использовать материалы, из которых легко вырезать объекты нужных форм с подходящими выемками и разъемами. Например, дерево или пластик. Для красоты покройте основной защитный материал декоративными, например, кожей.

Также можно работать с металлом, алюминием, стеклотекстолитом 0,5 мм и тонким оргстеклом.

Отверстия по корпусу должны позволять всем узлам работать эффективно – не стоит закрывать устройство металлом со всех сторон, это заметно ухудшит приемо-передающие качества GSM-передатчика. Также озаботьтесь отверстиями под кнопки, микрофон, динамики в нужных местах.

Если не хотите делать внешнюю оболочку вручную, возьмите ее со старого телефона или закажите со специальных порталов. Главная проблема – уместить внутренности внутри готового корпуса, зафиксировать их и расположить в соответствии с готовыми отверстиями.

Вы всегда можете делегировать работу, по конструированию корпуса для вашего творения сторонним организациям. С помощью высокоточного лазера, они ровно вырежут изделие по вашим меркам или измерят все сами.

Как пользоваться телефоном

Использование handmade телефона ничем не отличается от привычных всем действий на коммерческих смартфонах. Клавиатура передает информацию о номерах, сообщениях или контактах, экран позволяет читать выводимые данные.

4 примера самодельных телефонов

Приведем четыре известных примера самодельных мобильных устройств.

DIY Cellphone

Простой телефон в деревянном корпусе с простым светодиодным линейным дисплеем и небольшими кнопками. Он сделан на основе готовой платы с матричным диодным дисплеем. Получилось лаконично, ударостойко, но непривычно для современных владельцев.

Как сделать настоящий телефон своими руками

Вместо красного строчного экрана, можно установить монохромный от старых моделей Nokia. Общая стоимость комплектующих 200-250$ на декабрь 2019.

Достоинства и недостатки DIY Cellphone

Преимущества Недостатки
Деревянный корпус выдерживает удары Неудобные кнопки без надписей
Корпус легко вырезать Работает только в GSM-сетях
Встроенная антенна За итоговую стоимость комплектующих можно купить обычный смартфон

PiPhone

Модель с внешней антенной и цветным дисплеем выглядит привычнее в 21 веке, чем DIY. PiPhone выполнен на основе микроконтроллера Raspberry Pi. Все коммуникации узлы, припаяны и подключены отдельно. Размер экрана – 2,8 дюйма, а корпус создатель решил не устанавливать вовсе.

Результат вышел на 50-100$ дешевле предыдущего, но вряд ли он выдержит аналогичные нагрузки, что и DIY.

Из цены мобильного устройства на микроконтроллер ушло 40$, на сенсорный экран – 35$, на батарею (2500 мАч) – 15$, модуль беспроводной передачи данных в диапазонах стандарта GSM – 48$, преобразователь, кабели и разъемы – оставшаяся сумма.

Как сделать настоящий телефон своими руками

Смотрите видео эксплуатации PiPhone.

Достоинства и недостатки PiPhone

Преимущества Недостатки
Цветной дисплей Отсутствие корпуса
Дешевле аналогов Внешняя антенна на хрупком разъеме

Phoenard

Монохромный сенсорный телефон в дизайне нулевых годов второго тысячелетия. Корпусом выступает передний прозрачный пластик, который покрывает все, кроме дисплея.

Как сделать настоящий телефон своими руками

Гаджет выполнен на базе микросхем Arduino, о которых мы писали в начале статьи. К плате, кроме GSM-передатчика, также припаяны GPS-приемник с Bluetooth-модулем. Умельцам удавалось сделать из самоделки даже mp3-плеер. Функции обычного телефона устройство выполняет без труда.

Phoenard – универсальный прибор, из которого получится сделать не только удобный смартфон. В пятиминутном Youtube-ролике, умельцы делают из Phoenard различные устройства, в том числе монитор биения сердца, внутренний компьютер велотренажера и электронную барабанную установку.

Достоинства и недостатки Phoenard

Преимущества Недостатки
Широкий диапазон возможностей Не защищен от ударов
Сенсорный дисплей 2.6 дюйма Не цветной дисплей
Защитный пластиковый корпус

Kevin Lynagh

Kevin Lynagh – не название телефона, а имя автора безымянного устройства, которое он представил в 2015 году. Его отличительные черты – отсутствие дисплея и беспроводная зарядка.

Программист-разработчик начал с подбора чипа, выбор пал на Qeuctel UC15. При поиске модуля для передачи данных стандартов GSM и UMTS, он купил Rubra Penta-band SMD. Для работы Кевин использовал плату контроллера Atmel ATMEGA1284-AUR за 8$.

Программная оболочка для устройства написана на объектно-ориентированном языке программирования C.

Кевин Линах получил двойку по курсу электротехники в Высшем Учебном Заведении.

Корпус устройства Кевин вырезал из дерева, покрыл кожей с обратной стороны. На всю работу программист потратил 15 суток в сумме.

Как сделать настоящий телефон своими руками

Чтобы пользователь понимал процессы, происходящие внутри мобильного устройства без экрана, разработчик установил на нем серию диодных индикаторов, мигая, они оповещают пользователя.

Достоинства и недостатки устройства

Преимущества Недостатки
Беспроводная зарядка Отсутствует дисплей
Передача данных в диапазонах 2G и 3G Большие трудозатраты для сборки и прошивки устройства.
Крепкий деревянный корпус

Создание уникального телефона не обойдется дешевле покупки нового смартфона в офисе продаж. Вы сможете сделать простой, крепкий аппарат, с ограниченным вами набором функций, который не взломают злоумышленники, потому что взламывать нечего. Творите и следуйте рекомендациям техники безопасности при пайке.

Сегодня мы сделаем вполне себе рабочий, хотя и довольно простой в плане функционала, мобильный телефон.

Вот перечень тех функций, которые будет поддерживать наш телефон:

  • — Принимать и делать звонки
  • — Принимать и отправлять СМС
  • — Хранить записную книжку
  • — Показывать время
  • — Будить в заданное время

Телефон будет работать в GSM сетях и использовать обычную SIM карту. Он будет сконструирован на базе железа и софта входящего в комплект Arduino GSM Shield (можно купить на амазоне, ~90$ за новый, и 70$ за б/у). Однако Arduino GSM Shield это просто набор голых плат, в них мало веселья, нам же нужен настоящий телефон, с интерфейсом, кнопками, микрофоном, дисплеем и т.д. Детальное описание железа и софта можно найти на open source проекте размещенном на GitHub (Железо и Софт)

Зачем я делаю этот проект? Отчасти потому что это весело, и отчасти потому что, хотя телефоны и стали за последние 10-15 лет вездесущими, очень малый процент людей догадывается и понимает как они работают, и как они устроены. С виду они кажутся сложными, но на самом деле собираются также как электро чайник или микроволновка. А так как телефоны вездесущи и популярны, в мире полно компаний которые выпускают нужные нам комплектующие.

Проведя пару вечером за компьютером я натыкался на места где можно было бы купить все элементы по довольно низким ценам в малом количестве, и для их сборки не нужно было дополнительное оборудование, только твои, надеюсь умелые руки. Возможно я что то упростил, и конечно придется приложить немного усилий для сборки телефона, но поверь мне, собрать его гораздо проще, чем получить степень по физике.

За прошлый год я собрал несколько версий такого телефона, и использовал их как свой основной девайс. Плюс я проводил занятия с другими любителями электроники, на которых мы также собирали разные вариации этого телефона. Тебе не понадобиться иметь каких то особых знаний в электронике, а вот умение конфигурировать софт, паять мелкие компоненты, иметь навыки в лазерной резке — все это пригодится. Хотя если ты этого раньше не делал, все равно попробуй, но будь готов к тому, что будет немного сложнее. Хотя все же я бы посоветовал приступать к проекту только если у тебя уже есть навыки в пайке и в работе с вещами от Arduino, или ты можешь найти кого-то с опытом.

Шаг 1: Материалы и комплектующие

Платы можно заказать от OSH Park. Стоимость комплекта из 3 штук ~60$.

Компоненты для плат можно купить в одной из этих компаний: Digi-Key, SparkFun и Ardunio. Полный список комплектующих тут — PDF. Общая стоимость порядка 135$ + доставка.

Для сборки платы понадобится конечно же паяльник (пример), припой, щипцы и т.д. Для программирования микроконтроллера понадобится AVR программатор (например такой) и usb кабель (пример). Для зарядки батареи понадобится mini-USB. Если у тебя нет ничего из этого, и ты не планируешь создавать дома полноценную лабораторию, то обратись в местный кружок юных техников, скорее всего у них есть все что тебе нужно, и они не откажут тебе в просьбе поработать с их оборудованием в обмен на хрустящие купюры или банку меда :)

Для корпуса нам понадобится фанера 6 мм (только не покупай фанеру на которой видны следы клея, при работе с лазером он может возгореться), шпон, ~1.5 см шурупы. Хотя конечно ты можешь придумать и свой корпус и сделать его из любого другого материала.

Шаг 2: Паяем электронику

Хотя в телефоне много мелких компонентов, которые монтируются к плате, тем не менее, немного наловчившись, вполне можно спаять все это руками.

Хотя процесс припоя большинства компонентов не сложен, есть некоторые моменты на которые нужно обратить внимание:

Конденсаторы: будь осторожен с полярностью больших конденсаторов (1000 uf), они могут взорваться если паять их обратной стороной. Для ориентира обращай внимание на оранжевую полосу.

Полярность: другие компоненты с полярностью: включая супер конденсатор, диоды, микроконтроллер ATmega1284P, M10 GSM модуль, сокет SIM карты, микрофон. Компоненты без полярности: микрофон, кнопки, малые конденсаторы, резисторы.

Шаг 4: Решаем проблемы со связью

В телефоне много компонентов, которые ответственны за работу с сетью, их не верная настройка может повлечь проблемы с подключением к сети. Если на дисплее не исчезая светится Connect, можно быть уверенным что то то пошло не так. Ниже я приведу одни из самых частых причин подобного поведения. Если же ты вовсе не видишь на дисплее ничего, то нужно проверить места спайки компонентов, и убедится в том, что софт встал как нужно и без ошибок.

Что нужно проверить:

Не забыл ли ты вставить SIM карту?
Корректно ли припаян сокет SIM карты? А 22 омный резистор (тот, который соединяет сокет сим карты и GSM модуль)? Все ли в порядке с GSM модулем?
Корректно ли припаяна антенна?
Резистор на 0 ом корректно ли припаян? (тот, что на соединении M10 GSM модуля и антенны)
Попробуй выйти из помещения в место с точно хорошим сигналом.

Отладка

Ты можешь продолжить отладку телефона коммуницируя с GSM модулем с компьютера, используя микроконтроллер как прокси. Для этого загрузи на телефон по кабелю SerialProxy, открой его на компьютере и укажи скорость передачи данных равной 9600, а в качестве окончания строки — «carriage return». Через пару секунд ты должен увидеть: «READY
AT
OK». Это говорит о том, что GSM модуль готов принимать AT команды. Детальное описание команд можно найти в документации к GSM модулю.

Базовые команды:

AT — тестовая команда, должна вернуть ОК.
AT CREG? — проверка статуса регистрации в сети. Ответ вида: » CREG 0,N», где N может быть 0 (устройство не зарегистрировано), 1 (регистрация пройдена), 2 (поиск сети), 3 (запрос на регистрацию отклонен), 5 (регистрация пройдена, роуминг)
AT CPBS=»SM» — выбор телефонной книги сим карты.

Шаг 5: Использование телефона

Вот и настал таки тот самый радостный момент, когда можно начать звонить подругам и друзьям :)
По крайней мере, я надеюсь что у тебя все получилось! Однако осталось еще буквально пара моментов.

Разблокировка телефона.

При первом успешном запуске телефон будет заблокирован, его экран будет пустым. Для активации нажми любую кнопку, на экране высветится дата и время, теперь нажми верхнюю левую кнопку — ура, телефон разблокирован.

Блокировка телефона.

Чтобы заблокировать телефон нажми левую верхнюю кнопку. В таком состоянии он по прежнему будет принимать смс и звонки.

Звонки.

Для совершения звонков просто набери нужный номер и нажми Call (все как на обычном телефоне), для удаления вводимых цифр используй кнопку *.

Недавно на хабре был пост про то, как некие умельцы из Массачусетсого Технологического создали «самодельный» мобильный телефон. Я думаю, пришла пора доказать, что наши месье тоже знают толк в из… э… в изысканных удовольствиях.
Итак, представляю вашему вниманию мобильный телефон, собранный практически «на коленке»!

Всех заинтересованных прошу под кат. Много картинок!

В связи со значительным объёмом материала статья будет в двух частях. В первой части будет приведено описание аппаратной части, а во второй части будут рассмотрены 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)

И сама плата:

Рис.7. Плата GSM

Схема содержит модуль, держатель 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 (одним архивом)
Схемы (одним архивом)

Самодельный мобильный телефон / Habr

В салонах сотовой связи выбор мобильных телефонов очень ограничен: либо совсем «тупые» звонилки, либо смартфоны с большими экранами. Но зачем покупать мобильный телефон в магазине, если можно сделать свой собственный телефон? Так подумал американский программист Кевин Линах (Kevin Lynagh) — и воплотил мечту в реальность.

В презентации на конференции !!Con 2015 Кевин рассказал, как ему это удалось.

Имея двойку по электронике в университете, Кевину было трудно разобраться. Но он всё-таки начал сборку с электронных компонентов. Первым делом, подобрал мобильный чип: Qeuctel UC15.

Затем изучил устройство USIM-карты.

Выбрал антенну GSM/UMTS: это Rubra Penta-band SMD. И заказал плату, на которую будет крепиться всё хозяйство.

Потом пришло время подумать о программной части: мобильник должен реагировать на нажатия клавиш, светить светодиодами, опрашивать мобильный чип насчёт звонков, определять низкий уровень заряда батарей, наличие связи с базовой станцией и т.д. Софт работает на 8-битном микроконтроллере Atmel ATMEGA1284-AUR стоимостью $8,03. За эту цену мы получаем контроллер на 11 МГц и 128 КБ памяти для программ. Это настоящее богатство. Как говорит автор, программы написаны на C в стиле Harel Statecharts. Отсутствие операционной системы избавляет от лишней головной боли.

Корпус телефона сделан из кожи и натурального дерева: самые практичные материалы.

Вся электроника отлично помещается внутри.

У самодельного мобильника нет дисплея, который только зря потребляет расход аккумулятора. Зато у него есть беспроводная зарядка.

Кевин Линах говорит, что работа заняла у него 360 рабочих часов. Немало. Но оно стоило того. Сделать мобильный телефон своими руками — что может быть интереснее?

Самый простой способ как сделать своими руками настоящий сотовый телефон

По правде говоря, в настоящий момент нет логических целей для того, чтобы собирать мобильник своими руками. Особенно учитывая то, что самый простой покупной мобильник будет стоить дешевле. Но, тем не менее, изучение — это очень важный аспект процесса сборки. Более того, владение мобильником, который ты создал сам — это очень крутая идея для поделки.

Большинство из нас владеют мобильными, как и я. И после нескольких успешных проектов я задумался над тем, что создание мобильника своими руками будет хорошим вызовом. Я прекрасно осознавал, что у меня не получится воссоздать весь функционал современного телефона, но осуществление звонков и, возможно, отправка смс, вполне меня устраивала.

Шаг 1: Планирование

В качестве вдохновения я использовал проекты, найденные в интернете:

Another
Raspberry phone
Arduino phone
Adafruit FONA

Модуль сотового GSM

Самый главный компонент телефона — модуль GSM. После сёрфинга по интернету, я обнаружил, что на Ибэй можно найти такой модуль (модели SIM800L) по очень неплохой цене и при этом почти не придётся ничего паять. Моей целью было не устранить пайку вообще, но уменьшить время на паяльные работы в целом. Как впоследствии оказалось, Adafruit использует такой же чип SIM800L и, к моему удивлению, их код заработал сразу и без каких-либо модификаций.

Adafruit FONA

Модуль работает на частотах 850/900/1800/1900MHz, позволяя ловить радио в диапазоне FM и много другое. Радио не было важным для меня, но, возможно, в будущем я добавлю этот функционал. Важными функциями являются осуществление звонков, получение и отправка СМС и этого вполне достаточно.

В качестве бонуса, купленный модуль обладает антенной. На другом конце платы есть модуль для сим-карт, что также делает жизнь проще (не придётся производить мелкую и затратную по времени пайку).

Провода динамика “+” (SpkP) и “-” (SpkN) соединяются напрямую с SIM800L. То же касается и микрофона. “Net” — для антенны, но так как она уже встроена в плату, место оставлено пустым. “Vbat2” для соединения с “+” батарейки. “GND” – для соединения с ground на Arduino и “-“ на батарейке. “RST_sim800”, “RXD” и “TXD” соединяются с Arduino. “DTR” — не знаю для чего, оставил открытым.

Экран

В одной из инструкций использовался экран Nokia, в то же время я не очень хотел использовать LED-экран, таким образом, я решил использовать экран от Nokia, но LCD.

После некоторых изысканий, я обнаружил, что экраны Nokia испытывают проблемы из-за слишком высокого напряжения. На Sparkfun я выяснил, что при напряжении 5 вольт, нужно использовать резисторы. Напряжение источника питания должно быть 3,3V.

Нужно использовать резистор на 10 кОм между пинами SCLK (CLK), DN (DIN), D/C (DC), и RST. А с пином SCE (CS) нужно использовать резистор на 1 кОм. Для подсветки рекомендуется минимум 330 Ом. Для одних и тех же пинов могут использоваться разные обозначения: SCLK=CLK; DN=DIN; D/C=DC; SCE=CS.

Для экрана нужно 3.3 Вольта, поэтому необходимо использовать конвертер DC-DC. Все пины соединяются с Ардуино, который работает от 5 Вольт. Для того чтобы увеличить срок жизни экрана, между пинами нужно включить резисторы (смотрите схему: “Hand1_R4 – R8”).

Кнопки

Расположение кнопок схоже с расположением на множестве старых телефонов. Эта схема очень разумна.

Клавиатура состоит из 16 кнопок. Для использования всех 16 кнопок понадобится большой микроконтроллер или слегка более продвинутая клавиатура.

С использованием технологии разделения напряжения, клавиатуру можно подключить, используя лишь один аналоговый пин.

Шаг 2: Макетная плата — Кнопки

Создание клавиатуры с использованием разделителя напряжения достаточно просто и может быть очень легко рассчитано. Разделитель напряжения можно найти на схеме. Принцип очень прост, но фактические значения raw_data (напряжения), которые должны соответствовать нажатию разных кнопок слегка отличаются от теоритических вычислений.

В теории можно использовать лишь вычисления, но я обнаружил, что более точно будет замерить напряжение на готовой системе, а затем доработать скрипт. Это означает, что нужно донастраивать скрипт каждый раз, когда меняется система.

Рассчитанные и измеренные значения raw_data показаны на приложенной таблице. Как можно заметить, выходит довольно большое отклонение, особенно на уровне низкого напряжения. Используемые резисторы имели погрешность до 5%, что и привело к такому результату.

Шаг 3: Макетная плата — Микроконтроллер

Мозг телефона планировалось собрать с использованием Arduino Pro-Micro. Плата дешевая, но достаточно мощная для наших нужд. У этой платы есть много преимуществ, и она может быть напрямую соединена с компьютером посредством USB. Это облегчает обновление кода и зарядку батареи (так как в ней есть готовый порт micro-USB).

Но в реальной жизни не всё так просто и она оказалась несовместимой с SIM800L. Я не знаю почему, но она не работала, хотя физически всё было соединено. Мне пришлось заменить Pro-Micro обычным Arduino UNO и всё заработало как надо.

Схема соединения Ардуино прикреплена выше. Также UNO использовался для окончательного дизайна соединения пинов, кроме D14-D16 (которые я всё равно не использовал)

Шаг 4: Макетная плата — Экран

Как говорилось выше, я использовал экран Nokia 5110.

Пин 7 экрана управляет подсветкой. Подав на него напряжение 3.3V можно включить подсветку. Я купил на Ибэй несколько экранов от разных производителей и один из них отличался. Этот экран требовал заземления пина для того, чтобы подсветка заработала. У экрана уже были резисторы, поэтому отпала нужда в последовательных резисторах (Hand1_R3). На макетной плате такое было легко доработать, но я обнаружил эту особенность после заказа печатной платы, поэтому данный факт был слегка раздражающим.

Шаг 5: Макетная плата — Питание

Для питания устройства я использовал литий-полимерную батарейку, напряжение с батареи подавалось напрямую на сотовый модуль (SIM800L). Сотовый модуль мог требовать до 2A и работал при напряжении 3.7 — 4.2 Вольт, также как и батарейка.

Для печатной платы я не использовал сколь бы то ни было сложной системы зарядки батареи. Я использовал обычную батарейку 18650 LiPo и соединил её напрямую с SIM800L.

Ардуино УНО питался от USB кабеля.

3.3 Вольта на экран подавались напрямую с УНО, поэтому не было нужды в дополнительных элементах.

Шаг 6: Макетная плата — Софт

[фото]

Большинство софта я написал сам, поэтому он был не очень хорошего качества, медленный и без сильного функционала. Но каждый из вас может улучшить его.

Для клавиатуры я нашел неплохой код от OtakuSanel. Я сильно модифицировал его код, но основа осталась та же, если сырые значения верны, то для проверки клавиатуры можно использовать приложенный файл (T-keyBoardTest1.ino).

Простую программу для коммуникации с SIM800L можно найти на adafruit (FONAtest в примерах). Вам может потребоваться лишь настроить пины. Также потребуется скачать библиотеки из Adafruit FONA. На этом шаге экран не нужен и вся коммуникация проходит через последовательный порт.

Простая программа для осуществления звонков также прилагается ниже (T-mobile_OnlyCalling.ino). Код был доработан для меня, так что он не слишком лёгкий для понимания.

Файлы
Файлы

Шаг 7: Мобильник на макетной плате

Первую систему тестирования я разработал для клавиатуры, затем для модуля SIM800L, а затем для всего этого и экрана. Перед заказом печатной платы я хотел быть уверенным, что я могу получить доступ ко всем модулям, и что компоненты подходят друг к другу. В предыдущих случаях я старался пропустить шаг с макетной платой и сразу купить печатную плату, но такие платы часто имели ошибки в проектировании.

Шаг 8: Прототип печатной платы

После того, как макетная плата была собрана и работала без ошибок, я сразу сделал дизайн для печатной платы. Несколько вещей, которые я не полностью испытал и не предполагал о них вначале, сделали результат не таким продуманным, как я надеялся, но в итоге я смог заставить свой мобильник работать. Далее я рассмотрю все трудности, возникшие после сборки печатной платы.

Микроконтроллер

Как говорилось выше, я собирался использовать в качестве контроллера Pro-Micro. В моих предыдущих проектах Pro-Micro и UNO были полностью совместимы, и с их заменой не было никаких проблем. Поэтому я не делал никаких специальных тестов с Pro-Micro перед тем, как заказал плату.

Когда печатная плата была доставлена, я был очень рад, припаял батарейку, Pro-Micro и SIM800L и попытался включить устройство. Но связи не было. Я поверил всё мультиметром, и всё выглядело так, будто должно работать. Я сделал отдельные тесты на макетной плате и получил тот же результат — нет связи…

Я решил, что просто использую UNO вместо Pro-Micro, и тогда не будет никаких проблем, тем не менее, мне пришлось спаять много проводов от слотов (расчитаных для Pro-Micro) к плате UNO.

Питание

Контроллер был не единственной проблемой.

Я планировал увеличить напряжение (с 3.7-4V до 5.0V) при помощи чипа RT9261A. Этот чип сам по себе не может держать большую силу тока. Поэтому он управляет небольшим переключателем BJT-NPN. Напряжение NPN фильтруется через резистор и конденсатор. Значения находятся непосредственно в таблице данных.

Конвертер работал хорошо без нагрузки, но, когда я подал на него минимум 0.1 мА, напряжение тут же упало до напряжения батарейки. Конвертер не был способен справиться с задачей. К счастью, я оставил небольшую площадку для подключения готового конвертера (купленного на Ибэй). Этот конвертер работал хорошо, но выходное напряжение было 5.2V. Это не очень серьёзная проблема, но я вернусь к ней в части о кнопках.

Конвертер вскрыл еще одну проблему, о которой я раньше не задумывался. Он издавал высокочастотный шум. Пока плата лежала на столе — это не было проблемой, но при совершении звонка я слышал этот звук.

Для питания экрана мне требовалось 3.3V. Это осуществлялось при помощи DC-DC конвертера PAM2305 (“Hand1_VoltReg1”). Опять же, это очень простое устройство и оно требует для работы только наличия индуктора (“Hand1_L2”). Конденсатор “Hand1_C3” нужен для стабилизации напряжения.

Кнопки

Кнопки работали хорошо в версии с макетной платой. Я надеялся, что то же самое будет и с печатной платой, но всё оказалось не так просто. Во-первых, из-за того, что соединения были другими, напряжение тоже поменялось. Мне пришлось перенастраивать эти значения в скрипте.

Я перенастроил сырые значения, в то время как UNO был подключен к компьютеру. С подключенным кабелем всё работало хорошо. После отключения кабеля кнопки тут же перестали работать. Почему? Я задал себе такой же вопрос.

Это очень интересная проблема. Мой конвертер на выходе имел 5.2V, но UNO ссылался на значения до 5.0V. Таким образом, напряжение последних двух кнопок было уже за пределами шкалы измерения (у обеих сырые значения были 1023). Другие кнопки можно было перенастроить и они бы заработали заново, но у меня не было возможности использовать кнопки “*” и “#”. На самом деле это не очень большая проблема, но мне есть над чем задуматься в следующий раз.

Фильтр

На других схожих проектах на микрофоне и динамике всегда находились фильтры. Понимая, для чего могут быть полезны фильтры, я не слишком задумывался и просто скопировал всё как есть. Оба фильтра почти одинаковые.

После сборки печатной платы я тут же обнаружил, что с динамиком происходит что-то странное. Он в принципе не работал. После того, как я убрал фильтр — он заработал. Что-то в управлении было спроектировано неверно и вызвало эти трудности. По крайней мере, это было моей ошибкой, и я учёл это.

Как оказалось, дизайн без фильтров работает достаточно хорошо, и для начала можно было не беспокоиться об этом.

Софт

Основная программа осталась той же, но сырые данные для кнопок нужно поменять на каждом устройстве. Главная проблема в коде связана с его основным циклом. Я планировал, что при нажатии кнопки “A” всё будет отменяться — если идёт входящий звонок, или я звоню, или я набрал чей-то номер, всё должно вернуться в начальное состояние. Но в реальности так не происходит и, чтобы отменить или закончить разговор, нужно выключить питание. Небольшая проблема в коде.

Для измерения напряжения на кнопках есть еще один набросок, на этот раз значения отображаются на экране 5110 Nokia.

Файлы

Шаг 9: итоги

Несмотря на то, что мой дизайн содержал несколько ошибок и подводных камней, мне удалось модифицировать всё таким образом, чтобы телефон заработал.

Делаем номер телефона на сайте кликабельным

С каждым годом стремительно растет количество интернет-пользователей, использующих мобильные платформы. И чтобы не потерять своего клиента, необходимо предоставить посетителю возможность позвонить прямо сейчас.

Современные мобильные браузеры могут автоматически делать номер телефона на сайте кликабельным, но это работает не всегда (из-за разных написаний номера телефона).

Наверное, многие из вас сталкивались с такой ситуацией, когда, заказывая какой-либо товар в интернет-магазине, приходилось уточнять некоторые вопросы по телефону. И для этого приходилось записывать номер телефона магазина на листочек / телефон друга, потом снова набирать в свой телефон, и только после этих манипуляций удавалось позвонить. А если телефон поддержки вдруг оказывался недоступен, приходилось всё это проделывать заново.

Именно для того, чтобы решить эту проблему, был разработан способ, который отвечает на вопрос «Как правильно указывать номер телефона на сайте». Давайте разберемся, как разместить телефон на сайте и сделать его кликабельным.

Сделать номер телефона кликабельным можно с помощью обыкновенной ссылки, но со специальным адресом:

<a href="tel:+78142332211">+7(814)-233-22-11</a>

Или:

<a href="tel:+7 (8142) 33 22 11">Позвоните нам</a>

То есть в атрибуте href должно быть указано: tel: и номер телефона в формате, который вам нужен.

Выглядеть это будет так:

+7(814)-233-22-11

После этого пользователи мобильных устройств смогут просто кликнуть на ссылку и, не совершая дополнительных действий, позвонить вам. Теперь можно добавлять номер телефона в блок контактов на вашем сайте.

Кроме кликабельного номера телефона, есть возможность добавить кликабельную ссылку на ваш Skype:

<a href="skype:test123">Skype</a>

Или можно добавить ссылку для звонка со Skype на телефон:

<a href="callto:+78142332211">Позвонить нам с помощью Skype</a>

Как сделать кликабельный номер телефона на сайте

Современный мобильный телефон — не просто средство для связи с людьми, а полноценный ежедневник, банк, библиотека и даже рок-концерт. Поэтому большое количество бизнес процессов завязано на приложениях, специально разработанных для смартфонов.

Кликабельный номер на сайте — функция, без которой вы рискуете открыть воронку по утечке клиентов вместо конверсионного действия в мобильной версии сайта. Чтобы нажать на номер и связаться с вами, нужно не больше двух действий. Чтобы связаться с вами без кликабельного номера, нужно не меньше пяти действий: копировать, свернуть браузер, перейти в режим набора, вставить, вызов.Кликабельный номер телефона на сайте, иллюстрация CallibriКликабельный номер телефона на сайте, иллюстрация Callibri

А если человеку нужно позвонить в несколько десятков компаний? Найти свободный столик в ресторане для ужина с семьей или просто срочно найти доставку какой-нибудь еды? Он сэкономит время и найдет похожие условия на сайте конкурентов, которые не заставят его тратить время на copy/past. 

Если вам все еще нельзя позвонить в один клик, эта инструкция для вас. Как сделать номер телефона кликабельным, не потерять при этом стили оформления и таким образом поднять конверсию сайта — об этом и пойдет речь.

Код сайта

В первую очередь рассмотрим вариант, когда у вас есть доступ к HTML-коду сайта.

Обычный номер телефона, который пока является простым текстом, в коде может выглядеть так:

<span>+7(999)888-77-66</span>

Или так (если присвоен класс):

<pnumber» name=»phone_number»>+7(999)888-77-66</p>

За гипертекст (возможность текста в коде HTML включать в себя гиперссылку) отвечает тег <a>…</a>. Атрибут href=”” отвечает за то, куда будет направлен клиент — внутри кавычек указывается адрес страницы или действие. За автоматический набор номера по клику отвечает параметр tel:ХХХ, где XXX — номер телефона без пробелов и тире.

Таким образом, для первого примера код будет следующим:

<span>

<a href=”tel:+79998887766”>+7(999)888-77-66</a>

</span>

Мы не только оставили сам текст на сайте, но и добавили к нему действие: вызов на конкретный номер.

Сделаем и второй номер кликабельным:

<pnumber» name=»phone_number»>

<a href=”tel:+79998887766”>+7(999)888-77-66</a>

</p>

Сохраняем код — вуаля, телефон стал кликабельным! 

CMS/конструктор сайтов

Если вы пользуетесь CMS/конструктором сайтов, вероятнее всего в функционале конструктора есть специальные инструменты, чтобы сделать номер телефона активным — подробнее об этом нужно узнавать в FAQ каждой платформы (например, LP, Wix, Tilda). Но есть небольшой лайфхак на случай, если этот функционал вы так и не найдете. 

Инструмент гиперссылка при форматировании текста есть в любом конструкторе сайтов. Номер — это текст, значит вы вводите его в текстовом редакторе платформы. Чтобы сделать номер телефона кликабельным, выделите текст номера, создайте из него гиперссылку, в поле адрес укажите: 

tel:+7XXXXXXXXXX

У меня коллтрекинг. Как быть?

Уух! А вы сильны, раз дочитали до этого момента. Здорово, что вы используете динамический коллтрекинг с подменой номера на сайте, но это не значит, что подменный номер не может быть кликабельным! 

Разберем на примере коллтрекинга Callibri (хотя вообще эти правила примерно так же работают для любого сервиса подмены номера). 

За подмену номера отвечает атрибут class=”callibri_phone”. Если у вас есть активный настроенный проект, на сайте установлен скрипт и каждому номеру телефона в коде присвоен атрибут class=”callibri_phone”, подмена происходит автоматически. Скрипт Callibri сам находит нужные элементы с номерами телефонов и подменяет их.

В случае, если номер телефона на сайте не кликабельный, то и подменяться будет обычный номер в виде текста. Но если на ваш номер уже можно позвонить в один клик, скрипт Callibri c помощью class=”callibri_phone” подменит и номер, указанный в атрибуте «href=»tel:XXX», на который происходит вызов. Если клиент нажмет на подменный номер, звонок также пройдет на подменный номер — вы не потеряете лид и сможете узнать откуда к вам пришёл клиент.

Код, в котором подменяется не только текст номера на сайте, но и номер для вызова, выглядит так: 

<pphone callibri_phone”>+7(999)888-77-66</p>

</a> 

В этом случае, кроме потери оформления, подмена произойдёт только для элемента <p>…</p>. Таким образом, видимый телефон в коде сайта подменится. А при клике элемент будет ссылаться на основной номер телефона, без подмены. То есть вы не узнаете, откуда пришел клиент: вместо подменного номера он позвонит по вашему основному телефону. 

Финал

Поздравляем, теперь вы достойны посвящения в мастера HTML. 

Бонус

Кстати, по этому же принципу вы можете сделать кликабельный email на своем сайте! Это важно для B2B — даже если доля мобильного трафика на сайт не очень высокая, все равно есть процент людей, которые захотят отправить вам вопрос, запросить коммерческое предложение или отправить спецификацию через мобильные устройства (смартфон или планшет). 

Чтобы email стал кликабельным, вам нужно поставить атрибут <a href=”mailto:XXX”>. А если вы пользуетесь email-трекингом, не забудьте правильно расположить атрибуты, чтобы подменялся не только текст на сайте, но и адрес отправки письма:

<a class=”callibri_email” href=”mailto:[email protected]”>[email protected]</a>

Еще больше фишек повышения конверсии сайта вы можете узнать из нашей еженедельной рассылки. В ней мы анонсируем полезные вебинары, интересные статьи и обновления сервисов. Подпишитесь на рассылку и получайте дайджест каждый вторник!

Советуем прочитать

отличные бесплатные и платные способы :: Инфониак

Как сделать свой смартфон еще умнее: отличные бесплатные и платные способыПолезные советы

Он называется смартфоном («smart» – «умный»), но на самом ли деле он настолько умен? Подавляющее большинство людей используют смартфон для навигации в социальных сетях, для прослушивания музыки, для игр, для загрузки фотографий в Instagram. Для того, чтобы это делать, смартфону не нужно много ума. Однако, по сути смартфон – это небольшой компьютер, и с ним можно делать удивительные вещи, в том числе и запускать его в космос с помощью наносателлита.

Когда же вы хотите использовать свой смартфон для различных он-лайн возможностей, вы с легкостью сможете настроить его, к примеру, на то, чтобы найти свой пропавший автомобиль, заблокировать или разблокировать свой дом, следить за своим здоровьем, связаться со своими близкими, если с вами что-то случится и т.д.

Ниже мы рассказываем о нескольких способах, с помощью которых вы можете сделать свой смартфон умнее, а свою жизнь проще. У вас есть шанс взглянуть на своё устройство с другого ракурса.

Рынок приложений просто взрывается. Сегодня для iPhone доступно около 2,2 миллиона приложений, а для Android – 2,8 миллиона.

Начнем с доступных бесплатных приложений.


Бесплатные приложения для смартфона

AirDroid

21.png

AirDroid (Android) — это одно из самых впечатляющих бесплатных приложений. Отличная функциональность, гладкий пользовательский интерфейс, а рекламные объявления относительно ненавязчивы. AirDroid позволяет вам получать доступ ко всей информации на вашем телефоне с любого компьютера, поэтому вы можете напрямую со своего ноутбука (Windows или Mac) с полноразмерной клавиатурой отправлять сообщения, получать уведомления, иметь доступ к приложениям и многое другое. AirDroid помогает минимизировать количество экранов, которые вы используете одновременно, объединяя их в одно бесшовное и эффективное устройство. 

Flipboard

22.jpg

Потому как никакой успешный бизнес не может существовать в вакууме, большинство предпринимателей уделяют много внимания информированию. Flipboard (Android, iOS) — это лучшее приложение для получения обновленной информации о том, что вас больше всего интересует. Это красивое приложение позволяет вам просматривать информацию по вашим собственным областям интересов, а затем читать о них больше в отдельных журналах.

Читайте также: Как зарядить iPhone за 5 минут?

Вы можете просмотреть все статьи, которые были отобраны для вас, или выбрать конкретный журнал для чтения. Приложение богато журналами на различные тематики, начиная от таких тем, как технология, мировая экономика, новости, и заканчивая рецептами, путешествиями и декором интерьера.

AppLock

23.jpg

Это приложение надежное и полезное. AppLock (Android) упрощает управление безопасностью отдельных приложений. Вы можете заблокировать любое приложения с помощью пароля, отдельного шаблона или сканирования отпечатков пальцев. Оно поможет скрыть личную информацию, включая фотографии и видео.

Также в этом приложении есть функция, которая позволяет автоматически заблокировать или разблокировать телефон в зависимости от местоположения. Это полезно не только для обеспечения безопасности бизнеса, но и для предотвращения потери информации. Многие люди используют один телефон как в деловой, так и в личной жизни, а умело разделять в телефоне две эти важнейшие стороны жизни намного проще с возможностями AppLock.

CamScanner

24.jpg

CamScanner на Android (CamScanner Lite на iOS) не обладает серьезным интерфейсом, но оно настолько полезно, что заслуживает особого места в этом списке. CamScanner умеет превращать ваш телефон в сканер. С его помощью вы можете сканировать документы непосредственно в формате PDF, а затем отправлять их по электронной почте.

Приложение идеально подходит и для рядового пользователя, и для предпринимателя, который регулярно занимается вопросами заключения контрактов с клиентами. CamScanner также позволяет защищать конфиденциальные данные с помощью паролей, добавлять аннотации и печатать или отправлять по факсу необходимый документ.  

Microsoft OneNote

25.jpg

Microsoft OneNote (Android, iOS) по-прежнему остается одним из лучших бесплатных приложений для телефонов. Приложение очень надёжное, это целый организационный центр, который предлагает пользователям создавать динамически расширенные памяти ноутбуков. Там могут храниться текстовые документы, фотографии, встроенные видеоролики, книги Excel и любые другие файлы данных, которые только существуют.

Читайте также: Как правильно заряжать телефон, планшет и ноутбук

OneNote работает с Outlook, что полезно для применения в бизнесе, а постоянно растущий и обновляющийся выбор инструментов управления проектами делает его не просто местом для хранения информации.


Полезные приложения для смартфона

Теперь перейдём к популярным и интересным платным приложениям.

Viper SmartStart

1.jpg

С этим приложением вы сможете делать все то, что умеет ключ от машины. Вы сможете заблокировать дверь, открыть багажник и многое другое со своего смартфона. Кроме того, вы сможете проверить в безопасности ли ваш автомобиль. Цена приложения в зависимости от комплектации 149 – 399 долларов.

Hone

2.jpg

Ключи обладают интересной особенностью исчезать именно тогда, когда вы их ищите. Hone – это устройство Bluetooth для iPhone и iPod, которое поможет вам найти свои ключи. Настройка проста – просто нужно прикрепить устройство к ключу и нажать кнопку «Найти» на своем iPhone. Устройство засветиться и «подаст голос», чтобы вы смогли его отыскать. Умное и элегантное – 49 долларов.

Lockitron

3.jpg

Lockitron не только позволит вам открыть дверь, просто коснувшись смартфона, но также уведомит вас, когда кто-то постучит в дверь. Настроив приложение соответствующим образом вы даже сможете отпирать дверь, приближаясь к ней. Долой ключи, особенно когда ваши руки заняты.  Цена – 179 долларов.

Square Register

4.jpg

Square Register – это революционное приложение, которое полностью меняют старую систему транзакций. С его помощью вы сможете использовать мобильность смартфона, чтобы принимать и совершать любые платежи по кредитным картам в любое время и в любом месте. Пользователь «подписывается» перед совершением платежа, чтобы избежать мошенничества, и информация зашифровывается.

Geode

5.jpg

Это приложение умеет конвертировать все ваши физические банковские карты, карты лояльности и членские карточки в цифровую информацию. Чтобы использовать любую из своих карт, вы можете временно передавать информацию о ней карте Geode. Нужно будет просто включить функцию активации, и пользоваться как обычно.

Вы также можете сохранить все штрих-коды своих карт лояльности и отобразить их на обратной стороне Geode. Цена 159 долларов.

Tōd

6.jpg

Используйте этот умный маяк, чтобы отслеживать местоположения вашего ребенка, любимого питомца или даже своего автомобиля. Вы сможете получать уведомления на свою электронную почту или посредством смс, когда происходит что-то незапланированное, и объект уходит от вас слишком далеко. Цена – 32 доллара.


Интересные приложения для смартфона

Pico Genie A100

7.jpg

Тяжелые и громоздкие проекторы – это прошлый век. Этот проектор такой же маленький и легкий, как и ваш смартфон, плюс он поддерживает динамики. В результате вы получаете картинку размером 1,50 м со звуком. Устройство годно не только для презентаций, но и для игр. Цена – 262 доллара.

Читайте также: Как делать красивые фотографии на телефон

Botiful

8.jpg

Вам нужно всего лишь подключить свой смартфон к роботу Botiful, и вы можете брать его с собой куда угодно и общаться с кем захотите, используя минималистический интерфейс Skype. Еще более интересен тот факт, что робот может попасть туда, куда вы просто не поместитесь, ведь малыш размером с человеческую ногу. Это поможет вам почувствовать себя вездесущим Богом! Цена – 199 долларов.

Scanbox

9.jpg

Вы можете использовать свой смартфон для сканирования кодов (к примеру, QR-коды), также с этим приложением вы получаете простой портативный сканер для выполнения объемного сканирования со стабилизированной камерой. Scanbox оснащен светодиодами, которые подсвечивают снизу для лучшего качества сканирования. Цена – 15 долларов.

NODE Chroma

10.jpg

Это интересное приложение есть ничто иное, как реалистичный подборщик цветов для Photoshop. Вы просто помещаете Chroma на цветной объект, и цвета сохранятся на вашем смартфоне или компьютере в стандартных форматах. Цена – 149 долларов.

Sensordrone

11.jpg

Это сенсорный компьютер, который собирает из окружающей вас среды жизненно важную информацию (качество воздуха, температура, влажность, утечка газа и т.д.). Он расскажет вам практически обо всем. Идеально подходит для людей с соответствующей работой. Цена – 175 долларов.

Crash Censor

12.jpg

Ваша жизнь будет более безопасной с датчиком столкновения ICEdot. Все, что вам нужно сделать, — это установить устройство на шлеме, прежде чем начать заниматься любым экстремальным видом спорта. Устройство даст знать вашим близким, если что-то случится с вами, и отправит координаты GPS для оказания помощи.

Читайте также: 8 мифов и заблуждений о смартфонах

Misfit Shine

13.jpg

Это приложение помогает отслеживать все ваши физические нагрузки в течение дня. После закрепления его на своём теле, оно будет собирать информацию и сообщит вам в конце дня, достаточно ли вы двигались, чтобы быть в форме. Цена – 79 долларов.

Приложения для отслеживания состояния здоровья

14.jpg

Контроллер артериального давления Withings Blood Pressure Monitor и фиксатор температуры тела Medisana ThermoDock помогут вам всегда быть на чеку. Ваши данные хранятся в приложении VitaDock для последующего использования. Умное управление своим здоровьем для владельцев смартфонов. Цена – 158 и 80 долларов.


Умные приложения для смартфона

Deeper

15.jpg

Вы наверняка никогда не думали о том, что смартфон сможет обнаружить рыбу под водой, но Дипер делает это возможным. Волшебство стало возможным благодаря сонару от Friday Lab, который обнаруживает движение рыбы в радиусе 50 м, и отражает будущий улов на экране вашего смартфона. Лучшее приложение для опытных рыбаков по цене 149 долларов.

Умный радиационный детектор

16.jpg

Ядерный кризис, случившийся в Японии, повысил всеобщую осведомленность о поглощении радиоактивных материалов пищей и водой. Умный радиационный детектор (Smart Radiation Detector) может обнаруживать излучение и определить его силу, чтобы помочь вам избежать зараженных ресурсов. Медики и спасатели могут использовать его для работы во время стихийных бедствий, связанных с радиационной опасностью. Цена – 100 долларов.

SkyLight

17.jpg

Это приложение подключает вашу камеру на смартфоне к микроскопу и позволяет делать снимки с возможностью переключения фокальных плоскостей одним касанием пальца. Цена – 65 долларов.

Читайте также: Топ 10 смартфонов с самой мощной батареей

Smart Baby Monitor

18.jpg

После установки Smart Baby Monitor начнет отправлять вам на смартфон потоковое аудио и видео в режиме реального времени посредством безопасного соединения. С помощью приложения WithBaby интерфейс становится еще более привлекательным, оно позволяет родителям следить за своим ребенком через беспроводное соединение. Приложение реагирует на активность ребенка, а также на температуру и влажность в помещении. Цена – 352 доллара.

Wise-PetBuilt

19.jpg

Предназначенное для защиты вашего телефона, это приложение есть ничто иное, как устройство, в котором «живут» 5 разных домашних животных с 5 различными личностями. В приложении есть и некоторые образовательные функции, к примеру, вы легко сможете активировать функцию видео или функцию записи. Цена – 20 долларов.

iPhly

20.jpg

Устали постоянно терять пульт дистанционного управления от телевизора, кондиционера, гаража или от игрушечной машинки? Храните все в одном приложении в iPhly. Цена – 70 долларов.

Как сделать из бумаги телефон — инструкция с фотографиями

Содержание статьи

Дети пытаются быть похожими на своих родителей, и повторяют практически все увиденные действия. Одним из элементов современных родителей является мобильный телефон. Но возможность приобрести телефон дорогая привилегия, а если ребенок еще не ходит в школу, то и не стоит этого делать. Для детей дошкольного возраста, телефон можно сделать из бумаги.

Как сделать из бумаги телефон, мы расскажем далее.

Плоский телефон из бумаги

Моделей телефонов в современном мире много. Самым простым вариантом игрушечного телефона из бумаги является плоская модель.

Для ее изготовления, необходимо иметь:

  • лист белого картона;
  • краски;
  • ножницы или канцелярский нож;
  • шариковую ручку с черным цветом пасты.

Собрав такие материалы инструменты можно приступать к изготовлению телефона.

Как сделать из бумаги телефон, пошаговая инструкция:

  1. Изготовление основания, начинается с разрезания картона на 2 части. После разреза, одну из частей красим в любой понравившийся цвет. Когда краска полностью высохла из заготовки вырезаем прямоугольник, размеры прямоугольника должны быть 15 см в длину и 8 см в ширину. Вторую часть заготовки размечаем на 2 прямоугольника с размерами 7 см длины и 6 см ширины. После разметки вырезаем прямоугольники.Плоский телефон (Делаем экран)
  2. Изготовление клавиатуры. Берем вырезанный прямоугольник белого цвета и чертим на нем точную копию клавиатуры кнопочного телефона. Как сделать из бумаги клавиатуру телефона, мы разобрались, теперь займемся дисплеем.
  3. Для изготовления экрана, берем второй прямоугольник белого цвета. Отступаем от верхнего края разрисованного прямоугольника 1-2 см. на этом расстояние клеим подготовленный экран. Такое же расстояние отступаем и снизу большого разрисованного прямоугольника, и клеим изготовленную клавиатуру. На экране нужно нарисовать главное меню с часами. А к клавиатуре в промежутке между экраном и самими цифрами необходимо добавить клавиши принятия вызовов и их отключение.Плоский телефон (Изготавливаем основание и клавиатуру)(Изготавливаем основание и клавиатуру)
  4. Если необходима оригинальная модель, то необходимо сзади поделки, сделать камеру, динамик и указать модель телефона. Из цветной бумаги вырезаются заготовки и клеятся на основание в необходимом месте, или используйте значки из фото готовой продукции.

Телефон простого варианта готов. Потратив еще несколько минут можно узнать, как сделать из бумаги чехол на ваш телефон, но об этом мы расскажем ниже. А сейчас изготовим более сложный вариант игрушечного телефона из бумаги.

Телефон слайдер

Более сложным вариантом бумажного телефона считается, телефон слайдер.

Телефон слайдер из бумаги

Знания о том, как сделать из бумаги обычный телефон, помогут вам в процессе изготовления такого варианта. Инструмент необходим такой же, как и в предыдущем варианте, а вот вместо картона нужна обычная плотная бумага.

Собираем выдвижной телефон:

  • берем лист бумаги, кладем его в вертикальном положении;
  • складываем;
  • возвращаем полученную заготовку в начальную форму, и прикладываем четыре угла к середине;
  • теперь переворачиваем поделку на другую сторону и сгибаем углы с этой стороны, в итоге должна получиться заготовка по форме похожая на книжку;
  • теперь, необходимо аккуратно просунуть верхние углы книжечки в нижние углы, а точней в получившиеся кармашки возле нижних уголков;
  • берем второй лист бумаги проводим манипуляцию идентичную предыдущей, но до момента переворота заготовки;
  • на этом листе проделав все пункты до переворота, нужно углы загнуть на внешней стороне;
  • откладываем вторую часть поделки в сторону и берем опять первую;
  • находим на первой заготовке поперечную линию и прокалываем ее канцелярским ножом;
  • теперь берем еще один лист бумаги, прислоняем его к первой заготовке, и отмечаем ширину завернутой части;
  • после отметки складываем лист, чтобы он помещался в надрез;
  • просовываем его в надрез, и прикладываем 2 заготовки друг к другу;
  • Когда две части телефона приложены, нужно заправить края, должна получиться цельная заготовка слайдера;
  • с помощью скотча закрепляем верхнюю часть с нижней;
  • получилась поделка похожая на телефон слайдер, нужно попробовать скользит ли верхняя часть по нижней;
  • если все работает, то приступаем к разукрашиванию поделки и рисуем на ней все необходимые приспособления.

Изготовив такую поделку единожды, вы можете рассказать, как сделать из бумаги телефон слайдер своему ребенку. Ему покажется такое занятие интересным, и естественно попробует сделать телефон самостоятельно. А при работе руками у малыша будет развиваться мелкие движения рук, творческие способности.

Ещё кстати для ребёнка можно сделать безопасный бумеранг

Раскладной телефон из бумаги

Раскладной телефон

В современном мире весьма популярны смартфоны с большими экранами и без кнопок, но не так давно были востребованы мобильные телефоны с корпусом раскладушкой. Изготовить такой телефон раскладушку достаточно легко.

Для конструирования нам понадобится три альбомных листа. Приступаем к изготовлению.

Как сделать из бумаги телефон раскладушку:

  • берем один лист сгибаем его пополам;
  • сгибаем все углы к середине листа, и у нас получается подобие компасной стрелки;
  • переворачиваем заготовку и с другой стороны загибаем края в другую сторону;
  • складываем поделку пополам;
  • получается подобие телефона;
  • внешние углы верхней части (крышки) вкладываем во внутреннее отделение, и откладываем заготовку в сторону;
  • теперь берем второй альбомный лист;
  • с ним проводим идентичную манипуляцию, но с некоторым отличием;
  • вместо переворота заготовки, проводим складывание на той же стороне, на которой начинали проводить сгибы;
  • в итоге у нас получается 2 части телефона раскладушки;
  • и так вы узнали, как сделать из бумаги части телефона раскладушки, а теперь их нужно соединить в одну цельную поделку:
  • берем третий лист бумаги, он будет выполнять соединительную функцию 2 частей;
  • учитывая длину и ширину поделки, отмеряем полоску из 3 листа;
  • одну сторону полоски надежно крепим к одной части, а вторую сторону к другой части;

Телефон раскладушка для вашего малыша готов, теперь необходимо открыть крышку, разрисовать изделие точно в форме телефона, нарисовать камеру, динамики и модель устройства. Чтобы ваш малыш больше походил на вас, можно изготовить чехол для его телефона, как сделать из бумаги чехол на телефон, вы узнаете позже.

Сконструировать своему малышу смартфон можно используя технику оригами.

Смартфон оригами

Для изготовления потребуется:

  • плотный альбомный лист;
  • фломастеры или карандаши;
  • линейка;
  • клей.

Теперь можно приступать к изготовлению.

Процесс конструирования смартфона по технике оригами:

  • кладем альбомный лист, отмеряем 1-2 см с правой стороны, и заворачиваем полоску;
  • такую манипуляцию проводим и на левой части листа;
  • сверху отмеряем 4 см и выполняем такое же действие;
  • с нижней стороны отмеряем 3-4 см и также загибаем в полоску;
  • теперь возвращаемся к верхней стороне, тут нужно полоску согнуть пополам, то есть отмечаем половину предыдущей отметки и загибаем полоску;
  • таким же образом загибаем полоску с нижней части заготовки;
  • кладем поделку к себе горизонтально и один из верхних уголков заворачиваем по направлению к центру;
  • аналогичные действия проводим с остальными уголками;
  • после загибов, все части нужно хорошо прогладить;
  • все сгибы фиксируем клеем;
  • в принципе смартфон готов, осталось нарисовать контур экрана, и разукрасить значки.

Теперь вы узнали, как сделать из бумаги телефон современной модели. Осталось только изготовить чехол к детскому гаджету.

Чехол из бумаги для телефона

Чехол для телефона можно сделать из бумаги, при этом вы сэкономите свои денежные средства и защитите свой гаджет от некоторых негативных воздействий. Такой самодельный чехол можно сделать и для игрушечного телефона, и в качестве защитной оболочки для настоящего, если вы берете его с собой на пляж. Одев его на свой смартфон, в середину не проникнет, пыль, песок и грязь.

Процесс изготовления стандартного чехла:Чехол из бумаги (Шаг 1)

Чтобы поделка выделялась своей яркостью, ее можно задекорировать. Используйте различные вырезки из журналов, наклейки, блестки, краски, иллюстрации и многое другое. Как вы убедились, что изготовить самый обычный чехол, весьма легко.Готовый чехол из бумаги

Как сделать из бумаги чехол на телефон, мы разобрались, теперь давайте изготовим картонный чехол. Используя такую конструкцию не нужно держать телефон в руках, а просто установить его на ровной поверхности, согнуть в форму поставки, и просматривать видео.

Для конструирования картонного чехла для смартфона, понадобится немного материалов:

  • картон;
  • ножницы или канцелярский нож;
  • двухсторонний скотч;
  • шаблон;
  • карандаш или маркер;
  • клей, который, кстати, можно самостоятельно приготовить.

Перед началом изготовления, отметим, что процесс начинается с разметки контуров вашего смартфона или телефона. Для этого нужно на картоне отметить именно ваш телефон, чтобы в дальнейшем совпали все отверстия для динамиков, наушников, микрофона и непосредственно самого экрана.

Процесс изготовления картонного чехла для гаджета:

Чехол из картонаЧехол из картона

  1. Берём лист картона. На нем маркером или карандашом выделяем контур телефона. При этом необходимо отступить несколько сантиметров от края. Расстояние от края зависит от толщины вашего устройства. И так один шаблон готов, по такому же принципу изготавливаем еще один шаблон.Шаблон чехла из картонаШаблон чехла из картона
  2. По завершению рисования вырезаем заготовки, но перемычку между ним не трогаем. На перемычке ручкой продавливаем линию сгиба.
  3. Теперь нам нужно закрепить свое устройство на поделке. Нужно использовать двухсторонний скотч.

Благодаря простым действиям и небольшим временным затратам, у вас получился чехол. Готовое изделие может быть использовано не только по своему прямому назначению, но и при необходимости установить технику на ровной поверхности.

В этом случае, чехол сыграет роль своеобразной подставки. Установите его на стол и просматривайте любимые видеоролики.

После изготовления детского телефона из бумаги, вы убедились, что порадовать свое чадо можно без затрат, а если изготовление телефонов и чехлов проходило с помощью малыша, то в процессе у ребенка развивается мелкая моторика, внимательность и зрительная память.

Что твой телефон знает о тебе? Насколько надежно он хранит информацию и кто имеет к ней доступ? К счастью, изготовить и запрограммировать собственный мобильный телефон теперь можно буквально за несколько дней. Что я и сделал, а теперь и тебе покажу, что для этого нужно.

Содержание

  1. Как создать свой мобильный телефон
  2. Блок-схема компонентов
  3. Настраиваем UART
  4. Работа с экраном
  5. Клавиатура
  6. Модуль GSM
  7. Телефонная книга
  8. Работа с графикой
  9. Энергосбережение
  10. Интерфейс
  11. Идеи и развитие проекта

Как создать свой мобильный телефон

Все началось с того, что некоторое время назад я собирал для себя телефон на модуле связи GSM. Современная электроника была размещена в винтажном корпусе с внешней трубкой и дисковым номеронабирателем (помнишь ли ты еще, как ими пользоваться?). Увы, из-за непродуманной схемы звонить с него было неудобно.

Тогда я решил предпринять вторую попытку, но уже с новой концепцией. Хотелось создать компактное устройство, выполняющее функции простого кнопочного телефона и при этом пригодное к практическому использованию. В идеале заряда даже от небольшого аккумулятора должно хватать минимум на неделю. Никаких лишних сервисов, подозрительных приложений и надоедливых уведомлений, только самое необходимое — звонки, SMS и телефонная книжка.

По мнению всех ведущих специалистов с мировым именем, тут десять баллов из десяти по шкале ремонтопригодности

По мнению всех ведущих специалистов с мировым именем, тут десять баллов из десяти по шкале ремонтопригодности

Проект демонстрировался на Chaos Constructions 2019 и, к моему (приятному) удивлению, вызвал интерес у широкой аудитории. Многим было любопытно узнать внутреннее устройство мобильного телефона, поэтому сегодня я подробно расскажу, как можно собрать подобный гаджет самостоятельно.

Увы, система сотовой связи по умолчанию позволяет операторам следить за абонентами практически в режиме реального времени и с точностью порядка двадцати метров (за счет триангуляции с нескольких вышек). 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.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

static void usart1_setup(void){

    /* Enable clocks for GPIO port A (for GPIO_USART1_TX) and USART1 */

    rcc_periph_clock_enable(RCC_GPIOA);

    rcc_periph_clock_enable(RCC_USART1);

    /* Enable the USART1 interrupt */

    nvic_enable_irq(NVIC_USART1_IRQ);

    /* PA9 TX,PA10 RX */

    gpio_set_mode(GPIOA, GPIO_MODE_OUTPUT_50_MHZ, GPIO_CNF_OUTPUT_ALTFN_PUSHPULL, GPIO_USART1_TX);

    gpio_set_mode(GPIOA, GPIO_MODE_INPUT, GPIO_CNF_INPUT_FLOAT, GPIO_USART1_RX);

    /* Setup UART parameters */

    usart_set_baudrate(USART1, 115200);

    usart_set_databits(USART1, 8);

    usart_set_stopbits(USART1, USART_STOPBITS_1);

    usart_set_mode(USART1, USART_MODE_TX_RX);

    usart_set_parity(USART1, USART_PARITY_NONE);

    usart_set_flow_control(USART1, USART_FLOWCONTROL_NONE);

    usart_enable_rx_interrupt(USART1);

    usart_enable(USART1);

}

После этого логично как-то организовать отправку команд на модуль. Например, c помощью сторонней реализации
printf(). Для этого используется библиотека rprintf. Ее код хорошо оптимизирован и занимает всего несколько килобайтов памяти. Библиотеку следует подправить для работы с
libopencm3, буквально несколько строк.

#38  #define UART USART1

...

#95  vfprintf_((&usart_send_blocking), format, arg);

...

#142 ch = usart_recv_blocking(UART);

Теперь модулю можно отправлять команды вида
printf_(«AT_command»), а ответ модуля принимается с использованием прерываний и сохраняется в буфер. После приема содержимое анализируется, и если это ожидаемый ответ, то вызывается функция-обработчик, которая используется для вывода сообщений SMS и USSD. Также возможен непосредственный вывод сообщения на экран, что очень удобно при отладке.

Работа с экраном

Как и любую другую периферию, дисплей перед использованием предстоит инициализировать. Конечно, сегодня подходящий код можно найти и в интернете, но я решил написать реализацию самостоятельно. Это не отнимет много времени, зато позволит лучше узнать возможности микросхемы ST7735. Я ориентировался на документацию (PDF) производителя и брал за основу готовые примеры в псевдокоде.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

static void spi1_setup(void){

    /* Enable SPI1 Periph and gpio clocks */

    rcc_periph_clock_enable(RCC_SPI1);

    rcc_periph_clock_enable(RCC_GPIOA);

    /* Configure GPIOs:

      * SCK = PA5

      * DC = PA6

      * MOSI = PA7

      * CS = PA1

      * RST = PA4

      * LED = PB0

      */

    gpio_set_mode(GPIOA, GPIO_MODE_OUTPUT_50_MHZ, GPIO_CNF_OUTPUT_ALTFN_PUSHPULL, GPIO5 | GPIO7);

    gpio_set_mode(GPIOA, GPIO_MODE_OUTPUT_50_MHZ, GPIO_CNF_OUTPUT_PUSHPULL, GPIO4 | GPIO6 | GPIO1);

    /* Reset SPI, SPI_CR1 register cleared, SPI is disabled */

    spi_reset(SPI1);

    /* Set up SPI in Master mode with:

      * Clock baud rate: 1/64 of peripheral clock frequency

      * Clock polarity: Idle High

      * Clock phase: Data valid on 2nd clock pulse

      * Data frame format: 8-bit

      * Frame format: MSB First

      */

    spi_init_master(SPI1, SPI_CR1_BAUDRATE_FPCLK_DIV_2, SPI_CR1_CPOL_CLK_TO_0_WHEN_IDLE, SPI_CR1_CPHA_CLK_TRANSITION_1, SPI_CR1_DFF_8BIT, SPI_CR1_MSBFIRST);

    /* Set NSS management to software */

    spi_enable_software_slave_management(SPI1);

    spi_set_nss_high(SPI1);

    /* Enable SPI1 periph. */

    spi_enable(SPI1);

    gpio_set(GPIOA, GPIO1);

}

В библиотеке последовательно реализованы функции отрисовки точек, линий, окружностей, печати символов и целых строк и обновления экрана. Также поддерживается вывод символов кириллицы в кодировке CP866. Ключевой компонент кода — вызов
st7735_sendchar(char* c), который позволяет последовательно выводить на экран строки, в том числе и с управляющими последовательностями. На данный момент поддерживаются символы перевода строки (
n), возврата каретки (
r), очистки экрана (
a) и бэкспейса (
b).

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

void st7735_sendchar(char ch){

    uint16_t px, py;

    gpio_clear(STPORT, STCS);

    if (ch == ‘r’) {

        pos -= pos % 26;

        return;

    }

    if (ch == ‘n’) {

        pos += 26;

        pos -= pos % 26;

        return;

    }

    if (ch == ‘a’) {

        pos = 0;

        st7735_clear(bg_color);

        return;

    }

    if (ch == ‘b’) {

        pos;

        px = (pos % 26) * 6;

        py = (pos / 26) * 8;

        st7735_drawchar(px, py, 0x20, txt_color, bg_color);

        return;

    }

    if(pos > 416) {

        pos=0;

        st7735_clear(bg_color);

    }

    px = (pos % 26) * 6;

    py = (pos /26) * 8;

    st7735_drawchar(px, py, ch, txt_color, bg_color);

    pos++;

    while (SPI_SR(SPI) & SPI_SR_BSY);

    gpio_set(STPORT,STCS);

}

По умолчанию используется зеленый текст на черном фоне. Цвета можно указать явно, с помощью вызова функции
st7735_set_printf_color(unit16_t text, uint16_t back). Кроме того, реализована дополнительная функция вывода текущего символа, который пользователь набирает на клавиатуре.

void st7735_virt_sendchar(char ch){

    uint16_t px, py;

    gpio_clear(STPORT, STCS);

    px = (pos % 26) * 6;

    py = (pos / 26) * 8;

    if (ch > 0x20)  {

        st7735_drawchar(px, py, ch, RED, bg_color);

    }

    while (SPI_SR(SPI) & SPI_SR_BSY);

    gpio_set(STPORT, STCS);

}

Она похожа на
st7735_sendchar(), но не обрабатывает управляющие последовательности и не меняет текущую позицию символа. Таким образом, вызов функции
st7735_sendchar() после
st7735_virt_sendchar() перерисует на экране символ, выведенный
st7735_virt_sendchar().

Клавиатура

Весь набор кнопок подключен через сдвиговые регистры к программному SPI. Обрабатывает пользовательский ввод библиотека
4х4key. У клавиатуры две раскладки — русская и английская, в каждой раскладке за кнопкой закреплено по четыре символа.

собрать мобильный телефон

Тут я несколько отступил от классики кнопочных телефонов нулевых годов — выбор конкретного символа определяется не количеством кликов, а длительностью нажатия. Это связано с тем, что в мобильниках обычно использовались мембранные клавиатуры, а тактовые кнопки тугие и перебирать буквы уже не так удобно.

Рассмотрим процесс обработки ввода подробнее. За опрос клавиатуры отвечает функция
get_key(). Для этого используется процедура
read_key(), которая считывает текущее состояние сдвиговых регистров и возвращает два байта информации от кнопок. Сочетаний клавиш в данный момент нет, но их можно легко добавить при необходимости.

Раскладка переключается при получении кода
0x0002, в любом другом случае возвращается код символа. В зависимости от выбранного языка значение переменной
ch_map инкрементируется.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

...

while (!key_code) {

    key_code = read_key();

}

do {

    if(key_code == 0x0002) {

        if (ch_map < 2) {

            ch_map++;

        else {

            ch_map = 0;

        }

        show_char_map(ch_map);

        while(key_code==2) key_code=read_key();

    }

    while(!key_code) {

        key_code = read_key();

    }

} while (key_code == 0x0002);

...

Теперь вызывается функция
key_map(), которая принимает на вход код клавиши и номер текущей раскладки. Она ищет нужный символ в массиве
char_map и возвращает результат. Логика дальнейшей обработки ввода зависит от полученного символа.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

...

if (key == ‘n’) {

    delay(500);

} else if (key == ‘b’) {

    delay(500);

} else if(key == ‘ ‘) {

#ifdef ECHO

    st7735_virt_sendchar(key);

#endif

    delay(800);

    timer_start();

    old_keycode = key_code;

    do {

        key_code = read_key();

        if (key_code){

            if (key_code == old_keycode) {

                count++;

                if (count > 15) {

                    count = 0;

                }

                wait_key_counter = 0;  

            } else {

                count = 0;

                break;

            }

            key = keymap2(count, 2);

#ifdef ECHO

            systick_interrupt_disable();

            st7735_virt_sendchar(key);

            systick_interrupt_enable();

#endif

            delay(900);

    }

} while (wait_key_counter < 1000);

timer_stop();

...

Обработчик клавиатуры вышел сложнее, чем мне бы хотелось, но зато я получил практически все необходимые символы на шестнадцати клавишах, что довольно удобно. Однако в некоторых случаях хотелось бы мгновенной реакции на нажатие кнопок: например, когда вызываются пункты меню или принимается входящий вызов. Для этих целей реализована отдельная функция
fast_get_key(), которая работает с усеченным массивом символов.

char fast_get_key() {

    uint16_t key_code;

    char key;

    while (!key_code) {

        key_code=read_key();

    }  

    key = keymap(key_code, 0);

    while (read_key()) {

         __asm__(«nop»);

    }

#ifdef ECHO

    echo(key);

#endif

    return key;

}

Теперь, когда есть дисплей и клавиатура, от создания терминала нас отделяют только функции
stprintf() и
kscanf(). Они были реализованы с помощью уже упоминавшейся библиотеки
rprintf, но изменений тут потребовалось чуть больше.

int stprintf(const char *format, ) {

    va_list arg;

    va_start(arg, format);

    stprintf_((&st7735_sendchar), format, arg);

    va_end(arg);

    return 0;

}

С функцией
kscanf() все несколько сложнее, так как у нас есть две функции получения символа с клавиатуры. Поэтому придется объединить их в одну, организовав переключение ввода между
get_key() и
fast_get_key(). Заодно добавим поддержку управляющего символа
b.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

void set_scanf_mode(unsigned char mode) {

    fast_mode=mode;

}

int kscanf(const char* format, ) {

    va_list args;

    va_start( args, format );

    int count = 0;

    char ch = 0;

    char buffer[kscanf_buff_size];

    kscanf_buffer = buffer;

    while (count <= kscanf_buff_size ) {

        if(fast_mode) {

            ch = fast_get_key();

        } else {

            ch = get_key();

        }

        if (ch == ‘b’) {

            if (kscanf_buffer > buffer) {

                kscanf_buffer;

            }  

            continue;

        } else {

            count++;

        }

        if (ch != ‘n’ && ch != ‘r’) {

            *kscanf_buffer++ = ch;

        else {

            break;

        }

    }

    *kscanf_buffer = »;

    kscanf_buffer = buffer;

    count =  ksscanf(kscanf_buffer, format, args);

    va_end(args);

    return count;

}

Таким образом мы реализовали систему ввода-вывода и теперь имеем практически полнофункциональный терминал. Например, чтобы очистить экран и вывести традиционное приветствие, достаточно написать строчку

stprintf(«aHello World!»);

Модуль GSM

Рассмотрим работу с SIM800 на примере с отправкой SMS, остальные функции ведут себя аналогично. Будем использовать текстовый режим, так как он более наглядный. Дополнительно для отправки сообщений на кириллице нужно заранее настроить кодировку.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

void sim800_init_cmd() {

    printf_(«AT+CMGF=1rn»);

    for (uint32_t i = 0; i < 0xFFFFFF; i++) __asm__(«nop»);

    printf_(«AT+CSCS=»UCS2″rn»);

    for (uint32_t i = 0; i < 0xFFFFFF; i++) __asm__(«nop»);

    printf_(«AT+CSMP=17,167,0,8rn»);

    for (uint32_t i = 0; i < 0xFFFFFF; i++) __asm__(«nop»);

}

void fast_sms_send(char *text, char *tel) {

    char *p_tel;

    char u_tel[64]=«+7»;

    char temp[512];

    if (tel[0] == ‘8’) {

        p_tel = tel + 1;

    } else if (tel[0] == ‘+’) {

        p_tel = tel + 2;

    } else {

        p_tel = tel;

    }

    strcat(u_tel, p_tel);

    strcpy(temp, text);

    cp866_to_utc2(temp);

    cp866_to_utc2(u_tel);

    stprintf(«aSend smsrnAT+CMGS=»%s»rn%sx1A», u_tel, temp);

    printf_(«AT+CMGS=»%s»rn», u_tel);

    for (uint32_t i = 0; i < 0xFFFFFF; i++) __asm__(«nop»);

    printf_(«%sx1A», temp);

}

Теперь можно использовать в коде что-то осмысленное и понятное, например

fast_sms_send(«Hello world!», «89162402484»);

Попробуем передать строку на кириллице, предварительно включив нужную кодировку:

void write_sms() {

    char text[256];

    char tel[13];

    uint8_t ret_code;

    stprintf(«aSMS writer v0.01rn»

                    «Enter the sms textrn»

                    «>»);

    kscanf(«%s», text);

    ret_code = telbook_get_number(tel);

    if(!ret_code) {

        return;

    }

    fast_sms_send(text, tel);  

}

К слову, здесь в качестве номера контакта используется запись из телефонной книги. Думаю, о ней стоит рассказать чуть подробнее.

Телефонная книга

Как я уже говорил, информация о контактах хранится в микросхеме внешней памяти. Каждая запись занимает 32 байта: шестнадцать на номер телефона и столько же на имя абонента. Сейчас эти данные у меня записываются открытым текстом, без шифрования. Конечно, желательно использовать здесь AES или любой другой блочный шифр.

РЕКОМЕНДУЕМ:
3D-сканер из смартфона или фотокамеры

Основные возможности телефонной книги позволяют выбрать нужный номер контакта (
telbook_get_number()), а также добавить или удалить уже существующий (
telbook_rec_add() и
telbook_rec_del()). Кроме того, можно произвести поиск имени по телефону с помощью функции
telbook_find_name(). Для низкоуровневого взаимодействия с микросхемой памяти написана библиотека 25q32, которая берет на себя все нюансы аппаратной реализации.

Работа с графикой

Что можно еще попробовать, располагая цветным дисплеем и несколькими мегабайтами свободной памяти? Ну конечно же, вывод изображений, это само просится! Мобилка легко переваривает файлы ВМР с разрешением 128 на 160 и глубиной цвета в 16 бит. Картинки хранятся во внешней микросхеме и отображаются на экран с помощью функции
img_from_flash(), которая принимает адрес начала массива пикселей. Структура формата очень простая, но, если ты ее забыл, всегда можно почитать про заголовок и смещение в интернете.

создать мобильный телефон

Изображение на экран выводится частями с использованием буфера на стеке. В каждом проходе 4096 байт считываются из памяти в буфер, а потом пересылаются на экран. Конечно, можно заметить, что у F103C8T6 есть контроллер DMA, который предназначен именно для таких задач. Но, так как у нас нет возможности статически разместить весь буфер кадра в памяти, выигрыш от использования DMA здесь будет минимальным.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

void img_from_flash_v3(uint32_t addr) {

    uint8_t bufer[4096];

    gpio_clear(STPORT, STCS);

    st7735_sendcmd(ST7735_MADCTL);

    st7735_senddata(1 << 7);

    while (SPI_SR(SPI) & SPI_SR_BSY);

    gpio_set(GPIOA, STCS);

    for(uint8_t i = 0; i < 10; i++) {

        w25_read(addr + (i * 4096), bufer, 4096);

        st7735_drawimg(0,0+16*i,128,16, bufer);

    }

    gpio_clear(STPORT, STCS);

    st7735_sendcmd(ST7735_MADCTL);

    st7735_senddata(MV | MX);

    while (SPI_SR(SPI) & SPI_SR_BSY);

    gpio_set(STPORT, STCS);

}

Разумеется, перед тем как обращаться к изображениям в памяти, предварительно их следует туда все же записать. Для этого используется UART2 и протокол xmodem. На принимающей стороне я обрабатываю данные функцией
xmodem_to_flash(), которой передается адрес начала файла во флеше.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

void xmodem_to_flash(uint32_t addr) {

    unsigned char buf[132];

    uint32_t byte = 0;

    uint8_t lastlen, ch;

    usart2_init();

    usart_send_blocking(USARTX, NAK);

    while(1){

        ch = usart_recv_blocking(USARTX);

        if (ch == SOH){

            for (uint8_t i = 0; i < 131; i++) {

                ch = usart_recv_blocking(USARTX);

                buf[i]=ch;

            }

            lastlen=129;

            while(buf[lastlen] == EOF);

            lastlen -= 1;

            w25_write(addr + byte, buf + 2, lastlen);

            byte += lastlen;

            usart_send_blocking(USARTX,ACK);

            continue;

        }

        if (ch == EOT){

            usart_send_blocking(USARTX, ACK);

            break;

        }

    }

    usart2_deinit();

}

Таким образом, для записи файла с компьютера я начинаю передачу с помощью терминальной программы (например, minicom), после чего любым удобным способом вызываю функцию
xmodem_to_flash().

Энергосбережение

Малое время автономной работы — слабое место современных смартфонов, в том числе даже флагманских аппаратов. В своем проекте я использовал несколько способов сокращения энергопотребления.

В первую очередь посадим на сухой паек радиомодуль. Команда
AT+CSCLK=1 и высокий уровень на выводе DTR переводят SIM800C в спящий режим (
sim800_sleep()). При этом все еще сохраняется возможность принимать входящие вызовы и SMS, но для передачи команд с микроконтроллера нужно вновь подать низкий уровень на DTR и выждать порядка 50 мс (
sim800_wake()). В таком режиме потребление составляет всего несколько миллиампер.

Подсветка дисплея тоже потребляет немало, так что на время ожидания логично отключать и ее (функции
st7735_sleep() и
st7735_wake()). Однако основной выигрыш электроэнергии получается за счет перевода микроконтроллера в режим глубокого сна, это позволяет сэкономить дополнительные 30 мА.

void standby (void) {

    SCB_SCR |= SCB_SCR_SLEEPDEEP;

    PWR_CR |= PWR_CR_PDDS;

    PWR_CR |= PWR_CR_CWUF;

__asm__(«WFI»);

}

Заключительная строчка кода (Wait For Interrupt) переводит F103C8T6 в режим ожидания, из которого он выходит, только когда наступает прерывание. В нашем случае это подача низкого уровня на вывод REST микроконтроллера.

Интерфейс

Интерфейс устройства текстовый и реализован достаточно просто. При вызове соответствующего меню очищается экран и появляется подсказка с функциями клавиш. После этого ожидается пользовательский ввод, и цикл повторяется. Все функции меню собраны в отдельном файле
menu.c.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

void main_help_menu(void) {

    stprintf(«aHELPrn»

                        «~ — ATArn»

                        «! — ATHrn»

                        «1 — data menurn»

                        «2 — call menu rn»

                        «3 — img menurn»

                        «4 — power menurn»

                        «5 — sim800 menurn»

                        «6 — helprn»

                        «7 — sim800 PWRrn»

                        «8 — sleeprn»

                        «9 — sleep logorn»

                        «* — tel bookrn»

                        «0 — sms menu»);

}

void get_keybord_cmd(void) {

    char bufer[64];

    uint32_t addr,  l, n = 4096;

    char key;

    key=fast_get_key();

    switch (key){

        case ‘1’: data_menu(); break;

        case ‘2’: telbook_menu_v2(); break;

        case ‘3’: img_menu(); break;

        case ‘4’: power_menu(); break;

        case ‘5’: sim800_menu(); break;

        case ‘6’: main_help_menu(); break;

        case ‘7’: sim800_power(); break;

        case ‘8’: st7735_sleep();

                        w25_powerdown();

                        standby();

                        break;

        case ‘9’: w25_powerdown();

                        standby();

                        break;

        case ‘0’: sms_menu(); break;

        case ‘*’: telbook_menu(); break;

        case ‘~’: sim800_take_call(); break;

        case ‘!’: sim800_ath(); break;

    }

    return;

}

Кратко расскажу о некоторых функциях главного меню. Команда ATA позволяет принять входящий вызов, команда ATH отклоняет вызов или завершает звонок. Меню data облегчает работу с внешней памятью и дает возможность в реальном времени посмотреть дамп любого участка, как в ASCII, так и в HEX. Также здесь можно перезаписать байты по произвольным адресам, вплоть до ручного управления полями в контактах (хотя конкретно для этого удобнее воспользоваться подходящим разделом).

Меню call служит для быстрого набора номера из телефонной книги, тогда как tel book позволяет редактировать и добавлять записи новых абонентов. Power menu управляет настройками энергосбережения, а команды sleep и sleep logo переводят устройство в режим сна (примерно 6 и 9 мА потребления соответственно).

Есть и несколько дополнительных полезностей. Меню img выполняет функции галереи и предоставляет доступ к сохраненным картинкам, а sim800 напрямую взаимодействует с радиомодулем через стандартные команды АТ. Как будто не самая очевидная вещь, но она мне здорово пригодилась при отладке.

Идеи и развитие проекта

Я получил большое удовольствие от работы над созданием своего мобильного телефона, последовательно воплощая в жизнь разные функции, отлавливая ошибки и решая возникающие в процессе задачи. И само собой, останавливаться на достигнутом я вовсе не намерен. Вот несколько идей, которые я пока не реализовал, но уже запланировал на ближайшее будущее: встроенные игры, шифрование данных, отправка и прием MMS, записная книжка, дополнительные поля в контактах.

РЕКОМЕНДУЕМ:
Как из телефона сделать панель приборов автомобиля

И это далеко не полный список. Современные микроконтроллеры имеют массу полезных интерфейсов и позволяют подключать самую разную периферию: микросхемы внешней оперативной памяти, карточки SD, экраны с высоким разрешением и даже цифровые камеры. Кажется, так можно увлечься и собрать полноценный смартфон!

Звёзд: 1Звёзд: 2Звёзд: 3Звёзд: 4Звёзд: 5 (3 оценок, среднее: 5,00 из 5)

Загрузка…

  • Как делать телефон из бумаги
  • Как добавить номер в спам рассылку
  • Как делать телефон в майнкрафте
  • Как добавить номер в спам базу
  • Как делать стрим на телефоне