Показаны сообщения с ярлыком ArduinoMega. Показать все сообщения
Показаны сообщения с ярлыком ArduinoMega. Показать все сообщения

19.02.2012

Freeduino Mega 3.0.0

MK90 выпустил новую ревизию Freeduino Mega2560 (соответствует Arduino Mega2560 R3), изменилось следующее:

  1. Разведены четыре дополнительных дырки для bit-bang;
  2. Колодки соответствуют arduino pinout 1.0;
  3. ATmega16u2 в качестве контроллера USB.


Замена ATmega8u2 на ATmega16u2 добавит 8К flash для программ, расширяющих функциональность стандартной прошивки-конвертера последовательного порта - по сути, это просто приглашение к возможности реализаций ваших идей. Кроме дополнительной памяти, предлагаются и дополнительные линии ATmega8u2/16u2 (расположены на Freeduino ONE и Mega2560 одинаково):



В последних версиях Arduino UNO и Freeduino ONE линия DFU уже притянута к GND, поэтому для смены прошивки и входа в режим DFU достаточно кратковременно соединить линию сброса с землей:



После этого, на шине появляется устройство 03eb:2ffa, и можно воспользоваться утилитами FLIP или dfu-programmer (первая больше подойдет владельцам Windows, вторая - Linux). Далее все выглядит аналогично описанию в этой статье, только в качестве типа MCU надо писать at90usb82.  

Всем скептикам, мучающимся вопросом "а зачем менять прошивку в AtmegaU?" посоветую пока этот небольшой блог: http://hunt.net.nz/users/darran. В следующих постах постараюсь осветить тему использования DFU более подробно.

Также, справедливости ради, замечу - в версиях Arduino Uno/Mega2560 R3 применена новая схема сброса:


Авторы окрестили ее термином "более надежная". В принципе - да, если на линии сброса присутствует некоторая емкость - диод D2 помогает быстро ее "обнулить".  Как они набрели на это гениальное усовершенствование, история умалчивает - но копировать его я пока не спешу. 

На всякий случай, еще раз повторюсь, в чем отличие Freeduino от MK90 и Arduino от arduino.cc:
  • оба резонатора Freeduino - кварцевые, у Arduino резонатор основного MCU - керамический, что ухудшает точность вычисления задержек в ваших скетчах;
  • у Freeduino исключены все дополнительные резисторы из схем подключения обоих микроконтроллеров (последовательный 27 Ом и параллельный 1МОм), поскольку они явно лишние (и потенциально вредные);
  • к стабилизатору +3.3В у Freeduino добавлен шунтирующий конденсатор, согласно типовой схеме включения, что положительно сказывается на работе шилдов и любых схем, берущих питание с колодки POWER/3V3;
  • отсутствует диод в схеме сброса основного MCU.
Купить Freeduino Mega2560 v3.0.0 можно здесь: http://mk90.ru/store/ru/microcontrollers/50-freeduino-mega-2560.html

Схема:




23.09.2011

И снова о LoLShield

Спешу довести до владельцев LoLShield информацию о новой библиотеке - LoLShieldRus. Использовать библиотеку с сайта https://code.google.com/p/lolshield/ сильно не рекомендуется, сейчас объясню, почему.

Сам автор - Джимми Роджерс - давно уже переключился на другие проекты,  а доработкой больше всех занимался Matt Mets, который, впрочем, тоже переключался на другие проекты, и вероятно именно поэтому на Google Code можно скачать только версию 0.2 оригинальной библиотеки. Впрочем, Мэтт периодически возвращался и делал какие-то изменения, но - на GitHub:
  • в июле 2010 он пофиксил ошибку с PROGMEM;
  • тогда же - добавил экспериментальные функции изменения яркости (так называемый "grayscale support"), утилиты для конвертации фонтов;
  • в январе 2011 он удалил массу функций из основной ветки - и яркость, и двойной буфер;
  • в феврале 2011 он пофиксил ошибку, из-за которой библиотека не работала с ATmega1280/2560;
  • в июле 2011 немного упорядочил структуру файлов в проекте.
