Страница 1 из 2

Atmega328 , ардуино , радиосвязь.

Добавлено: Сб фев 21, 2015 13:08:24
mehanik_universe
Здравствуйте, у меня несколько вопросов на которые в гугле я не нашел ответов.
Я только учусь программировать, отнетситесь пожалуйста с пониманием.
1) Я хочу осуществить радио связь при помощи двух ардуин на Atmega328 одна из которых самодельная. Радиомодули у меня XY-MK-5V. Нашел только библиотеки которые работают с терминалом, а мне нужно что-то типо подал на 13 пин лог 1 , на другой дуине появилась лог 1.
что-то максимально простое,хочу сделать радиоуправление для машинки.Буду благодарен за примеры.
2) как я уже писал одна дуина самодельная, скажите пожалуйста как при помощи arduino UNO заливать скетчи в самодельную. Неохота постоянно мегу328 вынимать))

Re: Atmega328 , ардуино , радиосвязь.

Добавлено: Сб фев 21, 2015 14:32:09
Morroc
В вашу самоделку, наверное, проще лить без загрузчика через "Файл - Загрузить с помощью программатора" типа как тут http://habrahabr.ru/post/144620/.

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

Возможно стоит глянуть в эту сторону http://www.airspayce.com/mikem/arduino/VirtualWire.pdf http://kind-evil.blogspot.ru/2013/04/43 ... odule.html

Re: Atmega328 , ардуино , радиосвязь.

Добавлено: Сб фев 21, 2015 15:23:06
mehanik_universe
по первому вопросу, мегу я покупал с загрузчиком, я хочу узнать как в неё заливать дуиновские скетчи, а то приходится ставить её в панельку arduinoUNO, заливать скетч, вытаскивать и ставить обратно на плату.

Re: Atmega328 , ардуино , радиосвязь.

Добавлено: Сб фев 21, 2015 20:24:58
kalobyte
mehanik_universe писал(а):я хочу узнать как в неё заливать дуиновские скетчи,
тебе нужен адаптер http://www.ebay.com/itm/6Pin-USB-2-0-to ... 5d4397cc60
у него есть вывод дтр, который подключается к сбросу и вроде бы там еще конденсатор надо или резистор допаять к контроллеру, недавно видел что-то на эту тему
короче цепь сброса должна быть

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

как вариант - купить программатор http://www.ebay.com/itm/Mini-USBISP-USB ... 2edd4c1d37
правда там вроде тоже надо прошивку залить для работы с дудкой
mehanik_universe писал(а): Радиомодули у меня XY-MK-5V.
для них есть библиотека http://www.airspayce.com/mikem/arduino/ ... __ASK.html
я сейчас ковыряю http://www.airspayce.com/mikem/arduino/ ... NRF24.html
но модули как у тебя у меня тоже есть, только самопальные с питанием 3-5в на передатчике, а китайские требуют 12в для нормальной работы

Re: Atmega328 , ардуино , радиосвязь.

Добавлено: Сб фев 21, 2015 20:45:00
mehanik_universe
но ведь можно и без переходника дуиновские скетчи заливать, дуина это же и программатор... Я в тинни13 заливал ,только там ядро нужно было скачать, для меги321 почему-то таким макаром не получается, там проводки кидаются на reset,MISO,SCK,MOSI.задолбался гуглить уже,никакой инфы нет...

Re: Atmega328 , ардуино , радиосвязь.

Добавлено: Сб фев 21, 2015 20:49:27
mehanik_universe
Спойлер
kalobyte писал(а):
mehanik_universe писал(а):я хочу узнать как в неё заливать дуиновские скетчи,
тебе нужен адаптер http://www.ebay.com/itm/6Pin-USB-2-0-to ... 5d4397cc60
у него есть вывод дтр, который подключается к сбросу и вроде бы там еще конденсатор надо или резистор допаять к контроллеру, недавно видел что-то на эту тему
короче цепь сброса должна быть

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

как вариант - купить программатор http://www.ebay.com/itm/Mini-USBISP-USB ... 2edd4c1d37
правда там вроде тоже надо прошивку залить для работы с дудкой
mehanik_universe писал(а): Радиомодули у меня XY-MK-5V.
для них есть библиотека http://www.airspayce.com/mikem/arduino/ ... __ASK.html
я сейчас ковыряю http://www.airspayce.com/mikem/arduino/ ... NRF24.html
но модули как у тебя у меня тоже есть, только самопальные с питанием 3-5в на передатчике, а китайские требуют 12в для нормальной работы
http://3g1l.com/blog-burn-bootloader-bl ... rduino-uno вот например

