Это руководство описывает от начала до конца конструирование своего собственного смартфона. Начинается дело с печати на 3D-принтере корпуса, затем спаиваются печатные платы, всё это дело собирается, и, в конце концов, на смартфон устанавливается мобильная операционная система, и с помощью языка программирования Python она становится персонально Вашей. Вы можете ознакомиться с подробностями о данном проекте по ссылке.

Необходимые навыки:
— базовые навыки пайки;
— знакомство с Raspberry Pi.
Или:
— много свободного времени и терпения.








Шаг 1: Собираем необходимые материалы



Перед тем, как начать, давайте-ка закажем все компоненты, которые нам потребуются. Итак, вам потребуются следующие электронные компоненты и печатные платы (в России компоненты можно приобрести, например, в таких магазинах):
1. Raspberry Pi A+ 256MB
2. модуль GSM Adafruit FONA uFL Version
3. 3.5' PiTFT сенсорный экран
4. Raspberry Pi Camera 5MP
5. преобразователь Powerboost 500 Basic
6. GSM антенна
7. 1В 8Ом динамик
8. адаптер USB — Wifi
9. электретный микрофон
10. 1200мА литий-ионная батарея
11. 4-40 x 3/8' винты
12. M2.5 x 5mm винты
13. M2.5 x 20mm винты
14. M2 x 5mm винты
15. ползунковый переключатель
16. провода

Ну а пока вы ждете доставки заказа со всем перечисленным, можно напечатать корпус.

Шаг 2: Печатаем корпус на 3D принтере



Корпус смартфона состоит из двух частей, напечатанных на 3D принтере: верхней и нижней (ну или передней и задней, это смотря как на него посмотреть). Скачать файлы .stl вы можете с ресурса thingiverse. Ну а если у вас нет 3D принтера, то можете заказать печать какой-нибудь компании, которая предоставляет подобные услуги (например, Shapeways). И да, если вы хотите сделать корпус более индивидуального дизайна, можете скачать проект для Solidworks с моей странички на github.

Шаг 3: Основная сборка





Теперь давайте соединим всё вместе. На диаграмме изображен Raspberry Pi. Вместо того, чтобы сразу подключаться к нему, подключите провод к 26 контакту на PiTFT. Теперь дальше.

1. Присоедините контакт «bat» на модуле GSM (Adafruit FONA) к такому же контакту на преобразователе (PowerBoost).
2. Припаяйте провод от контакта GND (земля) на модуле GSM к такому же контакту на преобразователе.
3. Припаяйте провод от контакта GND на преобразователе к одному из контактов полузнкового переключателя.
4. Также присоедните контакт GND от преобразователя к «земле» дисплея PiTFT (Такая же распиновка первых 26 контактов, как у Raspberry Pi, обратите внимание, что стрелка и «1» обозначаются первый контакт).
5. Присоедините 5В линию от преобразователя к 5В линии дисплея.
6. Припаяйте провод от центрального контакта ползункового переключателя к контакту «EN» (Включено) на преобразователе.
7. Припаяйте провод от контакта «KEY» на модуле GSM к контакту 12 (GPIO 18) на дисплее.
8. Поместите дисплей над Raspberry Pi.
9. Перепроверьте все соеднинения!

ВНИМАНИЕ: Пока проходит тестирование, убедитесь, что 5В разъем micro USB не подключен. Raspberry Pi уже запитан от батареи.

Если вы переключите ползунковый переключатель, светодиоды на преобразователе должны загореться и Raspberry Pi должен включиться. Подсветка дисплея также должна включиться. Если у вас на SD карте Raspberry Pi настроена отправка картинки на дисплей, то она должны отобразиться на нем. В противно случае, дисплей будет просто гореть белым, что на данный момент тоже пойдет. Скорее всего, на модуле GSM не загорятся светодиоды. Чтобы его включить, удерживайте кнопку включения на нем в течении пары секунд. Или подайте сигнал на разъем GPIO 18 на Raspberry Pi в течении того же времени. Если вам удалось запитать Raspberry Pi, дисплей и модуль GSM от батареи, пора переходить к следующему шагу.

