Это руководство описывает от начала до конца конструирование своего собственного смартфона. Начинается дело с печати на 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)
Klukonin
07.04.2015 15:33Напишите stratx и Raspberry Pi запустит LXDE на дисплее.
После этих слов я немного напрягся.
А потом прочитал про TYOS. Спасибо, забавная штука.swetlanaspb Автор
07.04.2015 15:35+1Ох, прошу прощения, опечатка в таком важном месте, как команда(( Спасибо за наводку — поправила.
bolnikh
07.04.2015 15:49Сколько работает на одной подзарядке?
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
kAIST
07.04.2015 17:14+1Ну так вместо raspberry можно воткнуть обычный МК. Для управления дисплеем, тачскрином вполне хватит. Да, фотографировать конечно не получиться, но зато гораздо больше от аккумулятора проработает.
Pinsky
07.04.2015 18:29ну дак, с малиной можно прикрутить приложения на питоне)))
eta4ever
07.04.2015 18:32Угу. И воткнуть еще USB 3G свисток для интернета. Потом поставить маломощный чип на управление GSM-модулем со своим дисплеем. И будет два независимых девайса в одном кирпиче. Места хватит.
Siorinex
08.04.2015 13:33+1… А ещё можно взять свисток с поддержкой голосового режима: такие народ юзает в самодельных гейтах SIP-GSM на основе Астериска.
kAIST
07.04.2015 18:36+1Прикол в том, что писать на arduino ide для новичка даже бывает проще чем на питоне, так как, например, к тем же дисплеем уже есть готовые библиотеки, и остается только что то типа lcd.write_text(0,0,'hello world') )))
Ну а пихать в носимый гаджет платку, которая даже в простое жрет более пол ампера, это мягко говоря, не очень.
eta4ever
07.04.2015 18:26Так и есть. Телефонки на ардуине вполне работают
www.instructables.com/id/ArduinoPhone/
blog.arduino.cc/2013/08/12/diy-cellphone/
Jeditobe
07.04.2015 16:37Вот еще вариант GSM модема
SainSmart GPRS+GSM SIM300 Module+Dev.Board V2+Voice adapter+Code $31.99
Jeditobe
07.04.2015 16:42+1И еще один модем
Geeetech SIMCOM SIM900 Quad-band GSM GPRS Shield Development Board for Arduino/Iduino $30.00
miolini
07.04.2015 20:11+2Отличная стартовая точка для дальнейшего улучшения проекта открытого телефона.
aperechnev
08.04.2015 11:22T-Mobile — Вы в Македонии живёте?
aperechnev
08.04.2015 13:25Прошу прощения, глянул в Википедию и с удивлением обнаружил что это вообще немецкий оператор. Просто из всех наших стран я видел его только в Македонии.
swetlanaspb Автор
08.04.2015 13:26А при чем тут Македония? Вообще-то T-Mobile — это немецкий оператор, который работает в Европе и США.
Siorinex
08.04.2015 13:38По-факту:
1. Подключение микрофона и динамика к GSM-модулю — лишает возможности проигрывать музыку и т.д. на смартфоне, или вынуждает ставить второй динамик, что не кошерно!
2. Да, молодцы, что взяли именно А — он более плоский, т.к. нет второго USB и Ethernet. Но для экономии толщины — коннекторы обычно всеравно отпаивают!
manusovich
09.04.2015 05:30+3Я собрал свой на базе микросхемы M10, руководствуясь вот этой инструкцией http://web.media.mit.edu/~mellis/cellphone/. Получилось вот такое устройство https://instagram.com/p/wfdNvToxBJ/
rdc
14.04.2015 02:19Не в тему — шокировал факт про отключение 2G сетей к 2016 году.
Кроме телефонов, отвалился огромное количество технологического оборудования, управляемого по GSM…
…и его просто так, как телефон, не заменитьRudolfo
14.04.2015 22:53Занятно. Я на смартфоне >2G включаю только, когда требуется быстрый Интернет в отсутствии Wi-Fi — 2-2,5 дня хоть заряд держит.
DrPass
Он же без блютуса. Фу…
:)
swetlanaspb Автор
Да, это беда)
Ну а ежели серьезно, то никто не мешает установить адаптор к синезубу. Например, Inateck Bluetooth 4.0 adaptor.
Ну и мануал.