Фрикер Клуб

Фрикер Клуб (https://phreakerclub.com/forum/index.php)
-   Статьи (https://phreakerclub.com/forum/forumdisplay.php?f=7)
-   -   Starduino (или Arduino + Starline) (https://phreakerclub.com/forum/showthread.php?t=377)

kab 14.11.2011 22:49

Starduino (или Arduino + Starline)
 
Вложений: 6
несколько месяцев назад, впервые только заинтересовавшись изучением уязвимостей (в тот момент меня интересовали только шлагбаумы, которых понатыкали много и не проехать и не запарковать машину в центре города) я натолкнулся на ряд интересных тем, в том числе и тут.
особенно меня заинтересовал проект уважаемого tahion-а: http://phreakerclub.com/563 (тем что usb, универсальный, можно перепрограммировать под что угодно и т.д. это кстати был мой первый девайс, который мне собрали друзья).

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

причем, что очень сильно удручало - что везде использовались свои МК - у кого-то PIC, у кого-то AVR, у кого-то что-то еще, что требовало изучение разных МК, вкуривание на даташиты от этих самых МК и т.д. и т.п.

плюс никто не давал исходных кодов - только готовые прошивки (мона легко взять Ida Pro в руки и превратить прошивку в исходник на асме, но в нём то тоже еще разобраться нужно!).

меня это несколько удручило и я решил попробовать сделать прототип, который:
  1. будет универсальным, т.е. подходящим под большинство задач
  2. не требует хорошего владения паяльным делом
  3. не требует особенных знаний МК
  4. легко превращается из прототипа в готовое устройство
  5. легко расширяется, позволяя достигнув определенных успехов расти дальше, а также использовать его в других областях
(сразу скажу, что ни второго, ни третьего пункта в итоге избежать не удалось и теперь я спокойно паяю lqfp-64 микросхемы и неплохо знаю структуру нескольких типов МК, равно как и читаю даташиты по диагонали).

в итоге была выбрана платформа Arduino. почему она? потому, что она с легкостью решает почти все поставленные задачи:
  1. одна из самых распространенных платформ для прототипирования. наберите в гугле arduino и посмотрите количество найденных ссылок (на сегодня, порядка 13,5 млн).
  2. она доступна, купить готовую arduino-совместимую плату можно за 800 рублей и ничего не требуется паять.
  3. для нее существует просто огромное количество различной переферии (в терминологии ардуины - шилдов) и просто неисчислимое количество описаний и примеров.
  4. язык программирования ориентирован на новичков (в т.ч. школьников и студентов) и осваивается буквально за несколько часов и уже можно начать ваять скетчи (в терминологии ардуины - прошивки).
  5. из ардуины можно взять МК (или купить отдельный) и сделать вполне портативное устройство.
  6. профи могут выкинуть arduino ide в помойку, взять avr studio и спокойно выжимать из железа всё доступное им.

в итоге, у меня образовалось несколько ардуино-совместимых плат (они ничем не отличаются, кроме количества и качества используемых компонентов, аналоги иногда даже лучше оригинала). у меня "больших" (существуют еще различные нано, мини и т.д.) ардуин:
  1. фирменная
    Вложение 1293
  2. freeduino
    Вложение 1294

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

далее, нужен был трансивер. для этой цели был выбран трансивер от старлайн. по многим причинам:
  1. один из очень надежных (над ним можно долго извращаться и он сохранит свою работоспособность).
  2. толерантен к 5 вольтам (у ардуины вся периферия работает на 5 вольтах, в отличие от брелков, где много что сделано от 1.8 или 3.3в).
  3. легко достать (я у знакомых на сто увидел целый ящик таких трансиверов и легко выклянчил парочку).

далее, нужно все это соединить (сделать шилд). у меня было несколько вариантов (в порядке моего развития):
  1. взять протошилд и на основании его, проводков, изоленты, соплей и слюней собрать нечто такое:
    Вложение 1295
    (специально сохранил как свою самую первую поделку).
  2. тоже самое, только без соплей, зато с эпоксидкой:
    Вложение 1296
    (был еще аналогичный вариант - чисто на проводочках)
  3. освоить ЛУТ и сделать нормальный переходник:
    Вложение 1297

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

продолжение следует...

дальше, при наличии интереса от посетителей и наличия свободного времени я продолжу и расскажу про:
1. написание скетчей по приёму старлайн, кейлок, цаме и т.д.
2. подключение шерхановских и иных трансиверов
3. расскажу про создание шилдов под другие ардуины/платформы
4. расскажу как делать свои девайсы (в том числе и на других МК - pic, msp430, arm, ...)

кучу фана и драйва - обещаю. ))


p.s. дисклаймер или типа зачем: проект чисто исследовательских, никаких практических целей не преследуется. за всё, сделанное вами, отвечаете только вы.

p.p.s. проект будет open-hardware и open-source. что говорит, что я буду выкладывать всё (схемы и исходники программ), но халявы (готовых решений) не будет. у кого есть мозги и желание - без труда сделает и готовый девайс и соберет под него работающую прошивку. у кого нет первого или второго - извиняйте.

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

dr.Zoldberg 14.11.2011 23:51

Давно кстати думал об ардуино, вот хоть первопроходец появился на форуме )

