roboforum.ru

Технический форум по робототехнике.

Вопросы новичка.

Как собрать и запрограммировать робота на Arduino(Freeduino, Roboduino, Seeduino ...). Используем Wiring и Processing.

Re: Вопросы новичка.

Сообщение dimamichev » 01 июл 2017, 08:38

Dmitry__ писал(а):Может уже пора самому на такие вопросы отвечать? Ты тему новичка зафлудил собой, может переименовать тему в бложик dimamichev-а? :)
https://mysku.ru/blog/china-stores/36691.html

Не знаю...С одной стороны не я тему открыл,кроме меня ещё один человек за ардуину спрашивал,все сообщения мои вроде по теме...С другой стороны в ней я,я и опять я в роли вопрошающего. Переименовать в "dimamichev-arduino-помогите!" и перенести в блоги посетителей?
Аватара пользователя
dimamichev
 
Сообщения: 1381
Зарегистрирован: 03 янв 2013, 16:27

Re: Вопросы новичка.

Сообщение Madf » 01 июл 2017, 18:24

dimamichev писал(а):И как эту платку до Arduino IDE довести???

Придется прошивать прошивкой дуни (под неё).
Шить можно как обычным программатором, ну так же как-то через Ж (самими дунями).
Madf
 
Сообщения: 3298
Зарегистрирован: 03 янв 2012, 12:55
Откуда: Москва
прог. языки: VB6, BASCOM, ASM...

Re: Вопросы новичка.

Сообщение Myp » 01 июл 2017, 20:03

USB на плате с тинькой реализован софтварно, тоесть львиная доля прошивки платы занимает код для USB чтобы плата вообще определялась в винде
так что если ты не собираешься сделать именно USB устройство то смысла особо в такой плате нет.
<telepathmode>На вопросы отвечает Бригадир Телепатов!</telepathmode>
Всё уже придумано до нас!
Аватара пользователя
Myp
скрытый хозяин вселенной :)
 
Сообщения: 18018
Зарегистрирован: 18 сен 2006, 12:26
Откуда: Тверь по прозвищу Дверь
прог. языки: псевдокод =) сила в алгоритме!
ФИО: глубокоуважаемый Фёдор Анатольевич

Re: Вопросы новичка.

Сообщение dimamichev » 01 июл 2017, 22:11

Ясно...овчина выделки...Но для куба она и не требуется, по габаритам всё же "про мини" буду пробовать (как и хотел). Сейчас грубо повторяю "акриловые цифры гвоздём" - вчера посмотрел сайт забугорный (по ссылке Мадфа), один товарищ продаёт соотечественникам по 68 долларов за индикатор. Возникла мысль вместо цифр человечка "заобъёмить."

Добавлено спустя 1 час 30 минут 21 секунду:
Такая проба на 4 цифры...
Вложения
IMG_6481.JPG
Аватара пользователя
dimamichev
 
Сообщения: 1381
Зарегистрирован: 03 янв 2013, 16:27

Re: Вопросы новичка.

Сообщение Dmitry__ » 01 июл 2017, 22:53

Myp писал(а): тоесть львиная доля прошивки платы занимает код для USB чтобы плата вообще определялась в винде

Ладно гнать. Если такие проги как "датчик касания" на оптич. мышке влезает, то чего там говорить про бегущие огни :)
2кб загрузчик, кварц не нужен. :wink:
https://habrahabr.ru/post/200896/
Аватара пользователя
Dmitry__
 
Сообщения: 8033
Зарегистрирован: 13 янв 2011, 15:25
Откуда: Санкт-Петербург

Re: Вопросы новичка.

Сообщение dimamichev » 02 июл 2017, 08:27

Dmitry__ писал(а):Ладно гнать. Если такие проги как "датчик касания" на оптич. мышке влезает, то чего там говорить про бегущие огни :)
2кб загрузчик, кварц не нужен. :wink:
https://habrahabr.ru/post/200896/

У меня скетч для кубика занял уже 28 процентов памяти - на две минуты перемигивания. Правда, "лепил" в лоб "включи-выключи, подожди".
Код: Выделить всёРазвернуть
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//
// Arduino UNO
//
////////////////////////
//
//программа для LED КУБА вместо светодиодной матрицы 8*8, и max7219  //