Re: Atmega328 , ардуино , радиосвязь.

Добавлено: Сб фев 21, 2015 21:10:40
Morroc
mehanik_universe писал(а):но ведь можно и без переходника дуиновские скетчи заливать, дуина это же и программатор... Я в тинни13 заливал ,только там ядро нужно было скачать, для меги321 почему-то таким макаром не получается, там проводки кидаются на reset,MISO,SCK,MOSI.задолбался гуглить уже,никакой инфы нет...
Как нет :shock: и на радиокоте есть http://radiokot.ru/circuit/digital/pcmod/48/ и на arduino.cc http://arduino.cc/en/Tutorial/ArduinoISP, у меня правда с мега8 были какие то проблемы, разбираться не стал - запрограммил через usbasp. А то что загрузчик уже есть... какая разница, нужен будет - зальете заново, делов то.

Re: Atmega328 , ардуино , радиосвязь.

Добавлено: Сб фев 21, 2015 22:44:55
mehanik_universe
не получается залить скетч,для этого дудка не нужна случайно?

Re: Atmega328 , ардуино , радиосвязь.

Добавлено: Сб фев 21, 2015 23:03:17
Morroc
дудка - часть среды ардуино, включите в св-вах галку чтобы подробные сообщения при программировании выводились

скетч arduinoisp лучше новый скачать, вроде одно время ошибка там была

напишу примерно как я делал (хотя в общем по инструкции) - взял arduino nano, залил туда скетч arduinoisp, соединил mosi/miso/clk/reset с мегой328, выбрал в среде ардуино программатор "arduino as isp" и залилось

Re: Atmega328 , ардуино , радиосвязь.

Добавлено: Вс фев 22, 2015 00:38:37
kalobyte
mehanik_universe писал(а):для меги321 почему-то таким макаром не получается
328 ты хотел сказать?
чтобы заливать, нужно тогда руками в консоли запускать дудку с ключом программатора
я не знаю как называется программатор, если зашит скетч исп
у меня 2 платы и я пользуюсь загрузчиком, а для меги8 голой я использую обычный программатор на базе фт2232 или китайский универсальный тл866а со своей прогой

Re: Atmega328 , ардуино , радиосвязь.

Добавлено: Вс фев 22, 2015 10:27:08
mehanik_universe
Спойлер
Morroc писал(а):дудка - часть среды ардуино, включите в св-вах галку чтобы подробные сообщения при программировании выводились

скетч arduinoisp лучше новый скачать, вроде одно время ошибка там была

напишу примерно как я делал (хотя в общем по инструкции) - взял arduino nano, залил туда скетч arduinoisp, соединил mosi/miso/clk/reset с мегой328, выбрал в среде ардуино программатор "arduino as isp" и залилось
хорошо, спасибо буду пробовать

Re: Atmega328 , ардуино , радиосвязь.

Добавлено: Вс фев 22, 2015 10:31:37
mehanik_universe
Спойлер
kalobyte писал(а):
mehanik_universe писал(а):для меги321 почему-то таким макаром не получается
328 ты хотел сказать?
чтобы заливать, нужно тогда руками в консоли запускать дудку с ключом программатора
я не знаю как называется программатор, если зашит скетч исп
у меня 2 платы и я пользуюсь загрузчиком, а для меги8 голой я использую обычный программатор на базе фт2232 или китайский универсальный тл866а со своей прогой
Да наверно придется покупать переходник юсб-юарт просто з/п долго ждать.... А случайно LPT порт нельзя использовать для заливки дуиновских скетчей?

Re: Atmega328 , ардуино , радиосвязь.

Добавлено: Вс фев 22, 2015 15:48:15
kalobyte
можно через буфер 244й, а программатор называется стк200

Re: Atmega328 , ардуино , радиосвязь.

Добавлено: Вс фев 22, 2015 17:30:03
mehanik_universe
придется ждать зарплату и покупать переходник, ничего у меня не получилось...
Может кто-нибуть показать пример как тупо помигать светиком через радиомодуль XY-MK-5V?
пообещал друзьям что радиоуправление сделаю, нехочу лохануться, они и детальки купили...