Шаг 4: Финальная сборка



После того, как мы подключили питание, можно завершить подключение модулей к Raspberry Pi, а также подключить динамик и микрофон. Давайте начнем.
1. Припаяйте контакт динамика «spk +» (8Ом) к контакту «spk -» на модуле GSM. Полярность не имеет значения.
2. Припаяйте красный провод микрофона к контакту Mic + на модуле GSM.
3. Припаяйте черный провод микрофона к контакту Mic — на модуле GSM.
4. Подключите контакт «RI» (Индикатор звонка) на модуле GSM к контакту 7 (GPIO 4) на дисплее.
5. Подключите TX на модуле GSM к контакту 10 (RX) на дисплее.
6. Припаяйте RX модуля GSM к контакту 8 (TX) на дисплее.
7. Соедините Vio и bat на модуле GSM. При желании, можете использовать линию 3v3 на Raspberry Pi.
8. Закрепите uFL антенну к соединителю uFL на модуле GSM.
9. Перепроверьте все соединения!

Если вы попытаетесь все включить сейчас, то поведение устройства должно быть аналогичным, как на предыдущем шаге. На следующем шаге мы установим сим-карту в модуль GSM, что позволит устройству контактировать с сотовой сетью.

Шаг 5: Установка сим-карты



Теперь, когда соединение модулей завершено, можно установить сим-карту, чтобы модуль GSM мог контактировать с сотовой сетью. Данный модуль использует сети 2G для передачи данных, например T-Mobile. Обратите внимание, что модуль не работает с сетями 3G и 4G. AT&T планирует отключить поддержку 2G сетей к 2016 году, так что мы будем использовать сим-карту T-Mobile. Данный модуль GSM использует сим-карту стандартного формата, так что микро или нано сим-карты сюда не пойдут. Активируйте карту согласно инструкциям оператора. Затем установите сим-карту в модуль GSM и включите его. Если красный светодиод модуля будет моргать каждые 3 секунды, значит он подключился к сотовой сети! На следующем шаге мы установим программное обеспечение, чтобы Raspberry Pi смог общаться с модулем GSM.

Шаг 6: Установка SD карты



Теперь, когда все железо собрано, можно приступить к настройке взаимодействия Raspberry Pi со всем этим хозяйством. Начните с прошивки последней версии PiTFT OS на SD карту Raspberry Pi. Жмите сюда чтобы скачать. Когда SD карта готова, установите ее в Raspberry Pi и включите его. Вам понадобится утилита raspi-config. Вот несколько вещей, которые потребуется настроить:
1. Развернуть файловую систему.
2. Включить поддержку камеры.
3. Выключить serial port. Так Raspberry Pi сможет общаться с модулем GSM.
4. Включить ssh. Это важно, поскольку в Raspberry Pi A+ есть только USB порт.

Закончите установку и перезапустите Raspberry Pi.
Напишите startx и Raspberry Pi запустит LXDE на дисплее. Чтобы войти через HDMI, напишите:

FRAMEBUFFER=/dev/fb0 startx


Шаг 7: Установка Wifi



У вашего телефона нет клавиатуры, так что для доступа к устройству через консоль, нужно установить wifi для подключения по ssh. Подключите Wifi адаптер к компьютеру и настройте подключение через Wifi Config. Выключите Raspberry Pi и подключите к нему Wifi адаптер. Если вам все еще не удается подключиться к Raspberry Pi по ssh, попробуйте использовать USB концентратор. Больше информации по настройке Wifi можно найти здесь.

Шаг 8: Финальная подготовка программного обеспечения

Тестирование модуля GSM

Чтобы протестировать модуль GSM, установите minicom с помощью команды:

sudo apt-get install minicom


Затем запустите:

sudo minicom -D /dev/ttyAMA0 -b 9600


Должен открыться терминал по взаимодействию с устройствами через ком-порт. Если вы напишете:

AT


в ответ должны получить «ОК». Если не получили, то проверьте все соединения. Если же получили, значит модуль GSM готов к работе.

Поворот экрана

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

sudo nano /etc/modprobe.d/adafruit.conf


Измените в файле значение параметра «rotate» на 180.

