Сферробот или колобочек

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


Схема:

Скетч:

//Сферробот ИК управление (пульт от триколора)
//////////
#include <IRremote.h>
#define LV_1 4 //
#define LV_2 5 // 
#define PR_1 6 //
#define PR_2 7 //
#define LED 13 //
#define plus 12 //
#define minus 11 //

int RECV_PIN = 10;               // Pin, an den der Empf�nger angeschlossen ist
IRrecv irrecv(RECV_PIN);         // Instanz der Receiver-Klasse
decode_results results;          // Zur Aufnahme des ermittelsten Codes
/////////
long Y=0;//переменная хранения моментов времени


void setup()
{
 pinMode(LED,OUTPUT);//сигнальный светодиод
 digitalWrite(LED,LOW); 
 //
 pinMode(LV_1,OUTPUT);//мотор левый
 digitalWrite(LV_1,LOW);
 pinMode(LV_2,OUTPUT);//
 digitalWrite(LV_2,LOW);
 pinMode(PR_1,OUTPUT);//мотор правый
 digitalWrite(PR_1,LOW);
 pinMode(PR_2,OUTPUT);//
 digitalWrite(PR_2,LOW);
pinMode(plus,OUTPUT);//
digitalWrite(plus,HIGH);// плюс питания ик приёмника
pinMode(minus,OUTPUT);//
digitalWrite(minus,LOW);// минус питания ик приёмника
 //
  irrecv.enableIRIn(); // Startet den Receiver
 }
/////////////////////////////////////////////////////////////////////////////////////////
void loop()
{
  //
  if (irrecv.decode(&results))   //Если произошло событие/кнопка была нажата
  {
    switch ( results.value )
    {
    case 0x8A857://исполнить команду вперёд
    digitalWrite(LED,HIGH);digitalWrite(LV_1,HIGH);digitalWrite(LV_2,LOW); digitalWrite(PR_2,HIGH);digitalWrite(PR_1,LOW);
      Y=millis();  
        break;
     case 0x88877://исполнить команду назад
    digitalWrite(LED,HIGH);digitalWrite(LV_1,LOW);digitalWrite(LV_2,HIGH); digitalWrite(PR_2,LOW);digitalWrite(PR_1,HIGH);
      Y=millis();  
        break;  
      case  0x848B7://исполнить команду вправо
    digitalWrite(LED,HIGH);digitalWrite(LV_1,HIGH);digitalWrite(LV_2,LOW); digitalWrite(PR_2,LOW);digitalWrite(PR_1,HIGH);
      Y=millis();  
        break; 
   case  0x828D7://исполнить команду влево
    digitalWrite(LED,HIGH);digitalWrite(LV_1,LOW);digitalWrite(LV_2,HIGH); digitalWrite(PR_2,HIGH);digitalWrite(PR_1,LOW);
      Y=millis();  
        break;             
     case 0xFFFFFFFF:// если кнопку удерживают, то не отключать команду ещё 200 мс
      Y=millis();
        break;
    }
    irrecv.resume();//Считываем следующую значение/кнопку
   }
   //    
 if(millis()-Y>200){digitalWrite(LED,LOW);digitalWrite(LV_1,LOW);digitalWrite(LV_2,LOW); digitalWrite(PR_1,LOW);digitalWrite(PR_2,LOW);}//если кнопка не удерживается, то через 200 мс отключить команду 
}
 /////////////////////////////////////////////////////////////////////////////////////////////////



5 лайков

Картина твоя?
Класс!!!

1 лайк

Картина по фото преобразована онлайн-редактором.

1 лайк

Ух ты! А что там на моторах на колёса похожее? Каков принцип его качение вообще, расскажите? И видео, если можно.

07
Это трёхколёсная платформа, с заниженным центом тяжести, движется внутри прозрачной пластмассовой сферы, приводя её в движение. Элементы шасси печатные, покрышки на колёса - отрезки резинки от скакалки, склеены секундным клеем в бублики. Бублики натянуты на обода.
Мотор-редукторы сделаны из бракованных серв sg 90 путём выброса их плат управления. Бот может кататься вперёд, назад, разворачиваться на месте влево, вправо, кувыркаться внутри сферы при упоре в преграду или остановке на скользком полу (поэтому больше любит ковры :). Игрушка предназначена для образовательно-игровых экспериментов.

3 лайка

Не по мотивам ли Коржевского Дмитрия (его игрушка для дочери «незастревайка» (или как то так))?

0121

1 лайк

Нет, скорее по мотивам этого, сделать ходовую, но проще.

Ух, я прам расстроился. У него то без электроники незастревайка )))

Где?, я не нашёл.

Серьезно не видел? Сейчас поищу,

Нашёл:

А вот и «вскрытие кота»:

:slight_smile:
Не, тут цилиндр, а не сфера. Но вариант незастревайки на сфере можно реализовать, правда надо подумать чуток как на Ардуино и… наверное датчик кувырка нужен.

Да, думать - это хорошо!

Опыт показал - думать не надо.
При столкновении с преградой колобочек делает внутрисферный кувырок назад, откатывается и рандомно отворачивается, меняя курс.

Добро пожаловать в «гильдию зубастых Владов» )))

Нет, я добр и доходчив в объяснениях.
Вот картинка печатных деталек, к примеру.


:slight_smile:

это было видно с первого момента присутствия на форуме, это дар или талант…
Был у нас в Доме пионеров руководитель радиокружка, закончил институт физкультуры, занимался велоспортом, а вот воспитал чемпионов СССР по скоростной телеграфии и не одного (среди юношей) Воронин Владимир Ильич

Сделал почти второго бота, для совместного их времяпрепровождения, но понял , что пульты будут мешать друг другу при управлении.


Я так понимаю нужно менять частоту на втором с 38 кГц на 36 кГц или 40? Т.е. искать другую пару пульт-приёмник ИК.

А что за пульты? Часть кнопок на один шар назначить, часть на другой не вариант?