Форум
 

Вернуться   Форум "Фрикер Клуб" - кодграббер своими руками > Основной раздел > Статьи

Важная информация

Ответ
 
Опции темы Опции просмотра
Старый 14.11.2011, 22:49   #1
kab Меню Пользователя
Автор
 
Аватар для kab
 
Регистрация: 08.08.2011
Сообщений: 145
По умолчанию Starduino (или Arduino + Starline)

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

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

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

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

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

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

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

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


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

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

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

Последний раз редактировалось kab; 14.11.2011 в 22:53.
kab вне форума   Ответить с цитированием
Старый 14.11.2011, 23:51   #2
dr.Zoldberg Меню Пользователя
Резидент клуба
 
Аватар для dr.Zoldberg
 
Регистрация: 06.06.2011
Сообщений: 379
По умолчанию

Давно кстати думал об ардуино, вот хоть первопроходец появился на форуме )
dr.Zoldberg вне форума   Ответить с цитированием
Старый 15.11.2011, 01:40   #3
gre4k0 Меню Пользователя
Вступил в клуб
 
Регистрация: 28.10.2011
Сообщений: 12
По умолчанию

Если использовать ЛУТ, то смысла с Arduino нету, как в таковом.
gre4k0 вне форума   Ответить с цитированием
Старый 15.11.2011, 07:02   #4
kab Меню Пользователя
Автор
 
Аватар для kab
 
Регистрация: 08.08.2011
Сообщений: 145
По умолчанию

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

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

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

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

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

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

как платформа для прототипирования она очень хороша...
kab вне форума   Ответить с цитированием
Старый 15.11.2011, 07:52   #5
tahion Меню Пользователя
Автор
 
Аватар для tahion
 
Регистрация: 13.05.2011
Сообщений: 1,308
По умолчанию

kab, Спасибо! Давно пора этой теме появиться ))
tahion вне форума   Ответить с цитированием
Старый 15.11.2011, 19:10   #6
DIVER_SANT Меню Пользователя
Модератор
 
Аватар для DIVER_SANT
 
Регистрация: 27.03.2011
Сообщений: 2,295
По умолчанию

Да по железу в целом понятно-ждем именно статьи по кодингу!!!!!!!Я то думал когда Arduino подобные девайсы затронут-автору респект
DIVER_SANT вне форума   Ответить с цитированием
Старый 15.11.2011, 21:31   #7
DIVER_SANT Меню Пользователя
Модератор
 
Аватар для DIVER_SANT
 
Регистрация: 27.03.2011
Сообщений: 2,295
По умолчанию

http://mk90.blogspot.com/2009/01/arduino-serial.html
http://mk90.blogspot.com/2009/11/arduino-severino.html
Вот мои пять копеек для тех кто все таки любит попаять
DIVER_SANT вне форума   Ответить с цитированием
Старый 15.11.2011, 22:00   #8
Хекс Меню Пользователя
Резидент клуба
 
Аватар для Хекс
 
Регистрация: 18.02.2011
Сообщений: 354
По умолчанию

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

Добавлено через 6 минут
Я так понял шерхана оттачиваеш на нём?
Хекс вне форума   Ответить с цитированием
Старый 16.11.2011, 05:59   #9
tahion Меню Пользователя
Автор
 
Аватар для tahion
 
Регистрация: 13.05.2011
Сообщений: 1,308
По умолчанию Arduino: быстрый старт

Движемся дальше ))

У кого нет платформы, обзаводимся ею, гугль подскажет где достать или как собрать самому, ключевые слова 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 с возможностью пошаговой отладки программы, это дело вкуса
Изображения
Тип файла: jpg arduino.jpg (69.0 Кб, 1473 просмотров)
tahion вне форума   Ответить с цитированием
Старый 16.11.2011, 10:18   #10
Хекс Меню Пользователя
Резидент клуба
 
Аватар для Хекс
 
Регистрация: 18.02.2011
Сообщений: 354
По умолчанию

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

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.



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


vBulletin 4.1.0 Перевод: zCarot
(C) www.phreakerclub.com
Яндекс.Метрика