Наконец, чтобы добавить LXDE в автозагрузку, следуйте описанию в инструкции.

Установка программного обеспечения для камеры

Теперь давайте установим программное обеспечение, которое помогает снимать фото камерой Raspberry Pi. Для начала напишите:

sudo apt-get install python-pip


Установка камеры:

sudo pip install picamera=0.8


Наконец, загружаем программное обеспечение:

git clone https://github.com/spadgenske/adafruit-pi-cam


Шаг 9: Установка TYOS



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

wget https://github.com/spadgenske/TYOS/archive/0.1.0.zip


Распакуйте архив:

unzip 0.1.0.zip


Для запуска TYOS напишите:

sudo python /home/pi/tyos/src/main.py 


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

Напишите

sudo nano /etc/rc.local


чтобы открыть конфигурационный файл. Внизу, после текста и до строчки «exit 0», добавьте следующий текст:

sudo python /home/pi/tyos/src/main.py --power


Теперь перезапустите Raspberry Pi. TYOS должен стартовать при загрузке устройства!

Шаг 10: Собираем всё вместе





Теперь можно всё надежно упаковать в корпус.
1. Используя горячий клей, приклейте микрофон и динамик в разъемы под них.
2. Используя винты M2, закрепите камеру. Потребуется соединить ленточным кабелем камеру и Raspberry Pi, так что разместите ее подходящим образом.
3. Используя винты M2.5, закрепите Raspberry Pi вместе с установленной SD картой и адаптером Wifi вниз корпуса.
4. Присоедините ленточный кабель камеры с Raspberry Pi.
5. Также используя винты M2.5, закрепите модуль GSM с сим картой в корпус.
6. При укладке проводом убедитесь, что они не мешают никакой другой электронике.
7. Оберните преобразователь изолентой, чтобы избежать короткого замыкания.
8. Поместите преобразователь и батарею между Raspberry Pi и дисплеем.
9. С помощью горячего клея приклейте ползунковый переключатель в разъем, предназначенный для него вверху корпуса.
10. Используя винты 4-40, соедините верхнюю и нижнюю часть корпуса вместе.
11. Проверьте все соединения.

Мои поздравления! Вы только что собрали свой собственный смартфон! Если вам не по душе телефон, называющийся «tyfone», можете поменять лого в /home/pi/tyos/graphics/logo.png на любое, какое пожелаете.