#include "LedControl.h"//подключаем данную библиотеку
int i=0;int j=0;int k=1;int n=1;


LedControl LC = LedControl(12, 11, 10, 2);// создаём объект класса для 2 индикаторов
// при этом выводы 12-DIN 11-CLK 10-CS //

void setup()
{
 
  LC.shutdown(0, false);//выключаем энергосберегающий режим
  LC.setIntensity(0, 12);// устанавливаем интенсивность в 12 единиц между 0 и 15
  LC.clearDisplay(0);//очищаем матрицу 1
  LC.shutdown(1, false);//выключаем энергосберегающий режим
  LC.setIntensity(1, 4);// устанавливаем интенсивность в 4 единиц между 0 и 15
  LC.clearDisplay(1);//очищаем матрицу 2
}

void loop()
{
/////////////// ПОСТРОЧНОЕ ВКЛЮЧЕНИЕ ВСЕХ СВЕТОДИОДОВ  ///////////////////
   for (i=0;i<=7;i++) //цикл в цикле для перебора элементов матрицы
  {
  for (j=0;j<=7;j++)
   {
    LC.setLed(1, i, j,1); LC.setLed(0, i, j, 1); delay(100);
   }
   }
   ///////////////  МИГАНИЕ СВЕТОДИОДАМИ ВСЕГО КУБА ////////////////////////
  for (j=0;j<=4;j++)
   {
   LC.shutdown(0, true);LC.shutdown(1, true); delay(300); LC.shutdown(0, false);LC.shutdown(1, false); delay(300);
   }
   /////////////// ПОСТРОЧНОЕ РЕВЕРС-ВЫКЛЮЧЕНИЕ ВСЕХ СВЕТОДИОДОВ  //////////
    for (i=7;i>=0;i--) //цикл в цикле для перебора элементов матрицы
  {
  for (j=7;j>=0;j--)
   {
    LC.setLed(1, i, j,0); LC.setLed(0, i, j, 0); delay(50);
   }
   }
    /////////////// ПОСЛОЙНОЕ ВКЛЮЧЕНИЕ И ВЫКЛЮЧЕНИЕ ВСЕХ СВЕТОДИОДОВ  ///////////////////
   for (i=0;i<=7;i++) //цикл в цикле для перебора элементов матрицы
  {
  for (j=0;j<=7;j++)
   {
    LC.setLed(1, i, j,1); LC.setLed(0, i, j, 1);
    if (i==1&j==7){delay(500);}
    if (i==3&j==7){delay(500);}
    if (i==5&j==7){delay(500);}
    if (i==7&j==7){delay(500);}
   
   }
   }
    for (i=0;i<=7;i++) //цикл в цикле для перебора элементов матрицы
  {
  for (j=0;j<=7;j++)
   {
    LC.setLed(1, i, j,0); LC.setLed(0, i, j, 0);
    if (i==1&j==7){delay(500);}
    if (i==3&j==7){delay(500);}
    if (i==5&j==7){delay(500);}
    if (i==7&j==7){delay(500);}
   
   }
   }
   /////////////// ПОСЛОЙНОЕ ВКЛЮЧЕНИЕ И ВЫКЛЮЧЕНИЕ С ПАУЗОЙ  СВЕТОДИОДОВ СЛОЁВ  ///////////////////
   for (k=1;k<=2;k++)//2 кратное повторение перебора
   {
   for (i=0;i<=7;i++) //цикл в цикле для перебора элементов матрицы
  {
  for (j=0;j<=7;j++)
   {
    LC.setLed(1, i, j,1); LC.setLed(0, i, j, 1);
    if (i==1&j==7){delay(100);LC.clearDisplay(0); LC.clearDisplay(1);}
    if (i==3&j==7){delay(200);LC.clearDisplay(0); LC.clearDisplay(1);}
    if (i==5&j==7){delay(300);LC.clearDisplay(0); LC.clearDisplay(1);}
    if (i==7&j==7){delay(400);LC.clearDisplay(0); LC.clearDisplay(1);}
   
   }
   }
   }
   /////////////// ПОРЯДНОЕ  ВКЛЮЧЕНИЕ И ВЫКЛЮЧЕНИЕ С ПАУЗОЙ  СВЕТОДИОДОВ СЛОЯ  ///////////////////
   for (k=1;k<=2;k++)//2 кратное повторение перебора
   {
   for (i=0;i<=7;i++) //цикл в цикле для перебора элементов матрицы
  {
  for (j=0;j<=7;j=j+2)
   {
    LC.setLed(1, i, j,1); LC.setLed(0, i, j, 1);
    if (i==0&j==6){delay(300);LC.clearDisplay(0); LC.clearDisplay(1);}
    if (i==1&j==6){delay(300);LC.clearDisplay(0); LC.clearDisplay(1);}
    if (i==2&j==6){delay(300);LC.clearDisplay(0); LC.clearDisplay(1);}
    if (i==3&j==6){delay(300);LC.clearDisplay(0); LC.clearDisplay(1);}
    if (i==4&j==6){delay(300);LC.clearDisplay(0); LC.clearDisplay(1);}
    if (i==5&j==6){delay(300);LC.clearDisplay(0); LC.clearDisplay(1);}
    if (i==6&j==6){delay(300);LC.clearDisplay(0); LC.clearDisplay(1);}
    if (i==7&j==6){delay(300);LC.clearDisplay(0); LC.clearDisplay(1);}
   
   }
   for (j=1;j<=7;j=j+2)
   {
    LC.setLed(1, i, j,1); LC.setLed(0, i, j, 1);
    if (i==0&j==7){delay(300);LC.clearDisplay(0); LC.clearDisplay(1);}
    if (i==1&j==7){delay(300);LC.clearDisplay(0); LC.clearDisplay(1);}
    if (i==2&j==7){delay(300);LC.clearDisplay(0); LC.clearDisplay(1);}
    if (i==3&j==7){delay(300);LC.clearDisplay(0); LC.clearDisplay(1);}
    if (i==4&j==7){delay(300);LC.clearDisplay(0); LC.clearDisplay(1);}
    if (i==5&j==7){delay(300);LC.clearDisplay(0); LC.clearDisplay(1);}
    if (i==6&j==7){delay(300);LC.clearDisplay(0); LC.clearDisplay(1);}
    if (i==7&j==7){delay(300);LC.clearDisplay(0); LC.clearDisplay(1);}
   
   }
   }
   }
   /////////////// ПОСТОЛБЦОВОЕ И ПОРЯДНОЕ  ВКЛЮЧЕНИЕ И ВЫКЛЮЧЕНИЕ С ПАУЗОЙ  СВЕТОДИОДОВ СЛОЁВ  ///////////////////
   for (k=1;k<=2;k++)//2 кратное повторение перебора
   {
   for (i=0;i<=7;i++) //цикл в цикле для перебора элементов матрицы
  {
  for (j=0;j<=7;j=j+2)
   {
    LC.setLed(1, j, i,1); LC.setLed(0, j, i, 1);LC.setLed(1, i, j,1); LC.setLed(0, i, j, 1);
    if (i==0&j==6){delay(100);LC.clearDisplay(0); LC.clearDisplay(1);}
    if (i==1&j==6){delay(100);LC.clearDisplay(0); LC.clearDisplay(1);}
    if (i==2&j==6){delay(100);LC.clearDisplay(0); LC.clearDisplay(1);}
    if (i==3&j==6){delay(100);LC.clearDisplay(0); LC.clearDisplay(1);}
    if (i==4&j==6){delay(100);LC.clearDisplay(0); LC.clearDisplay(1);}
    if (i==5&j==6){delay(100);LC.clearDisplay(0); LC.clearDisplay(1);}
    if (i==6&j==6){delay(100);LC.clearDisplay(0); LC.clearDisplay(1);}
    if (i==7&j==6){delay(100);LC.clearDisplay(0); LC.clearDisplay(1);}
   
   }
   for (j=1;j<=7;j=j+2)
   {
    LC.setLed(1, j, i,1); LC.setLed(0, j, i, 1);LC.setLed(1, i, j,1); LC.setLed(0, i, j, 1);
    if (i==0&j==7){delay(100);LC.clearDisplay(0); LC.clearDisplay(1);}
    if (i==1&j==7){delay(100);LC.clearDisplay(0); LC.clearDisplay(1);}
    if (i==2&j==7){delay(100);LC.clearDisplay(0); LC.clearDisplay(1);}
    if (i==3&j==7){delay(100);LC.clearDisplay(0); LC.clearDisplay(1);}
    if (i==4&j==7){delay(100);LC.clearDisplay(0); LC.clearDisplay(1);}
    if (i==5&j==7){delay(100);LC.clearDisplay(0); LC.clearDisplay(1);}
    if (i==6&j==7){delay(100);LC.clearDisplay(0); LC.clearDisplay(1);}
    if (i==7&j==7){delay(100);LC.clearDisplay(0); LC.clearDisplay(1);}
   
   }
   }
   }
    for (k=1;k<=2;k++)//2 кратное повторение перебора
   {
   for (i=0;i<=7;i=i+2) //цикл в цикле для перебора элементов матрицы
  {
  for (j=0;j<=7;j=j+2)
   {
    LC.setLed(1, i, j,1); LC.setLed(0, i, j, 1);
    LC.setLed(1, i, j+1,1); LC.setLed(0, i, j+1, 1);
    LC.setLed(1, i+1, j,1); LC.setLed(0, i+1, j, 1);
    LC.setLed(1, i+1, j+1,1); LC.setLed(0, i+1, j+1, 1);
    delay(250);LC.clearDisplay(0); LC.clearDisplay(1);
   }
  }
   }
   /////////////// ПСЕВДОСЛУЧАЙНОЕ ВКЛЮЧЕНИЕ/ВЫКЛЮЧЕНИЕ 4 ПАР (КУБИК) СВЕТОДИОДОВ  ///////////////////
   for (k=1;k<=20;k++)//20 кратное повторение перебора
   {
  i=random(0,6);j=random(0,5);
    LC.setLed(1, i, j,1); LC.setLed(0, i, j, 1);
    LC.setLed(1, i, j+1,1); LC.setLed(0, i, j+1, 1);
    LC.setLed(1, i, j+2,1); LC.setLed(0, i, j+2, 1);
    LC.setLed(1, i, j+3,1); LC.setLed(0, i, j+3, 1);
    LC.setLed(1, i+2, j,1); LC.setLed(0, i+2, j, 1);
    LC.setLed(1, i+2, j+1,1); LC.setLed(0, i+2, j+1, 1);
    LC.setLed(1, i+2, j+2,1); LC.setLed(0, i+2, j+2, 1);
    LC.setLed(1, i+2, j+3,1); LC.setLed(0, i+2, j+3, 1);
    delay(random (100,250));
   LC.clearDisplay(0);//очищаем матрицу 1
     LC.clearDisplay(1);//очищаем матрицу 2
   }
   /////////////// КОНТУР КУБА - ПОЯВЛЕНИЕ/ИЗЧЕЗНОВЕНИЕ  ///////////////////
    int tabl1[32]={0,0,0,0,2,4,6,6,6,6,4,2,0,1,1,3,5,7,7,7,7,5,3,1,1,1,6,7,0,1,6,7};
    int tabl2[32]={0,2,4,6,6,6,6,4,2,0,0,0,1,0,1,1,1,1,3,5,7,7,7,7,5,3,7,6,7,6,1,0};
    for (k=0;k<=31;k++)
      {
       LC.setLed(1, tabl1[k],tabl2[k] ,1); LC.setLed(0, tabl1[k],tabl2[k] ,1);delay(250);
   
       }
   delay(2000);
    for (k=31;k>=0;k--)
      {
       LC.setLed(1, tabl1[k],tabl2[k] ,0); LC.setLed(0, tabl1[k],tabl2[k] ,0);delay(250);
   
       }
   delay(2000);
   ////////////////////////////ПЕРЕХОД КАПЕЛЬ СВЕТА С ПЛОСКОСТИ НА ПЛОСКОСТЬ//////////////////////////////////
   for (k=1;k<=2;k++)//2 кратное повторение перебора
   {
   for (i=0;i<=1;i++) //цикл в цикле для перебора элементов матрицы
  {
  for (j=0;j<=7;j++)
   {
    LC.setLed(1, i,j ,1); LC.setLed(0, i,j ,1);
   }
   }
    delay(200);
    for (i=0;i<=1;i++) //цикл в цикле для перебора элементов матрицы
  {
  for (j=0;j<=7;j++)
   {
    LC.setLed(1, i,j ,0); LC.setLed(0, i,j ,0);delay(50);
    for (n=2;n<=6;n=n+2){LC.setLed(1, i+n,j ,1); LC.setLed(0, i+n,j ,1);delay(50);LC.setLed(1, i+n,j ,0); LC.setLed(0, i+n,j ,0);}
    LC.setLed(1, i+6,j ,1); LC.setLed(0, i+6,j ,1);delay(50);
   }
   }
   LC.clearDisplay(0);LC.clearDisplay(1);
   }
    /////////////// ПАДАЮЩИЕ КАПЛИ СВЕТА  ///////////////////
     for (k=0;k<=15;k++)
      {
       i=random(0,4);j=random(0,4); i=2*i;j=2*j;
       LC.setLed(1, i,j ,1); LC.setLed(0, i,j ,1);delay(200); LC.clearDisplay(0);LC.clearDisplay(1);
       LC.setLed(1, i,j+1 ,1); LC.setLed(0, i,j+1 ,1);delay(100); LC.clearDisplay(0);LC.clearDisplay(1);
       LC.setLed(1, i+1,j ,1); LC.setLed(0, i+1,j ,1);delay(75); LC.clearDisplay(0);LC.clearDisplay(1);
        LC.setLed(1, i+1,j+1 ,1); LC.setLed(0, i+1,j+1 ,1);delay(50); LC.clearDisplay(0);LC.clearDisplay(1);
       }
        for (k=0;k<=20;k++)
      {
       i=random(0,4);j=random(0,4); i=2*i;j=2*j;
       LC.setLed(1, i,j ,1); LC.setLed(0, i,j ,1);delay(200);
       LC.setLed(1, i,j+1 ,1); LC.setLed(0, i,j+1 ,1);delay(100);
       LC.setLed(1, i+1,j ,1); LC.setLed(0, i+1,j ,1);delay(75);
        LC.setLed(1, i+1,j+1 ,1); LC.setLed(0, i+1,j+1 ,1);delay(50);n++;
        if (n>=5){delay(500);LC.clearDisplay(0);LC.clearDisplay(1);n=0;}
       }
      ////////////////////////////// ПОВОРОТ ПЛОСКОСТЕЙ /////////////////////////////////
      for (k=1;k<=8;k++)//8 кратное повторение перебора
   {
   for (i=0;i<=1;i++) //цикл в цикле для перебора элементов матрицы
  {
  for (j=0;j<=7;j++)
   {
    LC.setLed(1, i,j ,1); LC.setLed(0, i,j ,1);
   }
   }
   delay(150);LC.clearDisplay(0);LC.clearDisplay(1);
   for (i=0;i<=6;i=i+2) //цикл для перебора элементов матрицы
    {
    LC.setLed(1, i,i ,1); LC.setLed(0, i,i ,1);LC.setLed(1, i+1,i ,1); LC.setLed(0, i+1,i ,1);
    LC.setLed(1, i,i+1 ,1); LC.setLed(0, i,i+1 ,1);LC.setLed(1, i+1,i+1 ,1); LC.setLed(0, i+1,i+1 ,1);
     }
   delay(150);LC.clearDisplay(0);LC.clearDisplay(1);
   for (i=0;i<=1;i++) //цикл в цикле для перебора элементов матрицы
  {
  for (j=0;j<=7;j++)
   {
    LC.setLed(1, j,i ,1); LC.setLed(0, j,i ,1);
   }
   }
   delay(150);LC.clearDisplay(0);LC.clearDisplay(1);
   for (i=0;i<=6;i=i+2) //цикл  для перебора элементов матрицы
    {
    LC.setLed(1, i,7-i ,1); LC.setLed(0, i,7-i ,1);LC.setLed(1, i+1,7-i ,1); LC.setLed(0, i+1,7-i ,1);
    LC.setLed(1, i+1,6-i ,1); LC.setLed(0, i+1,6-i ,1);LC.setLed(1, i,6-i ,1); LC.setLed(0, i,6-i ,1);
     }
   delay(150);LC.clearDisplay(0);LC.clearDisplay(1);
   for (i=6;i<=7;i++) //цикл в цикле для перебора элементов матрицы
  {
  for (j=0;j<=7;j++)
   {
    LC.setLed(1, i,j ,1); LC.setLed(0, i,j ,1);
   }
   }
   delay(150);LC.clearDisplay(0);LC.clearDisplay(1);
    for (i=0;i<=6;i=i+2) //цикл для перебора элементов матрицы
    {
    LC.setLed(1, i,i ,1); LC.setLed(0, i,i ,1);LC.setLed(1, i+1,i ,1); LC.setLed(0, i+1,i ,1);
    LC.setLed(1, i,i+1 ,1); LC.setLed(0, i,i+1 ,1);LC.setLed(1, i+1,i+1 ,1); LC.setLed(0, i+1,i+1 ,1);
     }
   delay(150);LC.clearDisplay(0);LC.clearDisplay(1);
    for (i=6;i<=7;i++) //цикл в цикле для перебора элементов матрицы
  {
  for (j=0;j<=7;j++)
   {
    LC.setLed(1, j,i ,1); LC.setLed(0, j,i ,1);
   }
   }
   delay(150);LC.clearDisplay(0);LC.clearDisplay(1);
   for (i=0;i<=6;i=i+2) //цикл  для перебора элементов матрицы
    {
    LC.setLed(1, i,7-i ,1); LC.setLed(0, i,7-i ,1);LC.setLed(1, i+1,7-i ,1); LC.setLed(0, i+1,7-i ,1);
    LC.setLed(1, i+1,6-i ,1); LC.setLed(0, i+1,6-i ,1);LC.setLed(1, i,6-i ,1); LC.setLed(0, i,6-i ,1);
     }
   delay(150);LC.clearDisplay(0);LC.clearDisplay(1);
   }
   //////////////////// ОЧИСТКА МАТРИЦ ПЕРЕД НОВЫМ ПОВТОРОМ ПОЛНОГО ЦИКЛА ////////////////
    LC.clearDisplay(0);//очищаем матрицу 1
     LC.clearDisplay(1);//очищаем матрицу 2
   
}
//
// Конец /
//
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////