Для поддержки русского языка я решил перенести именно его код в свой проект, но не стал форкаться: есть у меня кое-какие идеи, связанные с будущим развитием и библиотеки, и шилда. Пока же никаких серьезных изменений: присутствует фонт с заглавными русскими символами (для экономии флеш-памяти, идентичные по написанию символы заимствуются из английского алфавита), а также пример для вывода русского текста в виде бегущей строки.


23.04.2011

Arduino + Ethernet + mircoSD

После выхода новой Arduino Ethernet Shield 05 прошло довольно много времени, но недавно  мне случилось снова обратиться к этой теме, изучая возможности платы Freeduino EthernetSD Shield:




Отправная точка для ее создания сходна с Freeduino One - попытка собрать ограниченную партию для собственных нужд из доступной комплектации. Но попутно выяснилось много маленьких, но интересных фактов.

Например - каким образом новая плата оказалась совместима с Mega?

Напомню историю проблемы: в Arduino обмен с Ethernet-чипом W5100 происходит по шине SPI, и сначала сигналы на Arduino Ethernet Shield были разведены прямо от колодки цифровых входов 11,12 и 13, к которым и был привязан аппаратный SPI на ATmega168/328. Но после триумфального выхода Arduino Mega все вдруг с опозданием спохватились, что аппаратный SPI "переехал" на 50,51 и 52 - и это стало причиной несовместимости MEGA не только с EthernetShield, но и вообще со всеми шилдами, использовавшими аппаратный SPI.

Именно в результате этого недоразумения SPI теперь принято разводить с колодки ICSP, которая, к огромному счастью, сохранила свое позиционное расположение во всех оригинальных платах Arduino. Заглянем на обратную сторону EthernetSD шилда:



Таким образом, SPI-сигналы MISO, MOSI и SCK будут всегда правильными:
  • в обычных (не-MEGA) платах будут использоваться digital 11,12,13;
  • в Mega и Mega2560 - 50,51,52.
Единственный сигнал, которого нет на вилке ICSP - это SS (Slave Select). Низким уровнем он выбирает ведомое устройство на шине SPI, с которым будет общаться ведущее (в нашем случае - ATmega):
  • для выбора Ethernet используется digital 10;
  • для выбора SD-карты используется digital 4.
Соответственно, использовать digital 10 и 4 в схемах с EthernetSD Shield для какого-то другого применения - нельзя.


Ради интереса можете сравнить решение по доступу к SD с вариантом от libellium, котрое я разбирал в статье MicroSD Shield (в основе - тот же резистивный делитель для согласования уровней сигналов). В старой версии Ethernet Shield разъем SD никогда не напаивался (лишь гордо блестели залуженные площадки из-под маски, напоминая о былых ошибках и вселяя ложную надежду в сердца тех, кто рассчитывал напаять разъем и получить какие-то дополнительные функции) - то ли из-за отсутствия согласования сигналов по уровню 3,3В, а может - из-за отсутствия программной поддержки. Да и сигналы эти были разведены на другие пины. Но теперь SD и Ethernet физически разделяют одну шину SPI, одинаково используя преимущества аппаратной поддержки в ATmega.

Отсюда, кстати, вытекает второй нюанс: в случае необходимости работать и с SD-картой, и с Ethernet, между ними придется попеременно переключаться. В принципе, это вполне возможно, особенно в режиме TCP - если данные все-таки потеряются по приему, TCP перезапросит пропущенный фрагмент и автоматически уменьшит окно. Ну, по крайней мере, мне в это хочется верить ;) 

На оригинальной схеме Arduino Ethernet Shield 05 сигналы детекта карты и защиты от записи почему-то оказались не разведены на разъем microSD, но сохранены для полноразмерного SD-разъема (они даже имеют подтяжки 10К к Vcc). Я некоторое время колебался - но в итоге оставил эту странность в покое ради полной совместимости. Ведь представьте себе - установка/изъятие SD-карты влечет изменение уровня на analog0 и автоматически приводит к невозможности его использования для других целей.