Комментарии (33)


  1. DrPass
    07.04.2015 15:28
    +4

    Он же без блютуса. Фу…
    :)


    1. swetlanaspb Автор
      07.04.2015 15:33
      +1

      Да, это беда)
      Ну а ежели серьезно, то никто не мешает установить адаптор к синезубу. Например, Inateck Bluetooth 4.0 adaptor.
      Ну и мануал.


  1. Klukonin
    07.04.2015 15:33

    Напишите stratx и Raspberry Pi запустит LXDE на дисплее.


    После этих слов я немного напрягся.

    А потом прочитал про TYOS. Спасибо, забавная штука.


    1. swetlanaspb Автор
      07.04.2015 15:35
      +1

      Ох, прошу прощения, опечатка в таком важном месте, как команда(( Спасибо за наводку — поправила.


  1. bolnikh
    07.04.2015 15:49

    Сколько работает на одной подзарядке?


    1. swetlanaspb Автор
      07.04.2015 15:54

      Порядка 4 часов.


      1. Artem_zin
        07.04.2015 16:22
        +1

        Лучше, чем некоторые современные телефоны!


        1. jonic
          07.04.2015 16:25
          +1

          Лучше чем часы! ;)


        1. Gibarian
          07.04.2015 21:31
          +4

          Меньше 4 часов? Много современных телефонов повидал, но таких честно говоря еще не видел. :)


      1. ddavydov
        08.04.2015 18:55

        Полагаю, настройкой ОС можно сильно увеличить время.


  1. Jeditobe
    07.04.2015 16:31
    +3

    Если изучить спецификации модуля GSM Adafruit FONA uFL Version, становится видно, что RPi всего лишь примочка к нему.

    Quad-band 850/900/1800/1900MHz — connect onto any global GSM network with any 2G SIM (in the USA, T-Mobile is suggested)
    Make and receive voice calls using a headset OR an external 8? speaker + electret microphone
    Send and receive SMS messages
    Send and receive GPRS data (TCP/IP, HTTP, etc.)
    Scan and receive FM radio broadcasts (yeah, we don't exactly know why this was included but it works really well)
    PWM/Buzzer vibrational motor control
    AT command interface with «auto baud» detection



    1. kAIST
      07.04.2015 17:14
      +1

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


      1. Pinsky
        07.04.2015 18:29

        ну дак, с малиной можно прикрутить приложения на питоне)))


        1. eta4ever
          07.04.2015 18:32

          Угу. И воткнуть еще USB 3G свисток для интернета. Потом поставить маломощный чип на управление GSM-модулем со своим дисплеем. И будет два независимых девайса в одном кирпиче. Места хватит.


          1. Siorinex
            08.04.2015 13:33
            +1

            … А ещё можно взять свисток с поддержкой голосового режима: такие народ юзает в самодельных гейтах SIP-GSM на основе Астериска.


        1. kAIST
          07.04.2015 18:36
          +1

          Прикол в том, что писать на arduino ide для новичка даже бывает проще чем на питоне, так как, например, к тем же дисплеем уже есть готовые библиотеки, и остается только что то типа lcd.write_text(0,0,'hello world') )))

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


    1. eta4ever
      07.04.2015 18:26

      Так и есть. Телефонки на ардуине вполне работают
      www.instructables.com/id/ArduinoPhone/
      blog.arduino.cc/2013/08/12/diy-cellphone/


  1. Jeditobe
    07.04.2015 16:37

    Вот еще вариант GSM модема

    image
    SainSmart GPRS+GSM SIM300 Module+Dev.Board V2+Voice adapter+Code
    $31.99



  1. miolini
    07.04.2015 20:11
    +2

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


  1. SunSunSun
    07.04.2015 20:36

    Блин. Круто. Я вдохновлён!


  1. rodocop
    08.04.2015 01:16

    Всегда восхищали люди, способные на такое!


    1. x256
      08.04.2015 09:14

      Особенно среди девушек.


      1. Int_13h
        08.04.2015 09:28
        +6

        Девушка-переводчик — редкая профессия, ага.


  1. aperechnev
    08.04.2015 11:22

    T-Mobile — Вы в Македонии живёте?


    1. aperechnev
      08.04.2015 13:25

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


      1. swetlanaspb Автор
        08.04.2015 13:27

        Бывает) Рада, что удалось узнать что-то новое)


    1. swetlanaspb Автор
      08.04.2015 13:26

      А при чем тут Македония? Вообще-то T-Mobile — это немецкий оператор, который работает в Европе и США.


  1. Siorinex
    08.04.2015 13:38

    По-факту:
    1. Подключение микрофона и динамика к GSM-модулю — лишает возможности проигрывать музыку и т.д. на смартфоне, или вынуждает ставить второй динамик, что не кошерно!
    2. Да, молодцы, что взяли именно А — он более плоский, т.к. нет второго USB и Ethernet. Но для экономии толщины — коннекторы обычно всеравно отпаивают!


  1. CuamckuyKot
    08.04.2015 14:15
    +2

    Такое ощущение, что прокатился на машине времени.


  1. manusovich
    09.04.2015 05:30
    +3

    Я собрал свой на базе микросхемы M10, руководствуясь вот этой инструкцией http://web.media.mit.edu/~mellis/cellphone/. Получилось вот такое устройство https://instagram.com/p/wfdNvToxBJ/


  1. rdc
    14.04.2015 02:19

    Не в тему — шокировал факт про отключение 2G сетей к 2016 году.
    Кроме телефонов, отвалился огромное количество технологического оборудования, управляемого по GSM…
    …и его просто так, как телефон, не заменить


    1. Rudolfo
      14.04.2015 22:53

      Занятно. Я на смартфоне >2G включаю только, когда требуется быстрый Интернет в отсутствии Wi-Fi — 2-2,5 дня хоть заряд держит.