Про датчик перемещения читал - http://forum.kafedra-appie.ru/index.php?topic=20.0
Аватара пользователя
dimamichev
 
Сообщения: 1381
Зарегистрирован: 03 янв 2013, 16:27

Re: Вопросы новичка.

Сообщение Madf » 02 июл 2017, 11:12

1. алгоритм перемигования можно скорее всего оптимизировать запихнув его в массив (как аля микро код, макросы будет выглядеть).
2. Да, Дима правильно сказал, там в загрузчик помещается не только работа с USB, но логика прошивания чипа (некая логика), т.ч. не так всё "плохо".
Madf
 
Сообщения: 3298
Зарегистрирован: 03 янв 2012, 12:55
Откуда: Москва
прог. языки: VB6, BASCOM, ASM...

Re: Вопросы новичка.

Сообщение Myp » 02 июл 2017, 12:41

Dmitry__ писал(а):
Myp писал(а): тоесть львиная доля прошивки платы занимает код для USB чтобы плата вообще определялась в винде

Ладно гнать. Если такие проги как "датчик касания" на оптич. мышке влезает, то чего там говорить про бегущие огни :)
Я про код эмуляции USB
чтобы девайс можно было воткнуть в порт и девай управлялся с компа или наоборот слал данные в комп
пытался сделать монитор параметров, типа влажности и т.п.. чтоб на экране график рисовать, так библиотечки для 3х датчиков и штатный эмулятор USB не влезли.
естественно ничего сам не писал, просто скачал с инета библиотечки. может если заморочиться и захардкодить всё самому и будет ОК.
вопщем плюнул и положил в стол.
тем более что когда работаешь по USB там и так малое количество ног уменьшается на две, те которые идут на USB.
для прошивки надо отцеплять два датчика.
<telepathmode>На вопросы отвечает Бригадир Телепатов!</telepathmode>
Всё уже придумано до нас!
Аватара пользователя
Myp
скрытый хозяин вселенной :)
 