gre4k0 15.11.2011 01:40

Если использовать ЛУТ, то смысла с Arduino нету, как в таковом.

kab 15.11.2011 07:02

Цитата:

Сообщение от gre4k0 (Сообщение 6742)
Если использовать ЛУТ, то смысла с Arduino нету, как в таковом.

не совсем ясно, как технология изготовления печатных плат в домашних условиях (ЛУТ) связана с платформой для разработки (железо + софт)?

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

я уж не говорю про удобство написания прототипов прошивок (скетчей) на ардуиновском превдо-си (больше похожим на бейсик) - IDE правда корявое, но оно соответствует концепции ардуины - KISS (keep it simple and stupid - сохраняй это простым и тупым).

плюс существуют готовые протеусовские проекты с ардуино - можно тут же загрузить прошивку в эмулятор и посмотреть.

ну и много еще чего есть в ардуине.

как платформа для прототипирования она очень хороша...

tahion 15.11.2011 07:52

kab, Спасибо! Давно пора этой теме появиться ))

DIVER_SANT 15.11.2011 19:10

Да по железу в целом понятно-ждем именно статьи по кодингу!!!!!!!Я то думал когда Arduino подобные девайсы затронут-автору респект

DIVER_SANT 15.11.2011 21:31

http://mk90.blogspot.com/2009/01/arduino-serial.html
http://mk90.blogspot.com/2009/11/arduino-severino.html
Вот мои пять копеек для тех кто все таки любит попаять

Хекс 15.11.2011 22:00

kab! Старт хороший ! Народ требует продолжения !!!:)

Добавлено через 6 минут
Я так понял шерхана оттачиваеш на нём?

tahion 16.11.2011 05:59

Arduino: быстрый старт
 
Вложений: 1
Движемся дальше ))

У кого нет платформы, обзаводимся ею, гугль подскажет где достать или как собрать самому, ключевые слова arduino, freedruino. Выбирать лучше вариант с 32 кб флеш памяти, при этом на борту будет установлен микроконтроллер AtMega328p и прошит начальным загрузчиком - бутом. Программирование осуществляется именно через него. Т.е. вы подключаете девайс по USB к ПК и он сразу готов к работе.

Скачиваем среду разработки, например arduino-0022, запускаем, для проверки девайса идем в меню File-> Examples-> 1.Basics-> Blink и видим примерно следующую картину (см. вложение) После чего жмем кнопку с иконкой "стрелка вправо" (upload) и видим процесс компиляции и прошивки. При этом от пользователя больше ничего не требуется (не надо нажимать никакие кнопки и отключать-подключать девайс)). Как только прошивка будет залита в микроконтроллер, он тут же начнет выполнять программу, т.е. начнет мигать светодиодом "L" который физически подключен на пин 13 в ардуино понимании и на PB5 в понимании микроконтроллера.

Несколько слов о среде разработки. Как подчеркнул kab, синтаксис языка ардуино действительно похож на смесь Бейсика и Си, и очень удобен для быстрой разработки проектов. Узнать какие операторы поддерживает среда разработки вы можете через меню Help->Reference(Language Reference). Так же большое количество примеров доступно через меню File-> Examples.
При этом ничто не мешает программировать на обычном Си или Ассемблере в привычной среде, например в AVR Studio с возможностью пошаговой отладки программы, это дело вкуса :)

Хекс 16.11.2011 10:18

На первый взгляд какбудто просто ! А есть ли какойто букварь по етому языку или набор команд чтоб лежал под рукой ?


Текущее время: 08:13. Часовой пояс GMT +3.

Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2021, Jelsoft Enterprises Ltd. Перевод: zCarot
(C) www.phreakerclub.com