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

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

Содержание

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

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

Содержание

  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)

Загрузка…

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

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

Для создания предложенной и не сложной модели игрушечного телефона, приготовьте:

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

Приступаем к выполнению, учитывая следующую последовательность:

  1. Делаем основу для телефона. Для этого лист картона разрезаем на 2 части. Одну половину красим в любой цвет на ваш выбор, даем подсохнуть и обрезаем до размеров 15 на 8 см. Оставшуюся белую часть замеряем таким образом, чтобы из нее вырезать 2 прямоугольные фигуры с размерами 6 на 7 см.

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

  3. В верхней части цветного кусочка картона приклейте белый отрезок бумаги – экран. Отступите 1,5-2 см. и приклейте уже готовую клавиатуру. А между этими двумя составляющими нарисуйте той же ручкой кнопки, которые отвечают за прием вызова и сброс, быстрый доступ к меню. Можно по центру добавить джойстик.

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

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

Изготовление игрушечного айфона

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

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

Выбор шаблона

Для того чтобы подготовить шаблон, нужно в интернете найти и скачать развертку нужной нам модели айфона. Вариантов множество: айфон S, 5, 6, 7. Распечатывать лучше всего на глянцевой фотобумаге, но если таковая отсутствует, то распечатку можно сделать на обычной бумаге.

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

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

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

Для слайдера приготовьте 3 листа офисной бумаги.

Выполняйте все действия в порядке очередности:

  1. Поверните лист к себе узкой стороной, сложите по длине. Затем верните в исходное положение и загните уголки с 2-х сторон к середине. Должна получиться стрела (фото 2 и 3).

  2. Другие углы с боковой стороны тоже заворачивайте к середине (фото 4 и 5).
  3. Переверните на обратную сторону и снова заверните уголки, как на фото 6 и 7.
  4. Сложите полученную фигуру сначала с одной стороны, а потом с другой. Углы должны смотреть друг на друга (следуйте фото 8, 9 и 10).
  5. После предыдущих манипуляций, должна получиться заготовка, напоминающая книгу.

  6. Верхние углы одной из сторон аккуратно просуньте в отделение нижней части напротив углов. Получится небольшой объемный прямоугольник (фото 12).
  7. Приступаем к работе со вторым листом бумаги. Повторите первые пункты в соответствии с фото 2,3,4 и 5. Далее переворачивать лист не нужно, а просто завернуть нужно углы на внешней стороне (фото 13 и 14).

  8. Сложите фигуру так, как и первую, и пока положите рядом (фото 15 и 16).
  9. Чтобы соединить обе части так, чтобы одна из них выезжала из другой, беремся снова за первую фигуру. Найдите линию, которая находится поперек, и немного прокалите ее канцелярским ножом или острыми ножницами (фото 17).

  10. Возьмите последний лист, прислоните к первой фигуре и отметьте, какая ширина завернутой части. Этот листик сложите так, чтобы этот кусочек помещался в середину фигуры и смог проскользнуть в надрез (фото 18-20).
    Совет!

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

  11. Свернутый кусок бумаги засуньте в надрез и хорошо распределите внутри первой части будущего телефона (фото 21 и 22).

  12. Как показано на фото 23, 24 и 25, накройте второй фигурой первую, а концы заправьте один в другой. Используйте скотч для закрепления, после того, как прикроете крайние части заготовки (фото 26).

  13. У вас должен выйти многослойный прямоугольник как на фото 27. Попробуйте высовывать и засовывать верхнюю деталь – она должна свободно скользить (фото 28 и 29).
  14. Далее приступаем к раскраске телефона. Можно кнопки, камеру, название фирмы и другие мелочи нарисовать ручкой, фломастерами, а можно вырезать их из цветной бумаги и приклеить.

Совет!

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

Самые востребованные цвета для чехлов

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

Разновидности защитных аксессуаров для гаджетов

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

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

Для того, чтобы сделать представленную модель смартфона, отдаленно похожую на старый добрый 5-й айфон, подготовьте лист бумаги А4 или обычный альбомный, и палитру фломастеров.

Пошаговая инструкции создания телефона-игрушки представлена ниже:

  1. 1. Положите перед собой лист и с правой стороны, отступив 1-2 см., заверните полоску.

  2. То же самое действие повторите с левой стороной.

  3. Сверху сделайте такой же загиб, только отмерить нужно немного больше – примерно 3-4 см.

  4. 4. Нижняя сторона тоже требует подворота примерно на столько же, сколько и верхняя.

  5. Вернитесь снова к верхней части листа и заверните теперь на 1-2 см. (половину того, насколько подвернули). Вид сзади:

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

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

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

  9. Черным фломастером нарисуйте вверху динамик и камеру, а внизу основную кнопку.

  10. Другими цветами фломастеров нарисуйте на экране значки на выбор.

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

Бумажная роскошь

Выпущенный в сентябре 2021 года айфон 10 (iPhone X), часто по ошибке называемый «Икс», оказался самым неоднозначным в линейке «яблочных» гаджетов. Его эффектный дизайн не соответствовал слабому функционалу, а цена на фоне этого контраста виделась просто заоблачной. Но, несмотря на частую критику, 10-я модель оказалась не менее востребованной и желанной, чем её предшественники. И поскольку позволить себе сверхдорогую сенсорную «игрушку» может далеко не каждый, остаётся утешаться её самодельным аналогом из бумаги. Выбрав для личного пользования что-нибудь не столь пафосное, но в некоторых случаях, более практичное.

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

Стационарный телефон

Для выполнения работы вам понадобится:

  • картонная коробка (или картонные отрезки);
  • бумага светлых оттенков для диска;
  • лента для провода;
  • проводки (желательно не жесткие);
  • удлиненный шуруп;
  • ножницы;
  • пробка из бутылки или крышка из-под крема, а также крышка из-под сыра;
  • клей ПВА.

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

Далее нам понадобиться крышка из-под сыра. Ее нужно намазать клеем и аккуратно приложить бумагу выбранного цвета.

Совет!

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

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

Совет!

Чтобы диск максимально напоминал настоящий, с обратной стороны приклейте какие-нибудь камешки.

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

В середину дырочек аккуратно впишите цифры от 0 до 9. Старайтесь, чтобы все цифры были хорошо видны.

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

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

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

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

Трубку положите на рычажки и телефон готов к эксплуатации дочками и сыночками.

Зачем делают чехлы своими руками?

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

Уникальный чехол для iPhone

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

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

( 1 оценка, среднее 4 из 5 )

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