Авторы по прежнему сохраняют разорванную перемычку INT, которая может соединить выход прерывания W5100 c digital2 и использовать для ввода/вывода механизм прерываний. Однако, поддержка прерываний с W5100 так до сих пор и не реализована: библиотека работает традиционным для Arduino методом пулинга (постоянного опроса состояния буфера из скетча).



Схема сброса с дополнительным супервизором и триггером Шмидта в придачу сразу сняла все непонятные глюки, которые у меня наблюдались с первой версией платы. Жить стало проще и веселее (с) ;)

Заслуживает нескольких слов и программная поддержка, над которой сообщество также изрядно потрудилось.

Когда-то я мучительно плодил классы для работы с UDP, в конечном итоге добиваясь возможности синхронизации времени по протоколу NTP. Но прогресс не стоит на месте и теперь UDP включен в библиотеку вEthernet в составе ArduinoIDE 0022, ничего изобретать не надо. Кроме того, энтузиастами написана поддержка следующих возможностей:

  • EthernetDHCP, позволяет получать IP-адрес динамически, поддерживается блокирующий и неблокирующий режим вызова функций; есть возможность обновления lease (и перехода на другой IP, если его поменяют "на лету"). Более, чем достаточно!
  • EthernerDNS, позволяет преобразовывать символические имена в реальные IP-адреса. Необходимо только знать IP-адрес своего DNS-сервера - например, взять из DHCP lease (см. выше);
  • EthernetBonjour,  поддержка протокола Bonjour/Zeroconf, реализующего MulticastDNS и DNS Service Discovery - при помощи него вы можете донести до остальных пользователей информацию о том, какие сервисы запущены на вашем Arduino (поклонники Apple быстрее остальных поймут, о чем речь ;)
  • WebDuino, библиотека с каркасом для построения веб-серверов на основе Arduino - включает в себя парсинг URL и прочие полезные функции. Почему-то напомнила CGI.pm ;)
  • RadiusClient, библиотека для поддержки авторизации по протоколу Radius (видимо, Diametr должен быть на подходе ;)
  • UdpNtpClient, пример из стандартной библиотеки, запрашивающий по NTP время и расшифровывающий ответ в виде ЧЧ:ММ:СС. Что я могу сказать... весьма грубо усеченный, но рабочий вариант.
Недавно мне задали вопрос: "Насколько сложно программировать для EthernetSD Shield?" В качестве демонстрации ответа, приведу решение задачи, которую один мой знакомый сформулировал так: "у меня есть компьютер с портом RS232, надо дать к нему доступ через Internet". При этом от предложений на основе PC+Linux он отказался в пользу Arduino+Ethernet Shield. Учтите, выставлять в public internet сервер Telnet - чистое безумие не совсем безопасно! Так что используйте на свой страх и риск:


//  Copyright (C) 2011 Ilya Danilov
//  http://mk90.blogspot.com
//
//  TelnetServer is free software: you can redistribute it and/or modify
//  it under the terms of the GNU Lesser General Public License as
//  published by the Free Software Foundation, either version 3 of
//  the License, or (at your option) any later version.
//
//  TelnetServer is distributed in the hope that it will be useful,
//  but WITHOUT ANY WARRANTY; without even the implied warranty of
//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
//  GNU Lesser General Public License for more details.
//
//  Illustrates how to make simple Telnet Server based on Ethernet Shield.

#if defined(ARDUINO) && ARDUINO > 18
#include <SPI.h>
#endif
#include <Ethernet.h>
#include <EthernetDHCP.h>
#include <SD.h>

byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xEC };

#define MAXPASSLEN  16
#define READ_TIMEOUT_IN_MS 60000L
char enteredPassword[MAXPASSLEN];
char cardPassword[MAXPASSLEN];

Server server(23);

// Just a utility function to nicely format an IP address.
const char* ip_to_str(const uint8_t* ipAddr)
{
  static char buf[16];
  sprintf(buf, "%d.%d.%d.%d\0", ipAddr[0], ipAddr[1], ipAddr[2], ipAddr[3]);
  return buf;
}