Сообщения: 18018
Зарегистрирован: 18 сен 2006, 12:26
Откуда: Тверь по прозвищу Дверь
прог. языки: псевдокод =) сила в алгоритме!
ФИО: глубокоуважаемый Фёдор Анатольевич

Re: Вопросы новичка.

Сообщение dimamichev » 02 июл 2017, 15:01

Получается для куба в самый обрез... три вывода на гирлянду из шести МАХ7219 и пару, например,для управления через УЗ датчик. Но по габаритам в данном случае один чёрт что "тинька", что "про мини" (да и цена одинаковая почти).
Аватара пользователя
dimamichev
 
Сообщения: 1381
Зарегистрирован: 03 янв 2013, 16:27

Re: Вопросы новичка.

Сообщение Dmitry__ » 02 июл 2017, 15:50

Ну так тебе дали еще 2 ссылки на ардуины с кучей пинов:
http://roboparts.ru/products/18768161
на ебей 380рэ, думаю можно найти еще дешевле:
http://www.ebay.com/itm/Beetle-USB-ATMEGA32U4-Mini-Development-Board-Module-For-Arduino-Leonardo-R3-/182152370300?hash=item2a6920987c:g:SKQAAOSw6btXS9hP
В них юсб аппаратный, только вот сомнения, что ты до него когда-нибудь дойдешь, ибо юсб очень сложная штука. А так: 31кб твои и 1 кб загрузчик. Пинов около 15 шт.
Аватара пользователя
Dmitry__
 