Re: Atmega328 , ардуино , радиосвязь.

Добавлено: Вс фев 22, 2015 18:59:42
Morroc
mehanik_universe писал(а):мне нужно что-то типо подал на 13 пин лог 1 , на другой дуине появилась лог 1.
ну ваши модули примерно так и работают, для мигания светиком можно применить что то типа "антидребезга" - проверяйте раз 10 в секунду и если подряд идут 1 или 0 - это и будет с хорошей вероятностью 1 и 0, только вот с таким подходом перейти от светика к многокомандному радиоуправлению сложно, лучше сразу разобраться с библиотекой (уже 2 ссылки дали, да и сами вы нашли) и юзать ее.

насчет программирования я так и не понял в чем проблема... на крайняк можно ноги меги отпаять на uno и прицепить их временно к самоделке - залить туда

на "соседнем" форуме есть подобная тема - там вроде получилось, но без дуины, просто avr - http://forum.easyelectronics.ru/viewtop ... =4&t=21500

p.s. гоню - 10 нулей наверное подряд и не будет, но что не 1 то 0 :))

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

Re: Atmega328 , ардуино , радиосвязь.

Добавлено: Вс фев 22, 2015 21:06:10
kalobyte
mehanik_universe писал(а):Может кто-нибуть показать пример как тупо помигать светиком через радиомодуль XY-MK-5V?
я тебе дал библиотеку и там есть готовые скетчи
возьми протеус и посмотри в виртуалке пока

покупай самую дешевую плату http://www.ebay.de/itm/371182527001
у меня такая есть и я еще брал синюю подороже малость
на желтой белым маркировка плохо видна, а так все одинаково

Re: Atmega328 , ардуино , радиосвязь.

Добавлено: Пн фев 23, 2015 06:37:42
Morroc
Мне arduino nano нравятся - можно и на макетку воткнуть и в конструкцию и к usb так же цепляются - хоть программируй готовый девайс хоть аккумуляторы заряжай через этот разъем, стандартный размер ардуины не очень подходит для такого.

Примеры годных переходников для программирования и просто подключения к компу всяких атмег

http://chipster.ru/catalog/arduino-and- ... /3074.html
http://chipster.ru/catalog/arduino-and- ... /2283.html
http://chipster.ru/catalog/arduino-and- ... /2283.html

у 4х проводных переходников внутри тоже есть все сигналы и клеем они не залиты - можно вывести все что нужно, есть с 6ю проводами, но это уже в китае надо искать

ну или вот годный программатор

http://chipster.ru/catalog/tools/programmers/2406.html

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

Re: Atmega328 , ардуино , радиосвязь.

Добавлено: Пн фев 23, 2015 07:41:59
mehanik_universe
всем спасибо за помощь,скетчи в мегу не заливались возможно из за плохой платы, когда мегу вытащил и подал питалово на плату,то заметил что светик на 13 слабенько ,хаотически моргает причины так и не нашел,надо заново паять...
касательно радиопередатчика,то буду мучить библиотеку.

Re: Atmega328 , ардуино , радиосвязь.

Добавлено: Вт фев 24, 2015 21:22:14
domrustika
ребята помогите вот видео моего устройства http://www.youtube.com/watch?v=FnnWvMbb5v8
вот код
Спойлер

Код: Выделить всё

/*
 * arduWebRelays.ino
 *
 * Created: 07/09/2013 15:55:00
 *  Author: Guillaume Carriere - guillaume.carriere@gmail.com
 *
  VCC -   3.3V
  GND -    GND
  SCK - Pin 13
  SO  - Pin 12
  SI  - Pin 11
  CS  - Pin  8 # Selectable with the ether.begin() function
 */ 
#include <EtherCard.h>

static byte mymac[] = { 0x74,0x69,0x69,0x2D,0x30,0x32 };
static byte myip[] = { 192,168,2,50 };
int etap = 0;

#define BUFFER_SIZE   500
byte Ethernet::buffer[BUFFER_SIZE];
BufferFiller bfill;

#define CS_PIN       10

#define RELAIS_1     5
#define RELAIS_2     6
bool relais1Status = false;
bool relais2Status = false;

