Сообщество Arduino (http://arduino.cc) начало производство (http://arduino.cc/blog/2010/09/24/dinner-is-ready/) двух новых одноплатных микроконтроллеров (http://ru.wikipedia.org/wiki/Arduino), относящихся к категории open hardware и предназначенных для создания энтузиастами различных экспериментальных электронных устройств (от роботов до систем для полива комнатных растений). Платы представляют собой (http://ru.wikipedia.org/wiki/Arduino) микроконтроллер с наборов аналоговых и цифровых разъемов для организации ввода/вывода, среди которых присутствует USB-интерфейс и последовательный порт. Дизайн плат полностью открыт под лицензией Creative Commons BY-SA, любой желающий может загрузить схемы, имеет возможность внести в них улучшения и начать производство своего продукта. Для программирования контроллеров распространяется свободная (GPLv2) программная среда (http://arduino.cc/en/Main/Software), поддерживающая разработку на специально созданном языке программирования (http://arduino.cc/en...URL: http://arduino.cc/blog/2010/09/24/dinner-is-ready/
Новость: http://www.opennet.me/opennews/art.shtml?num=28105
>>единую сеть по продаже устройств Arduino.У нас есть, но явно не по 22 евро.
http://www.linuxcenter.ru/shop/embedded/arduino/Нашел дешевше : http://freeduino.ru/arduino/order.html
Чем "открытые" платы отличаются от "закрытых"?
В данном случае только названием. Lantronix и tibbo тоже особо ничего не закрывают.
"..любой желающий может загрузить схемы, имеет возможность внести в них улучшения и начать производство своего продукта.."
А сильно схемы отличаются от референс дизайна из workbook на эти CPU ? :-)
А то может просто содрали оттуда схему и начали пиар ?
А чему там отличаться-то? Весь референс десигн - это пара кондёров в качестве фильтра и, по желанию, кварц (опять-таки с парой кондёров). Ну ещё, при необходимости заюзать аналоговую часть, одна индуктивность на аналоговое питание. Всё остальное - вопросы разводки: есть ли разделение цифровой и аналоговой земли, какими дорожками разводить ноги на пины и тд. Дело не хитрое, таких отладочных плат можно найти море, только смысл? Всё равно законченное устройство лучше делать на своей плате.
Кстати, такого документа как РеференсДесигн для этих контроллеров вообще нет - есть даташит и куча апп-ноутов (воот, например, для 2560 http://www.atmel.com/dyn/products/product_card.asp?part_id=3....
Собственно весь вопрос был такой - странно было бы закрывать то что можно прочитать в книжке раздающейся официально.
А пиар на этом сделали - "ах по CPL раздают" "круто - это же открытый проект"
Я надеюсь, не для кого не секрет, что схемы подобного уровня плат есть у любого производителя микроконтроллеров. А в основном, производители микроконтроллеров представляют безвозмездно схемы несравнимо более навороченных плат и в гораздо большем количестве. А Ардуино - это поделка уровня лабораторных 1-2 курса любого вуза.
> А Ардуино - это поделка уровня лабораторных 1-2 курса любого вуза.Не замечал на лабах станков роботопайки :-D. Тяжеловато в домашних условиях контроллеры распаивать, 128 микролап это-ж какую выдержку надо иметь.
>>это-ж какую выдержку надо иметьВ принципе, достаточно иметь один термофен (цена вопроса от 2кр), либо жало "микроволна" ;)
А вообще, многие шаг 0.5 спокойно паяют обычным паяльником - немного тренировки и никаких проблем.А про роботопайку я вообще не понял... Это что такое? Автоматизированные монтажные линии? Да если не массовое производство, такое чудо не требуется даже для распайки BGA.
>>А вообще, многие шаг 0.5 спокойно паяют обычным паяльником - немного тренировки и никаких проблем.Я перепаивал в сервисе, жуткое дело. Термофеном - припой зачастую наносится так, что потом будешь долго искать, где он поплыл и чего-то закоротил.
>> такое чудо не требуется даже для распайки BGA.
А как BGA припаять кроме как феном? Под микросхему паяльником не залезешь.
Ну нагородили! :=O Use halogen lamp, Luke! ;)
>>Я перепаивал в сервисе, жуткое дело. Термофеном - припой зачастую наносится так, что потом будешь долго искать, где он поплыл и чего-то закоротил.Дык, надо сначала аккуратно залудить площадки, а потом уже греть - микруха сама встанет. А ещё есть паяльная паста - провёл по дорожкам, положил микруху, прогрел и готово. Ну и с первого раза, конечно, красиво не получится, надо немного потренироваться. =)
Опять таки, микроволной, говорят, достаточно просто провести жалом по всем ножкам и микруха запаяна. Правда сам пока не пробовал по причини отсутствия у мня такого жала.>>А как BGA припаять кроме как феном? Под микросхему паяльником не залезешь.
Ну так феном и паять. Правда ещё нужен нижний подогрев, что бы плату не повело. Ну ещё можно в печке паять. Но тем не менее, причём тут "робопайка"?
>>>А вообще, многие шаг 0.5 спокойно паяют обычным паяльником - немного тренировки и никаких проблем.
> Я перепаивал в сервисе, жуткое дело. Термофеном - припой зачастую наносится так,
> что потом будешь долго искать, где он поплыл и чего-то
> закоротил.
>>> такое чудо не требуется даже для распайки BGA.
> А как BGA припаять кроме как феном? Под микросхему паяльником не залезешь.Подогревателем инфракрасным. QFN мужики паяют тонким конусным жалом, ведя по дорожкам по направлению к контакту чипа и не жалея флюса :)
Поиск в youtube'е по слову "QFN".
Вы просто не умеете. =) Велкам на easyelectronics.ru раздел радиолюбительских технологий. Увидите как такая же по шагу микруха запаивается меньше чем за одну минуту.У меня же монтажники сто-ногие LQFP корпуса могут уже запаять даже с помощью зажигалки и гвоздя. Ну, а человеческим паяльником так вообще не глядя. Рука набита, глаз поставлен :)
> 128 микролап это-ж какую выдержку надо иметь.А вы их что, по одной паять задумали? Все 128? :)
> "..любой желающий может загрузить схемы, имеет возможность внести в них улучшения и
> начать производство своего продукта.."Строго говоря - случай когда производитель зажимает схему платы - являются клиникой. А как с платой работать то без схемы? Наугад чтоли тыкаться? oO Это было бы весьма оригинально - эвалборд для поклонников садомазо :). Доки на процы - на сайте атмела берутся. Ну в общем пиарятся чуваки. Технично и забавно. Пусть себе пиарятся имхо :) Не врут же, и цены вроде не дикие.
> Для программирования контроллеров распространяется свободная (GPLv2) программная среда, поддерживающая разработку на специально созданном языке программирования.Тысячный клон не пойми чего, ни с чем не совместимый. Почему было не взять С?
Фишка в том, что они встроили в язык поддержку лампочек и пимпочек. Программировать это дело на си несколько сложновато. Это же не линкус, где часто можно увидеть: кинь единичку в /dev/led чтобы включить светодиод.
> Программировать это дело на си несколько сложновато. Это же не линкус,
> где часто можно увидеть: кинь единичку в /dev/led чтобы включить светодиод.А что там сложного-то? Прочитать даташит на контроллер и доки на avr-libc? Вот, кстати, была заметка на тему различия между чистым С и ардуиновскими крестами - http://community.livejournal.com/ru_radio_electr/759218.html
> Фишка в том, что они встроили в язык поддержку лампочек и пимпочек.
> Программировать это дело на си несколько сложновато. Это же не линкус,
> где часто можно увидеть: кинь единичку в /dev/led чтобы включить светодиод.#include <avr/io.h>
int main()
{
DDRC = 255;
PORTC = 255;return 0;
}
Очень сложно ? :)
а теперь напишите замену например вот такого примерчика из ардуино, а мы поглядим#include <EEPROM.h>
// start reading from the first byte (address 0) of the EEPROM
int address = 0;
byte value;void setup()
{
Serial.begin(9600);
}void loop()
{
// read a byte from the current address of the EEPROM
value = EEPROM.read(address);
Serial.print(address);
Serial.print("\t");
Serial.print(value, DEC);
Serial.println();
// advance to the next address of the EEPROM
address = address + 1;
// there are only 512 bytes of EEPROM, from 0 to 511, so if we're
// on address 512, wrap around to address 0
if (address == 512)
address = 0;
delay(500);
}
А в чем тут фокус? Обычный кусок кода вроде, простой как топор. Ну да, похоже что сделали удобные функции для типичных сущностей. Это ж не значит что их нельзя самому сделать или откуда-то взять их аналоги. А то по вашему спичу возникает ощущение что надо быть как минимум богом чтобы написать что-то в духе Serial.print, что не соответствует действительности. Не, никто не спорит что хорошо если за вас уже кой-чего сделали. Но все равно это же просто си+некоторые обвязки написанные посторонними. И никакой ракетной науки. А кому там какие обвязки для повышения работы нравятся - как бы уже вопрос предпочтений.
Гм. А в чём фича-то? Ну если хотите...
#include <avr/io.h>
#include <avr/eeprom.h>
#include <util/delay.h>
#include <stdio.h>/*Это для извращенцев - можно и не замарачиваться =)*/
static int uart_putchar(char c, FILE *stream);
static FILE mystdout = FDEV_SETUP_STREAM(uart_putchar, NULL, _FDEV_SETUP_WRITE);
static int
uart_putchar(char c, FILE *stream)
{
loop_until_bit_is_set(UCSR0A, UDRE0);
UDR0 = c;
return 0;
}
/**/
// start reading from the first byte (address 0) of the EEPROM
int address = 0;
uint8_t value;int main(void)
{
#define BAUD 9600
#include <util/setbaud.h>
UBRR0H = UBRRH_VALUE;
UBRR0L = UBRRL_VALUE;
#if USE_2X
UCSR0A |= (1 << U2X0);
#else
UCSR0A &= ~(1 << U2X0);
#endifstdout = &mystdout;
while(1)
{
// read a byte from the current address of the EEPROM
value = eeprom_read_byte ((uint8_t *)address);
printf("%d\t%d\n", address, value);// advance to the next address of the EEPROM
address++;// there are only E2END bytes of EEPROM, from 0 to E2END-1, so if we're
// on address E2END, wrap around to address 0
if (address == E2END)
address = 0;_delay_ms(500);
};return 0;
}AVR Memory Usage
----------------
Device: atmega168
Program: 1836 bytes (11.2% Full)
(.text + .data + .bootloader)
Data: 31 bytes (3.0% Full)
(.data + .bss + .noinit)Если не замарачиваться с printf будет ещё меньше. А во что компилится Ваш код? Ассемблерники сравним?
Да, исходник получился почти в два раза длиннее, но итоговый код наверняка во столько же (если не больше) эфективнее. Конечно под контроллеры можно писать на крестах, но умеючи - только статические классы, статическое наследование и шаблоны - всё остальное это ненужный оверхед.
А, да, забыл - указываем линкеру -lprintf_min и сбрасываем почти 400байт веса!
AVR Memory Usage
----------------
Device: atmega168
Program: 1458 bytes (8.9% Full)
(.text + .data + .bootloader)
Data: 31 bytes (3.0% Full)
(.data + .bss + .noinit)
Вы действительно ничего не поняли ? Сравните сложность кода в том и другом случае. Для тех, кому программирование авр не является профессиональным занятием, ардуино решает все мелочные проблемы. какой программатор ? какие регистры ? какие даташиты ? какая макетка ? о чем вы? для целевой аудитории ардуино это все излишние познания. купил платку, написал програмку почти что на бейсике и все. И благополучно забыл, пока не понадобится через полгода-год.Примерчик приведенный мною из ардуино компилится в 2740 байт. В полтора раза больше. Время разработки для непрофессионала в 10 раз меньше. И какая ему разница, сколько во флеше осталось свободного места - 14 кбайт или 10? Если код влезает в рамки по размеру и скорости выполнения - зачем морочить себе голову себе низкоуровневым программированием ради единичных проектов.
а если все еще непонятно, полабайте например вот такое вот http://bitlash.net/wiki/start
а таких библиотечек в гугле под ардуино чем угодно жуй.
А что именно я должен был понять? Что Ардуино пытается снизить порог вхождения в область программирования МК ниже плинтуса? Это я прекрасно понимал и раньше. Другой вопрос - настолько ли оправданно это снижение? Вы действительно считаете, что код, который я написал так уж сложен (99% этого кода - копипаст из доков и Вашего кода), а чтение доков по avr-libc сильно дольше чтения доков по Arduino? А на разнице между ними вырастают быдлокодеры, которые даже даташит атмеги не видели. Напоминает подход M$ (ну, конечно, с оговоркой на открытость решения) - они уже вырастили поколение юзеров, которе считают, что интернет и браузер - это одно и тоже, и поколение программеров, которые только о программировании в картинках и знают...А про проект я вообще не понял, к чему это Вы? Для обычного avr-libc тоже туча проектов в инете есть. В том числе и такой же шел мне встречался.
у кого-то баттхерт от того что учился 5-6 лет и с трудом познавал МК? а тут какие-то ламеры с легкостью программируют Arduino. Завидно чтоли?
Видимо так, слава богу товарищ не знает сколько программистов-самоучек сидит среди бывших инженеров-строителей занявшихся написанием алгоритмов и программ для расчета предельных состояний и прочих вкусностей с ручными расчетами на 15 листов А4, а то бы и вовсе себе зад в кровь изодрал :D
А вот и не угадали - специальность у меня вообще весьма далёкая от программирования, комьютеров и электроники - я инженер-конструктор. Но когда понадобилось освоить программирование МК, у меня ушло на это не больше недели. Именно по-этому я не вижу смысла в том, что бы юзать ардуино, вместо того, что бы сесть и разобраться, как же это работает на самом деле.
Собсна первый пост ветки был про то, что разработали они именно _новый_ язык, в то время как это обыкновенный С с соответствующей библиотекой.
> у кого-то баттхерт от того что учился 5-6 лет и с трудом познавал МК?А может лучше ламеры пойдут (забив на азы вождения) гонки на болидах F1 осваивать? По принципу "я его впервые вижу, но первое место занять очень хочу!". Всяко полезнее для всех остальных будет. И зрелищно, и поголовье ламеров поубавится заодно :)
> а тут какие-то ламеры с легкостью программируют Arduino.
А они программируют? И, кстати, а при чем тут все-таки васик? В приведенных тут примерах - откровенный такой си, а хотя-бы и с удобными фенечками которые уже написали за программера. Тоже никакой ракетной науки в общем то.
> Завидно чтоли?
Только круглый дурак может завидовать отсутствию знаний ;)
Интегрированная среда разработки Arduino это кроссплатформенное приложение на Java, включающее в себя редактор кода, компилятор и модуль передачи прошивки в плату.Среда разработки основана на языке программирования Processing и спроектирована для программирования новичками, не знакомыми близко с разработкой программного обеспечения. Язык программирования аналогичен используемому в проекте Wiring[5]. Строго говоря, это C/C++, дополненный некоторыми библиотеками. Программы обрабатываются с помощью препроцессора, а затем компилируется с помощью AVR-GCC.
а слишком ли это дофига - 40 евро за штуку?
> а слишком ли это дофига - 40 евро за штуку?Нет. AVR-овские платы столько и стоят. Программатор (STK-600, afair) там на 10 килорублей тянет.
> а слишком ли это дофига - 40 евро за штуку?Да культурно вполне, многие конторы имеют и куда бОльшие аппетиты. Это ж из категории "тулзы для разработчиков железок". А там не очень скромничают насчет цен.
при открытых спеках, утюжным методом получается дешевле раза в два.
> при открытых спеках, утюжным методом получается дешевле раза в два.Да, но тут то - готовая фабричная плата, распаяна уже и все такое. Если самому даже просто плату культурно на заводе заказать, допустив что для себя любимого мы поработаем бесплатно и распайка ничего не стоит, а половина компонентов у нас уже было - все-равно дороже выйдет. Хотя можно конечно сделать несколько одинаковых, тогда сравнимо уже или даже дешевле. А так то разумеется, каждый вертится как умеет. Можно вообще что-то на запчасти распаять, плату сделать лазерным утюгом. Тогда вообще вроде как бесплатно - это даже китайцы не переплюнут :). Тем не менее если посмотреть на цены фирменных эвалбордов, 40 тугриков - довольно гуманная цена за эвалборд :)
Надоели уже эти 8-ми битные поделки. Хочу нормальный 32 битный процессор с поддержкой линукса, видюхой OpenGL ES 2, экранчиком 1380x768, с кучей разъёмов и поддерживаемых шин. Чтобы всё это вмещалось на плату размером 100x100 и стоило не больше 100 долларов. Никто не подскажет что-нибудь?
толсто, лопнешь ведь!
> и стоило не больше 100 долларов. Никто не подскажет что-нибудь?Guru Plug display скоро выйдет. 150 баксов устроит ?
> Guru Plug display скоро выйдет. 150 баксов устроит ?Пруфлинк на http://www.plugcomputer.org/?
...там цена вообще 99 попугаев за марвелловский кит...
> ...там цена вообще 99 попугаев за марвелловский кит...Вопрос был не о "марвеловском ките", и не о Sheeva Plug / Pogoplug / etc.
из AT91SAM серии попадались эвалюационные платы за 80 евро, голый контроллер с 200МГц можно уже начиная от 10 евро найти. На счёт OpenGL не знаю, но контроллер TFT у них есть, интерфейс для CMOS камеры, usb host, dma между внутренними шинами, ещё куча всяких вкусностей. Линух на них ставят, есть инфа в сети, только конечно внешний RAM нужен, у самого контроллера только 64Кб (статический).
> Надоели уже эти 8-ми битные поделки. Хочу нормальный 32 битный процессор с
> поддержкой линукса, видюхой OpenGL ES 2, экранчиком 1380x768, с кучей разъёмов
> и поддерживаемых шин. Чтобы всё это вмещалось на плату размером 100x100
> и стоило не больше 100 долларов. Никто не подскажет что-нибудь?
http://beagleboard.org/
$150
> Надоели уже эти 8-ми битные поделки. Хочу нормальный 32 битный процессор с
> поддержкой линукса, видюхой OpenGL ES 2, экранчиком 1380x768, с кучей разъёмов
> и поддерживаемых шин. Чтобы всё это вмещалось на плату размером 100x100
> и стоило не больше 100 долларов. Никто не подскажет что-нибудь?Может вам пойдет что-то типа Beagle Board? Там достаточно толстый OMAP (Cortex A8), ессно c поддержкой линукса, достаточно памяти чтобы раскочегарить гуй и есть куда внешний монитор подключить, на сколько вам там надо. Разъемы - есть, правда какие нужны вам и как это совпадает с тем что есть - кто ж кроме вас знает? Стоит правда несколько поболее 100 уе, но не сильно. См http://beagleboard.org/ если что.
ЗЫ а 8-битники имеют право на жизнь до сих пор. Ну не будете же вы ставить 32-битную монстрилку с внешней памятью и линуксом чтобы решить задачу на уровне "светодиодом помигать"?! Оверкилл же аццкий. Как раз такие задачи 8-битниками нормально решаются, при том 32-битники имеют свойство быть неповоротливее когда речь заходит о работе с GPIO на приличных скоростях, т.е. дергание лапками или реакция на изменения состояний оных на скорость. Хотя рази справедливости замечу что 32-битные Cortex M0 и M3 8-битников немного подвинули, но линух на них запускать все-таки изврат полнейший.
>Никто не подскажет что-нибудь?Спасибо за помощь, помогли. Русский одноплатный компьютер и beagle board это как раз то что нужно.
Насколько я знаю, оно программируется на java.
> Насколько я знаю, оно программируется на java.Кто оно? АТмега? Да туда сама виртуальная машина не поместится, я уж не говорю про ресурсы, необходимые для выполнения java-проги... Как и на чём оно программируется посмотрите чуть выше в комментах.
> Насколько я знаю, оно программируется на java.O_o
Асм, C и микропаскаль. Отдельные ребята строят DSL :)
Asm -> Forth -> Lisp -> DSL
> Насколько я знаю, оно программируется на java.А что, какой-то герой в такую мелкую атмелку JVM как-то засунул?!
Нафига мне эта 8-ми битная игрушка, если за 49 баксов я на 32-битном Арм контролере получу решение значительно мощнее с рекофигурируемой логикой(в том числе аналоговыми блоками), акселерометром, сенсорными кнопками, раз'ёмом для безпроводной связи.
> Нафига мне эта 8-ми битная игрушка, если за 49 баксов я на
> 32-битном Арм контролере получу решение значительно мощнее с рекофигурируемой логикой(в
> том числе аналоговыми блоками), акселерометром, сенсорными кнопками, раз'ёмом для безпроводной
> связи.Ну, откровенно говоря, это можно сделать и на АВР-ке. Вопрос только в стоимости. :) Акселерометр стоит чуть более $1, беспроводка - 800 рублей.
У восьмибитных контроллеров есть свои преимущества.
Вот, например, тут автор приводит некоторые - http://easyelectronics.ru/arm-uchebnyj-kurs-vvodnaya.html
> Нафига мне эта 8-ми битная игрушка, если за 49 баксов я на
> 32-битном Арм контролере получу решение значительно мощнееА не всегда моща нужна. Зачем для мигания светодиодами например куча мегагерцев и 32 бита вообще? Порой 32-битники еще и обвязки больше требуют (атмелу по минимуму надо чуть ли не пару деталей на плате для старта кристалла с внутреннего генератора). Кроме того у 8-битников как правило быстрая и предсказуемая по времени реакция на прерывания и они резво работают с портами GPIO, что позволяет "софтварно" изображать многое из того что иначе потребовало бы жесткой или программруемой логики. У 32-битников, особенно толстых с этим обычно несколько хуже все, а рассчитать с точностью до тактов генератора реакцию на события на совсем толстых не выйдет из-за кеша вообще, который вносит изрядную неопределенность. В то же время на такой атмелке в силу отсутствия кеша и выполнения почти всех команд за такт можно очень аккуратно выдерживать все времена, буквально подогнав времена расстановкой команд. Что позволяет оперировать временами реакции на события с точностью чуть ли не долей микросекунд, если уж оно хочется. Да и жрут 32-битники как правило больше. Особенно если мощой молотить. А если от батареечки питаться хочется? Сейчас правда развелось немало прикольных ARMов на Cortex M0 и M3 подпирающих в ряде применений 8-битников, не отнять.
ЗЫ а вы про какой именно ARM? 49 баксов что именно за плата? А то описание достаточно интересное для своей цены.
> (атмелу по минимуму надо чуть ли не пару деталей на плате
> для старта кристалла с внутреннего генератора)Атмеге по минимуму надо на плате только питание от 1.8 до 5.5В - всё остальное уже опционально и зависит от контекста =). Если питание чистое, стабильное и не нужна аналоговая часть то даже никакие фильтры ставить не нужно.
> питание чистое, стабильное и не нужна аналоговая часть то даже никакие
> фильтры ставить не нужно.Ну, как минимум конденсатор по питанию ставить около каждого чипа цифровой логики - хорошая практика (в плане профилактики трудноуловимых глюков) :P. А так то да, атмелки этим как раз и хороши. У некоторых в итоге даже развивается мания - решать все задачи путем установки чипа с нужной фирмварой, реализующего все что угодно :D.
У проекта есть шанс на успех, когда питание будет от 12V DC. В тех приложениях, где от него можно было бы извлечь какую-то практическую пользу ("умный дом") использование двух не вполне стандартных напряжений для питания не вполне удобно и слишком накладно.
никаких проблем. там же есть штекер питания. рекомендуется 9в, терпимо от 7 до 12. там же обычная кренка стоит. но можно питать и от юсб. переключение между питаниями автоматическое.
Вообще-то этой хрени достаточно питания по USB. Работает без проблем. Ну а ежели хочется еще питать внешним источником 12В, не вопрос, КРЕН-ка(стабилизатор напряжения) тебе в помощь.