void setup()
{
  pinMode(10, OUTPUT);
  pinMode(4, OUTPUT);
  digitalWrite(10, HIGH);
  digitalWrite(4, HIGH);
  
  SD.begin(4);
  digitalWrite(4, HIGH);
    
  Serial.begin(9600);
  
  Serial.println("Attempting to obtain a DHCP lease...");
  EthernetDHCP.begin(mac);

  const byte* ipAddr = EthernetDHCP.ipAddress();
  const byte* gatewayAddr = EthernetDHCP.gatewayIpAddress();
  const byte* dnsAddr = EthernetDHCP.dnsIpAddress();
  
  Serial.println("A DHCP lease has been obtained.");

  Serial.print("My IP address is ");
  Serial.println(ip_to_str(ipAddr));
  
  Serial.print("Gateway IP address is ");
  Serial.println(ip_to_str(gatewayAddr));
  
  Serial.print("DNS IP address is ");
  Serial.println(ip_to_str(dnsAddr));
  
  server.begin();
}


boolean authenticateClient(Client &client) {
  int i=0, k=0;
  unsigned long timeoutTime;
  
  delay(500);
  client.flush(); // kill telnet handshake junk
  memset(enteredPassword,0,sizeof(enteredPassword));
  
  for (i=0;i<3;i++) {
    client.println("Password:");
    k = 0;
    timeoutTime = millis() + READ_TIMEOUT_IN_MS;
    while ( (k<MAXPASSLEN) && client.connected() && (millis() < timeoutTime) ) {
      char ch = client.read();
      if (ch != -1) {
        if (ch == '\r') continue;
        if (ch == '\n') break;
        enteredPassword[k++] = ch;
      } else delay(10);
    }
    
    if (millis() >= timeoutTime) return false;  
    if (!client.connected()) return false;  
        
    // read password from SD
    if (enteredPassword[0]) {
      if (SD.exists("passwd")) {
        memset(cardPassword,0,sizeof(cardPassword));
        k = 0;
        File f = SD.open("passwd"); 
        while (f.available() && k<MAXPASSLEN ) {
          char ch = f.read();
          if (ch == '\r') continue;
          if (ch == '\n') break;
          cardPassword[k++] = ch;
        }
        f.close();
        digitalWrite(4, HIGH);
        
        // compare
        if (!strcmp(cardPassword,enteredPassword)) 
          return true;
        else {
          client.println("Password mistmatch, try again!"); 
        }
      } else {
        client.println("Password file not found\n");
      } 
    } 
  } 
  return false;
}

void loop()
{
  boolean authenticated = false;
  //EthernetDHCP.maintain();
  
  // listen for incoming clients
  Client client = server.available();
  if (client) {
    while (client.connected()) {
      if (!authenticated) {
        if (!authenticateClient(client)) {
          client.println("Authorization failed.");
          client.stop();
          break;
        } else authenticated = true;
      } else { //auth passed
        if (client.available()) {
          char c = client.read();
          Serial.print(c);
        }
        if (Serial.available() >0 ) {
          char c = Serial.read();
          client.print(c);
        }
      }
    }
  }
}



После старта Arduino получает адрес динамически и выводит его через Serial-порт, чтобы было понятно, на какой IP ломиться telnet-клиентом. По входящему соединению выдается запрос "Password:", полученная в ответ комбинация символов сравнивается с содержимым простого текстового файла passwd, который располагается в корне SD-карты (внутри файла просто пароль, не путать с /etc/passwd :).

И как водится во всех сказках, на ввод правильного пароля дается три попытки ;)

Если выкинуть авторизацию, скетч займет один экран. Сложно? Не думаю, хотя для серьезных задач потребуется изучение нюансов. В итоге: после компиляции скетч занял 23К в памяти, переключение между SD-картой и Ethernet работает нормально.

Как всегда, часть плат пока еще доступна здесь.

28.09.2010

Arduino IDE 0020