Сообщения: 8033
Зарегистрирован: 13 янв 2011, 15:25
Откуда: Санкт-Петербург

Re: Вопросы новичка.

Сообщение dimamichev » 02 июл 2017, 17:38

Dmitry__ писал(а):В них юсб аппаратный, только вот сомнения, что ты до него когда-нибудь дойдешь, ибо юсб очень сложная штука. А так: 31кб твои и 1 кб загрузчик. Пинов около 15 шт.

В каком плане сложная? Просто нет "разжёванно -доходчивой" информации.На этом этапе для куба надо попробовать "про мини", получится, можно и дальше двигаться. А в ней, кстати, тоже "аппаратная юсб"? А то ведь и правда не осилю.
Аватара пользователя
dimamichev
 
Сообщения: 1381
Зарегистрирован: 03 янв 2013, 16:27

Re: Вопросы новичка.

Сообщение ilalexey » 02 июл 2017, 18:46

Это видел?
На at90 плюшки можно делать. Визуальную прогу вроде можно под себя переделать.
Аватара пользователя
ilalexey
 
Сообщения: 3202
Зарегистрирован: 13 май 2011, 21:37
Откуда: Bb

Re: Вопросы новичка.

Сообщение dimamichev » 02 июл 2017, 19:53

Какие плюшки?! :cry: В январе, по моему писал в теме, что мечтой является создание 4 канального переключателя гирлянд на UNO. А я уже до LED куба добрался, глядишь и до Pro Mini доберусь...Как говорил мой брат - "мне всего то 28 лет, а я уже старший лейтенант".
Аватара пользователя
dimamichev
 