const char http_OK[] PROGMEM =
"HTTP/1.0 200 OK\r\n"
"Content-Type: text/html\r\n"
"Pragma: no-cache\r\n\r\n";

const char http_Found[] PROGMEM =
"HTTP/1.0 302 Found\r\n"
"Location: /\r\n\r\n";

const char http_Unauthorized[] PROGMEM =
"HTTP/1.0 401 Unauthorized\r\n"
"Content-Type: text/html\r\n\r\n"
"<h1>401 Unauthorized</h1>";

void homePage()
{
  bfill.emit_p(PSTR("$F"
    "<title>Интернет-розетка</title>" 
    "Розетка 1: <a href=\"?relais1=$F\">$F</a><br />"
    "Розетка 2: <a href=\"?relais2=$F\">$F</a>"),
  http_OK,
  relais1Status?PSTR("off"):PSTR("on"),
  relais1Status?PSTR("<font color=\"green\"><b>Выключено</b></font>"):PSTR("<font color=\"red\">Включено</font>"),
  relais2Status?PSTR("off"):PSTR("on"),
  relais2Status?PSTR("<font color=\"green\"><b>Выключено</b></font>"):PSTR("<font color=\"red\">Включено</font>"));
}

void setup()
{
  Serial.begin(115200);  

  pinMode(RELAIS_1, OUTPUT);
  pinMode(RELAIS_2, OUTPUT);

  if (ether.begin(BUFFER_SIZE, mymac, CS_PIN) == 0)
    Serial.println("Cannot initialise ethernet.");
  else
    Serial.println("Ethernet initialised.");

  ether.staticSetup(myip);

//  Serial.println("Setting up DHCP");
//  if (!ether.dhcpSetup())
//    Serial.println( "DHCP failed");
  
  ether.printIp("My IP: ", ether.myip);
  ether.printIp("Netmask: ", ether.netmask);
  ether.printIp("GW IP: ", ether.gwip);
  ether.printIp("DNS IP: ", ether.dnsip);

}

void loop()
{
    

//  digitalWrite(RELAIS_1, relais1Status); 
//  digitalWrite(RELAIS_2, relais2Status); 

  delay(1);   // necessary for my system
  word len = ether.packetReceive();   // check for ethernet packet
  word pos = ether.packetLoop(len);   // check for tcp packet

  if (pos) {
    bfill = ether.tcpOffset();
    char *data = (char *) Ethernet::buffer + pos;
    if (strncmp("GET /", data, 5) != 0) {
      // Unsupported HTTP request
      // 304 or 501 response would be more appropriate
      bfill.emit_p(http_Unauthorized);
    }
    else {
      Serial.print("----");
      Serial.print(data);
      Serial.println("----");
      data += 5;

      if (data[0] == ' ') {
        // Return home page
        homePage();
      }
      else if (strncmp("?relais1=on ", data, 12) == 0) {
   //     if (etap == 0)
     //     {
            relais1Status = true; 
            digitalWrite(RELAIS_1, relais1Status);     
            delay(1500);
           relais1Status = false;  
            digitalWrite(RELAIS_1, relais1Status);
         //   etap ++;
      //    }
        bfill.emit_p(http_Found);
       // if (etap > 2) 
       //   {
       //     etap = 0; 
       //   }
      }

      else if (strncmp("?relais1=off ", data, 13) == 0) {
        if (etap == 0)
          {
            relais1Status = true; 
            digitalWrite(RELAIS_1, relais1Status);     
            delay(1500);
           relais1Status = false;  
            digitalWrite(RELAIS_1, relais1Status);
            etap ++;
          }
        bfill.emit_p(http_Found);
      }

      else {
        // Page not found
        bfill.emit_p(http_Unauthorized);
      }
    }

    ether.httpServerReply(bfill.position());    // send http response
  }
}
как сделать что бы при нажатии на 1 надпись реле не просто включалось а вЫключалось ждало 1 секунду и снова ВКЛЮЧалась? помогите что надо сделать с кодом?

Re: Atmega328 , ардуино , радиосвязь.

Добавлено: Вт фев 24, 2015 23:57:05
kalobyte
этот код сосет по 2м причинам

1 вид не отделен от быдлокода
2 я нихера в быдлокоде не понял
3 я нихера не понял, что вообще должно происходить

по логике при нажатии на линк он должен меняться на выключено и при следущем нажатии снова включить реле и сменить надпись