Как и предполагалось, вслед за анонсом плат Aruino Uno и Mega2560 появился и очередной релиз ArduinoIDE 0020. Прямо сейчас уже можно качать дистрибутив ArduinoIDE для Windows и Mac OS X, надеюсь чуть позже можно будет и для Linux. Никаких изменений в синтаксисе нет, лишь десяток мелких исправлений, большинство - в примерах. Ну и новая иконка, конечно же ;)


Одновременно стали проясняться новые подробности о платах Uno и Mega2560.

ATmega8U2

Прошивка этого чипа изображает из себя CDC-устройство (подобно AVR-Doper), поэтому никаких проблем с драйверами не будет - используются те, что уже есть в операционной системе по умолчанию. Правда, установить inf-файл все-таки придется, но дальше - все по-старому.

Замену FT232RL на ATmega8U2 объясняют грядущей универсальностью. Если FT232RL умела работать исключительно мостом USB-TTL, то новый чип может быть перепрограммирован и таким образом превращен в устройство типа "клавиатура", "мышь", MIDI или даже Mass Storage. Для смены прошивки надо замкнуть специальный джампер:


и после этого будет активизирован специальный DFU-бутлоадер, позволяющий менять прошивку через USB.

Регулятор +3.3В

Я уже упоминал о том, что с исчезновением FT232RL авторам пришлось добавить регулятор +3.3В, дабы не потерять совместимость с существующими Shield-платами. Так вот, мало того, что этот регулятор в три раза мощнее - 150 мА, он еще и весьма стабилен - 1%. А это значит, что его можно использовать в качестве источника опорного напряжения для АЦП и повысить таким образом точность измерений (о подобном решении, но с применением внешнего ИОН-а LM385 см. в статье Простое повышение точности АЦП Arduino ).


Optioboot

Теперь проект Arduino использует новый бутлоадер - Optioboot. Во-первых, он умещается в минимальном предопределенном объеме для бутлоадера ATmega - ему нужно всего 512 байт! Иными словами, старинное решение +1К памяти уже не является рекордом. Попутно увеличена в два раза скорость загрузки - 115200. Пока это работает только с ATmega168 и ATmega328, но на подходе и ATmega8 - вот уж для него-то действительно актуально полтора килобайта свободной памяти (+25%).

Кстати, существующие платы Decimila/Duemilanova и совместимые клоны также можно проапгрейдить новым бутлоадером - однако, для этого понадобится ISP-программатор. И после этого надо обязательно выбрать в ArduinoIDE 0020 тип платы "Arduino Uno", иначе из-за разницы в скоростях у вашего open hardware и software не получится консенсуса ;)

Серийный номер

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

Резонатор

Честно говоря,  я думал, что на плате два кварца, но оказывается - это не так. У ATmega8u2 действительно кварц 20 ppm (вероятно, это диктуется стабильностью работы по USB), а вот у основной ATmega - керамический резонатор, у которого точность в пять раз хуже - 100 ppm! Объясняется это тем, что, типа, никому такая точность не нужна. Спорное утверждение.

Прошивка по умолчанию

Вводится понятие "прошивка из коробки". Теперь сразу зашивается Firmata, так что Arduino можно без лишних сентенций сразу стыковать с Processing, главное об этом вообще хоть что-то знать. Я немного описал этот процесс в статье Processing vs Arduino. С другой стороны - зачем такая спешка?

Больше дырок

И действительно, теперь в плате на одно отверстие больше - это удобно, когда надо закрепить плату на какой-то конструкции. Редко такие вещи продумываются заранее, поэтому в основном имеем импровизацию и лишняя дырка может оказаться вовсе и нелишней ;)

Что дальше?

А дальше нас ждет какой-то вариант Arduino Ethernet, долгожданный Arduino IDE 1.0, а также некий TinkerKit - эдакий наборчик с печатными платками и транзисторами, светодиодами, джойстиком, реле, MOSFET-ами и прочей "ерундой" (ожидается 18 Октября, вместе с запуском мультиязычного Arduino Store - на смену текущему Smart Projects).