Сообщения: 1381
Зарегистрирован: 03 янв 2013, 16:27

Re: Вопросы новичка.

Сообщение dimamichev » 19 июл 2017, 14:57

Пришли модули частично...Перед их пусканием на куб решил бегущую строку попробовать "смакетировать" на русских буквах. Нет ли готового скетча под библиотеку LedControl, автор которой Эбехард Фэйл? Чтобы не массивом фразы писать.
Вложения
IMG_6499.JPG
Аватара пользователя
dimamichev
 
Сообщения: 1381
Зарегистрирован: 03 янв 2013, 16:27

Re: Вопросы новичка.

Сообщение dimamichev » 20 июл 2017, 09:50


Код: Выделить всёРазвернуть
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//
// Arduino UNO
//
////////////////////////
//
//программа для бегущей строки на трёх матрицах 8*8, и max7219  //

#include "LedControl.h"//подключаем данную библиотеку
int i=0;int j=0;int k=0;int n=0;
int tabl [8][24];
int tabl1 [8][42]={0,0,1,0,0,0, 1,1,1,1,0,0, 0,0,0,1,1,0, 1,0,0,0,1,0, 1,0,0,0,1,0, 1,0,0,0,1,0, 0,1,1,1,0,0,
                   0,1,0,1,0,0, 1,0,0,0,1,0, 0,0,1,0,1,0, 1,0,0,0,1,0, 1,0,0,0,1,0, 1,0,0,0,1,0, 1,0,0,0,1,0,
                   1,0,0,0,1,0, 1,0,0,0,1,0, 0,1,0,0,1,0, 1,0,0,0,1,0, 1,0,0,0,1,0, 1,0,0,0,1,0, 1,0,0,0,1,0,
                   1,0,0,0,1,0, 1,0,0,0,1,0, 0,1,0,0,1,0, 1,0,0,0,1,0, 1,0,0,1,1,0, 1,0,0,0,1,0, 1,0,0,0,1,0,
                   1,0,0,0,1,0, 1,1,1,1,0,0, 0,1,0,0,1,0, 0,1,1,1,1,0, 1,0,1,0,1,0, 1,1,1,1,1,0, 1,0,0,0,1,0,
                   1,1,1,1,1,0, 1,0,0,0,0,0, 0,1,0,0,1,0, 0,0,0,0,1,0, 1,1,0,0,1,0, 1,0,0,0,1,0, 1,0,0,0,1,0,
                   1,0,0,0,1,0, 1,0,0,0,0,0, 1,1,1,1,1,0, 1,0,0,1,0,0, 1,0,0,0,1,0, 1,0,0,0,1,0, 1,0,0,0,1,0,
                   1,0,0,0,1,0, 1,0,0,0,0,0, 1,0,0,0,1,0, 0,1,1,0,0,0, 1,0,0,0,1,0, 1,0,0,0,1,0, 0,1,1,1,0,0};
LedControl LC = LedControl(12, 11, 10, 3);// создаём объект класса для 3 индикаторов
// при этом выводы 12-DIN 11-CLK 10-CS //

void setup()
{
 
  LC.shutdown(0, false);//выключаем энергосберегающий режим
  LC.setIntensity(0,0 );// устанавливаем интенсивность в 0 единиц между 0 и 15
  LC.clearDisplay(0);//очищаем матрицу 1
  LC.shutdown(1, false);//выключаем энергосберегающий режим
  LC.setIntensity(1, 0);// устанавливаем интенсивность в 0 единиц между 0 и 15
  LC.clearDisplay(1);//очищаем матрицу 2
  LC.shutdown(2, false);//выключаем энергосберегающий режим
  LC.setIntensity(2, 0);// устанавливаем интенсивность в 0 единиц между 0 и 15
  LC.clearDisplay(2);//очищаем матрицу 3
   for (i=0;i<=7;i++) //цикл в цикле для перебора элементов матриц
  {
  for (j=0;j<=23;j++)
   {
    tabl [i][j]=0;
   if (j>=16&j<=23) {LC.setLed(0, i, j-16,tabl [i][j]);}
   if (j>=8&j<=15) {LC.setLed(1, i, j-8,tabl [i][j]);}
   if (j>=0&j<=7) {LC.setLed(2, i, j,tabl [i][j]);}
   }
   }
   
}