Источники:

10.08.2010

Новая Arduino Ethernet shield

Готовится к выходу новая версия оригинальной Arduino Ethernet Shield:


Самое значимое изменение вы уже наверное заметили - добавлен слот microSD. И если раньше это был всего лишь декоративный элемент, то в грядущей версии ArduinoIDE 0019 он станет поддерживаться специальной sdfatlib, которая сейчас пока умеет только читать существующие файлы. Но, как говориться, лиха беда - начало!

Кроме этого, при подключении через ISCP-гребенку шилд будет совместим с Arduino MEGA, а также будет содержать дополнительный контроллер сброса, снимающий некоторые проблемы с работой Arduino+Shield сразу после подачи питания.

Кстати, ArduinoIDE 0019 выходит в конце недели. Редакция будет следить за развитием событий ;)

12.05.2010

Вот такая Mega

Случилось так, что мне пришлось внимательно рассматривать Arduino Mega и попутно я выяснил одну забавную деталь, которая может быть интересна владельцам.



Как известно, классическая схема Arduino предполагает наличие двух конденсаторов-электролитов в цепи питания. Один ставится перед регулятором, другой - после. На разных версиях оригинальных Arduino и совместимых иже с ними эта емкость варьируется от 47 до 100 мкФ, при этом обязательно шунтируется керамическим конденсатором 100 нФ.

Но при разработке Arduino Mega итальянцы вдруг решили заменить электролиты на чип-тантал (фото оригинальной платы):



106 - так обозначается 10 мкФ, а магическая комбинация 1C кодирует предельное напряжение - 16 Вольт. Смотрим в схему:



Слева - разъем подачи внешнего питания, C6 и C7 - "те самые" электролиты. Самое время заглянуть в спецификации, которые оговаривают напряжение питания на этом разъеме. Рекомендованное заявлено как 7-12 Вольт, а предельное - 6-20 Вольт. Получается, что это не соответствует установленным элементам: предельное напряжение для такой платы все-таки 16 Вольт.

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

11.10.2009

Harness Kit для Arduino Mega

Что делать, если Вы собрали свою схему с классическим Arduino и хотите похвастаться перед поклонниками (полонницами)? Или хотите водрузить ее на движущегося робота? В голову сразу  приходит мысль о какой-то жесткой основе, на которой надо закрепить батарейку, Arduino и мини-макетку со схемой. Ведь одно неловкое движение, и провода вылезают из гнезд, а схема становится неработоспособной. Я уже не говорю о том, что рук не хватит держать все компоненты и при этом по-итальянски темпераментно жестикулировать, поясняя работу устройства ;)

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

Harness Kit поможет обойтись без эпоксидки:


Открытая упаковка выглядит приблизительно так:


На фото видна основа, бокс для "кроны" с батарейным разъемом, два переходника на цилиндрический разъем питания и мешочек с детальками. Основание выполнено из прозрачного пластика методом lasercut, просто закрыто бумагой.



Комплект крепежа в пакетике:
  • ножка-клипса - 4 шт.
  • винтик с гайкой и изолирующей шайбой - 3 шт.
  • крепление-клипса - 4 шт.
  • пластиковый винт с гайкой - 4 шт.

Первым делом, основу надо установить на ножки. Каждая ножка-клипса состоит из двух частей:



Большая часть свободно вставляется в дырку на основе:



... а затем в нее вставляется меньшая часть, которая действует подобно "многоразовой заклепке":







Теперь надо закрепить батарейный отсек. Это делается тремя маленькими металлическими винтиками диаметром 1,8 мм и длиной 9 мм.



Винтик полностью утопает в углублении и не мешает ставить батарею. Логично, только зачем при этом изолирующая шайба? По идее, ей ничего изолировать не требуется. Итак, готово:



На фото аккумулятор. Кстати, сильно помогает экономить "кроны".

Далее, надо закрепить плату. Тут можно использовать подходящие по диаметру крепления-клипсы:



Принцип почти тот же, что и у ножек. Вставил-надавил-зафиксировал. Поскольку автор этого Kit-а - Альберт Миао, разъем на батарейном отсеке без лишних вопросов стыкуется с разъемом Seeeduino Mega:



Но предусмотрены и другие варианты. При помощи переходников можно подключить и классический Arduino, а также запитать Seeeduino от цилиндрического разъема питания:





Размер основания позволяет закрепить и Arduino Mega:



Если устанавливать Diecimila или Duemilanova, то останется свободное место, которым можно распорядиться с умом:



Если требуется прикрепить другие части, можно воспользоваться пластиковыми винтиками:





Дополнительный плюс таких пластиковых винтиков (диаметр 2,5 мм) - они являются также диэлектриками, в случае чего. А вот если подобрать миниатюрную макетку и маленький LCD, то можно и все четыре компонента разместить:



Краткий итог: в принципе, смотрится неплохо, вполне удобно и универсально. Я доволен тем, что соблюдается основное и самое главное правило "ленивого" макетирования - возможность одним движением быстро поставить или снять плату, подключить питание. Но, цена, конечно, могла бы быть и поменьше. Был бы под рукой лазерный резак ;) - можно было и самому сделать!

24.04.2009

Хак Arduino Mega и Ethernet Shield

И действительно, Ethernet Shield не будет работать с Arduino Mega. Всё из-за того, что для общения с чипом W5100 используется аппаратный SPI, а он уехал в Mega на пины 50..53.

Но умные люди в этом разобрались: надо освободить нужные пины Ethernet Shield:



И подключить их в нужное место:



Коряво, конечно, но - работает. Придется еще поправить номера пинов в Ethernet Library, это подробно расписано на страничке автора хака (nkcelectronics):

http://mcukits.com/2009/04/06/arduino-ethernet-shield-mega-hack/

22.04.2009

26.03.2009

Arduino Mega выпущен официально

Сегодня на официальном сайте arduino.cc появилась ссылка на новую плату Arduino Mega, а также на новую Arduino IDE 0015, которая будет ее поддерживать. Как я уже писал, плата базируется на ATmega1280 (datasheet), и совместима с предыдущими Shield-платами по расположению контактных колодок, которых стало заметно больше ;)

Итак, вот что мы имеем:

MicrocontrollerATmega1280
Operating Voltage5V
Input Voltage (recommended)7-12V
Input Voltage (limits)6-20V
Digital I/O Pins54 (of which 14 provide PWM output)
Analog Input Pins16
DC Current per I/O Pin40 mA
DC Current for 3.3V Pin50 mA
Flash Memory128 KB of which 4 KB used by bootloader
SRAM8 KB
EEPROM4 KB
Clock Speed16 MHz

Основные изменения такие:
  1. Теперь есть четрые последовательных порта: Serial, Serial1, Serial2, Serial3.
  2. Можно повесить пять обработчиков прерываний на пины 2, 3, 18, 19, 20, 21.
  3. 14 каналов ШИМ (PWM)
  4. Поддержка I2C сохранилась, но переехала на другие пины - 20 и 21 (а была на analog 4 и 5).
Начаты продажи через официальный международный сайт команды Arduino, стоит 49 EUR.

20.03.2009

Arduino MEGA

Через один итальянский сайт просочилось первое фото нового Arduino:



Пока официальный сайт сохраняет молчание, можно ориентировочно предположить, что:
  • главный чип - ATmega1280
  • память программ - 128 Кб
  • оперативная память - 4 Кб
  • EEPROM - 4 Кб
  • 53 пина ввода-вывода
  • 4 аппаратных UART
  • 15 ШИМ-выводов (PWM)
  • поддержка I2C
  • 16 аналоговых входов
Некоторые (вероятно, близкие к разработчикам) товарищи уже клепают для этой платы MEGA-Shield-ы, собирая их в подобие древних пирамид:









От себя добавлю: кажется, эта плата будет совместима с предыдущими модификациями Shield-плат, т.е. авторы сохранили расположение колодок на старых Arduino.

Следите за новостями!