void loop()
{
/////////////// ПЕРЕМЕЩЕНИЕ СТРОКИ СПРАВА НАЛЕВО  ///////////////////
  for (j=0;j<=23;j++) //цикл в цикле для перебора элементов матриц
  {
  for (i=0;i<=7;i++)
   {
   if (j<=22) {tabl [i][j]=tabl [i][j+1];
   if (j>=16&j<=22) {LC.setLed(0, i, j-16,tabl [i][j]);}
   if (j>=8&j<=15) {LC.setLed(1, i, j-8,tabl [i][j]);}
   if (j>=0&j<=7) {LC.setLed(2, i, j,tabl [i][j]);}}else {if (k<=41){tabl [i][j]=tabl1 [i][k];}else {tabl [i][j]=0;}LC.setLed(0, i, j-16,tabl [i][j]);}
   }
   }
    k++;delay(100);n++;if (n==60){k=0;n=0;}
   
   
}

Как то медленно получается передвижение букв, волнами...Всего один "делай" в программе, а тормозит ого го. Из-за данной библиотеки или скетч виноват?..Даже грустно алфавит набивать и дальше программу делать.
Аватара пользователя
dimamichev
 
Сообщения: 1381
Зарегистрирован: 03 янв 2013, 16:27

Пред.След.

Вернуться в Arduino и другие Xduino

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0

cron