Надоградити лампа робот са ИКЕА

Надоградити лампа робот са ИКЕА

Надоградити лампа робот са ИКЕА

Надоградити лампа робот са ИКЕА

Надоградити лампа робот са ИКЕА

Надоградити лампа робот са ИКЕА

Надоградити лампа робот са ИКЕА

Надоградити лампа робот са ИКЕА

Надоградити лампа робот са ИКЕА

Надоградити лампа робот са ИКЕА

Надоградити лампа робот са ИКЕА

Надоградити лампа робот са ИКЕА

Надоградити лампа робот са ИКЕА

Надоградити лампа робот са ИКЕА

Надоградити лампа робот са ИКЕА

Надоградити лампа робот са ИКЕА


 Укупно 200 рубаља да купи добру основу за једноставну посао. Пројекат је завршен са страним колегама Адруино чл. За његову имплементацију мора знати основне принципе роботике, електронике и разумеју мало програмирање.
 У видео клипу аутор говори и показује да би смо добили резултат.
 Поред лампи морамо скуп Грове - Тои Кит. Ордер онлине можете купити по цени 79.9 $.
 Основна идеја - дефиниција статичког или динамичког стања објекта на покрет. Ако је одговор позитиван, онда покренути једну од погонима и репродукцију унапред снимљену поруку. У супротном, активира 2. серво, и другачија звучни запис.
 Одређивање иде кроз неки облик улаза. Тако смо добили резултат у бинарном коду 0 или 1.
 Рекордер може да репродукује снимљеног звука само 4 преко екстерног сигнала. За снимање (свака 15 сец.), Потребно је укључити дугме «игра» да «Рекорд». Након снимања дугме поново требало пребацити. Ово се може урадити путем код (функција игра ()). У серво кабл је 3 "плус", "минус", а дигитални подаци. Први 2 обезбедити храну за серво (мак 7) и 3. повезује са дигиталним излазом, који прима информације о стању прекидача и по кода.
 Први обрађени лампу. Не треба нам електричне компоненте, али треба да раде саме темеље. Такође, треба неке реквизите и пратеће елементе.
 Направите рупу у цеви за повезивање нашег дизајна.
 Прототип робота је спреман!

Надоградити лампа робот са ИКЕА

Надоградити лампа робот са ИКЕА

Надоградити лампа робот са ИКЕА

Надоградити лампа робот са ИКЕА

Надоградити лампа робот са ИКЕА

Надоградити лампа робот са ИКЕА

Надоградити лампа робот са ИКЕА

Надоградити лампа робот са ИКЕА

Надоградити лампа робот са ИКЕА

Надоградити лампа робот са ИКЕА

Надоградити лампа робот са ИКЕА

Надоградити лампа робот са ИКЕА

Надоградити лампа робот са ИКЕА

Надоградити лампа робот са ИКЕА

Надоградити лампа робот са ИКЕА

Надоградити лампа робот са ИКЕА

Надоградити лампа робот са ИКЕА

Надоградити лампа робот са ИКЕА

Надоградити лампа робот са ИКЕА

Надоградити лампа робот са ИКЕА

 Корак 1: Глов
 Користећи ЛЕД лампе ИКЕА ОЛЕБИ (Храна соларни).
 Прекидач ради само у дигиталном апарату, и због тога зависи од тренутног мрежу. Ако смо се пребацили подсоединим Паи Сееедуино, можете подесити дигитални излаз ЛОВ, а онда ће бити струја. Када стављајући висок, то се поново појављује.
 Чак и унутар лампе и ми прикључити отпорник за заштиту ЛЕД.
 Подесите светла елемент у металном основом.

Надоградити лампа робот са ИКЕА

 Корак 2: Принцип
 Имамо серво управљач детектора лампе у прилогу, троструку убрзања оса, диктафон и играју 4 различите звукове.
 Основни принцип лампе је следећи:

 Испоставило се бука (звука)
 Лампа укључен
 Ради запис №3
 Ручни Лампа даје приједлог (лево-десно-лево)
 Серво остаје на 90 °
 Завршен трансакција

 Ако постоји бука, онда:

 Лампа укључен
 Серво са Ламп потезом напустио
 Ради запис №2
 Лампа врати у позицију 90 °
 Завршен трансакција

 Ако метални рука достигну одређену (висок) положај, затим играју рекорд №4.

Надоградити лампа робот са ИКЕА

Надоградити лампа робот са ИКЕА

Надоградити лампа робот са ИКЕА

Надоградити лампа робот са ИКЕА

Надоградити лампа робот са ИКЕА

Надоградити лампа робот са ИКЕА

Надоградити лампа робот са ИКЕА

Надоградити лампа робот са ИКЕА

Надоградити лампа робот са ИКЕА

 Корак 3: Побољшање
 У пројектовања може направити нека побољшања као уграђивање контролну таксе Сееедуино, да контролише извршење кода користећи редован циклус ИФ. Ако прекидач укључен - старт моде ауто, ако не - мод за употребу.
 Ауто-мод укључује стандардну код кад лампа реагује на звук.
 Ручно-режим обезбеђује даљинско управљање преко троструког акцелерометру осе, мења положај оса Кс и И.
 Можете направити заокрет светла 360 °, додајући јој посебан серво. Могу Поставио сам за повезивање преко Ви-Фи / Етхернет.
 Корак 4: Цоде
 Аутор код (МрЛднр) могу се наћи испод.
 [Спојлер]
 #инцлуде
 цонст инт буттонПин = 4; // Прекидач Позиција
 инт буттонСтате = 0; // Променљива за читање дугмад позиције
 // Серво Сетуп
 Серво мисерво2;
 Серво мисерво; // Креира за серво управљач
 инт пос = 0; // Променљиве да сачувате серво позицију
 инт пос2 = 0; // Променљиве да сачувате серво позицију
 инт вал1;
 инт вал2;
 // ЛЕД Сетуп
 цонст инт ледПин2 = 5; // Главни светло
 цонст инт ледПин = 12; // Тубе светлост
 инт цоунтламп2 = 0;
 // Бука Сетуп
 цонст инт тхресхолдвалуе = 300; // одговор на звук
 // Сет акселеометра
 инт истате;
 инт кстате;
 #инцлуде
 #дефине ММА766ддр 0к4ц
 #дефине ММА7660_Кс 0к00
 #дефине ММА7660_И 0к01
 #дефине ММА7660_З 0к02
 #дефине ММА7660_ТИЛТ 0к03
 #дефине ММА7660_СРСТ 0к04
 #дефине ММА7660_СПЦНТ 0к05
 #дефине ММА7660_ИНТСУ 0к06
 #дефине ММА7660_МОДЕ 0к07
 #дефине ММА7660_СР 0к08
 #дефине ММА7660_ПДЕТ 0к09
 #дефине ММА7660_ПД 0к0А
 Убрзање класа
 {
 јавна:
 Чар х;
 цхар и;
 Чар З;
};

 Чар индекс;
 Чар контрола;
 Чар држава;
 инт аудиоделаи = 1000;
 воид мма7660_инит (воид)
 {
 Вире.бегин ();
 Вире.бегинТрансмиссион (ММА766ддр);
 Вире.сенд (ММА7660_МОДЕ);
 Вире.сенд (0к00);
 Вире.ендТрансмиссион ();
 Вире.бегинТрансмиссион (ММА766ддр);
 Вире.сенд (ММА7660_СР);
 Вире.сенд (0к07); // Узорци / Друго Ацтиве Моде и Ауто-сна
 Вире.ендТрансмиссион ();
 Вире.бегинТрансмиссион (ММА766ддр);
 Вире.сенд (ММА7660_МОДЕ);
 Вире.сенд (0к01); // активан режим
 Вире.ендТрансмиссион ();
}

 воид сетуп ()
 {
 мма7660_инит (); // Придружите И2Ц (адреса селективна мајстор уређаја)
 Сериал.бегин (9600);
 // Мотион Сенсор
 пинМоде (6 УЛАЗ); // користи 2 ноге за екстерног сигнала
 // Лампа светло и база светло
 пинМоде (ледПин, ИЗЛАЗ);
 пинМоде (ледПин2 ИЗЛАЗ);
 // Сервос
 // АУДИО
 ДДРД | = 0к0Ц; // Д2 и Д3 писати у режиму;
 ПОРТД & = 0кФ3; // Д2 и Д3 постављен на ниска;
 // Сензор буке на Аналог 0
 // СВИТЦХ
 пинМоде (буттонПин, ИНПУТ);
}
 воид рец_2_бегин ()
 {
 ПОРТД = (ПОРТД | 0б00000100) & 0б11110111;
}
 воид рец_2_стоп ()
 {
 ПОРТД & = 0кФ3;
}
 воид плаи_2 ()
 {
 ПОРТД = (ПОРТД | 0б00000100) & 0б11110111;
 кашњење (аудиоделаи);
 ПОРТД & = 0кФ3;
}
 ////////////////////////////////////////////////// ////////////////////
 ////////////////////////////////////////////////// /////
 // Функција за контролу сегмент_3
 воид рец_3_бегин ()
 {
 ПОРТД = (ПОРТД | 0б00001000) & 0б11111011;
}
 воид рец_3_стоп ()
 {
 ПОРТД & = 0кФ3;
}
 воид плаи_3 ()
 {
 ПОРТД = (ПОРТД | 0б00001000) & 0б11111011;
 кашњење (аудиоделаи);
 ПОРТД & = 0кФ3;
}
 ////////////////////////////////////////////////// ///
 ////////////////////////////////////////////////
 // Функција за контролу сегмент_4;
 воид рец_4_бегин ()
 {
 ПОРТД = ПОРТД | 0б00001100;
}
 воид рец_4_стоп ()
 {
 ПОРТД & = 0кФ3;
}
 воид плаи_4 ()
 {
 ПОРТД = ПОРТД | 0б00001100;
 кашњење (аудиоделаи);
 ПОРТД & = 0кФ3;
}
 //////////////////////

 воид цхецк_мове ()
 {
 инт сенсорВалуе = дигиталРеад (6);
 ако (сенсорВалуе == 1)
 {
 // ДигиталВрите (ледПин, висок);
 //Сериал.принтлн(сенсорВалуе, ДЕЦ); // излаз сигнала положај на монитору.
 // Серво1 ();
}
 друго
 {
 // ДигиталВрите (ледПин, ЛОВ);
 //Сериал.принтлн(сенсорВалуе, ДЕЦ); // излаз сигнала положај на монитору.
 // Серво2 ();
}
}
 воид серво1_ригхт ()
 {
 мисерво.аттацх (9);
 за (п = 90; п = 90; поседовање = 1) // иде од 0 до 180 степени
 {
 мисерво.врите (пос); // Показује серво позицију кроз променљивог '' поз
 забаване (10); // Ваитс 15 мс до серво управљач заузима позицију
} * /
}
 воид серво1_лефт ()
 {
 мисерво.аттацх (9);
 фор (пос = 90; поз & гт; 1; Поз - = 1) // иде од 0 до 180 степени
 {// Корацима од 1 степена
 мисерво.врите (пос); // Показује серво позицију кроз променљивог '' поз
 забаване (10); // Ваитс за 15 мс, а серво управљач не заузима став
} / *
 плаи_2 ();
 кашњење (1000);
 за (п = 1; пос90) {
 фор (пос = посацт; поз & гт; 90; Поз - = 1) // враћа 90 степени
 {// Корацима од 1 степена
 мисерво.врите (пос); // Показује серво позицију кроз променљивог '' поз
 забаване (10); // Ваитс за 15 мс, а серво управљач не заузима став
}
}
 друго {
 фор (пос = посацт; пос 60; Поз - = 1) // иде од 0 до 180 степени
 {// Корацима од 1 степена
 мисерво2.врите (пос); // Показује серво позицију кроз променљивог '' поз
 забаване (10); // Ваитс за 15 мс, а серво управљач не заузима став
} / *
 плаи_2 ();
 кашњење (1000);
 за (п = 1; пос90) {
 фор (пос = посацт; поз & гт; 90; Поз - = 1) // враћа позицију 90 степени
 {// Корацима од 1 степена
 мисерво2.врите (пос); // Показује серво позицију кроз променљивог '' поз
 забаване (10); // Ваитс за 15 мс, а серво управљач не заузима став
}
}
 друго {
 фор (пос = посацт; поз<=90 ;="" pos="" +="1)" goes="" from="" 0="" degrees="" to="" 180="">
 {// Корацима од 1 степена
 мисерво2.врите (пос); // Показује серво позицију кроз променљивог '' поз
 забаване (10); // Ваитс за 15 мс, а серво управљач не заузима став
}
}
}


 воид серво1_но ()
 {
 мисерво.аттацх (9);
 за (п = 90; п = 90; поседовање = 1) // иде од 180 до 0 степени
 {
 мисерво.врите (пос); // Показује серво позицију кроз променљивог '' поз
 забаване (10); // Ваитс за 15 мс, а серво управљач не заузима став
}
}
 воид серво2 ()
 {
 мисерво2.аттацх (10);
 фор (пос2 = 110; пос2< 140;="" pos2="" +="1)" ="" 0="" ="" 180="">
 {//
 мисерво2.врите (пос2); // Показује серво позицију кроз променљивог '' поз
 забаване (15); // Ваитс за 15 мс, а серво управљач не заузима став
}
}

 воид серво1Р ()
 {
 мисерво.врите (90);
 мисерво.детацх ();
}
 воид серво2Р ()
 {
 мисерво2.врите (90);
 мисерво2.детацх ();
}
 воид лампблинк ()
 {
 // Инт сенсорВалуе = дигиталРеад (6);
 // Ако (сенсорВалуе = 1) {
 дигиталВрите (ледПин, висок);
 // Делаи (1);
 // ДигиталВрите (ледПин, ЛОВ);
 // Делаи (1);
 //}
 // Елсе
 // ДигиталВрите (ледПин, ЛОВ);
}
 воид ламптест ()
 {
 фор (инт и = 0; и<100;>
 {
 дигиталВрите (12 ХИГХ);
 забаване (50);
 дигиталВрите (12 ЛОВ);
 забаване (50);
}
}
 воид лампофф ()
 {
 // Делаи (2000);
 дигиталВрите (ледПин, ЛОВ);
}
 // Акселеометр
 воид еЦом ()
 {
 грозен Чар вал [3];
 инт број = 0;
 вал [0] = вал [1] = вал [2] = 64;
 Вире.рекуестФром (0к4ц, 3); // Пита 3 бајтова са апарата у роб-мод 0к4ц
 док (Вире.аваилабле ())
 {
 иф (цоунт 63) // поновних
 {
 вал [датотека] = Вире.рецеиве ();
}
 цоунт ++;
}
 // Конверзија сигнала од 7 бита 8 бита
 Убрзање рет;
 рет.к = ((цхар) (вал [0] 2)) / 4;
 рет.и = ((цхар) (вал [1] 2)) / 4;
 рет.з = ((цхар) (вал [2] 2)) / 4;
 истате = рет.и;
 кстате = рет.к;
 Сериал.принт ("к =");
 Сериал.принтлн (рет.к, ДЕЦ); //
 Сериал.принт ("и =");
 Сериал.принтлн (рет.и, ДЕЦ); //
 Сериал.принт ("з =");
 Сериал.принтлн (рет.з, ДЕЦ); //
}
 Чар читање = 0;

 воид петља ()
 {
 Ецом (); // Проверите статус акцелометар
 дигиталВрите (ледПин2ХИГХ);
 буттонСтате = дигиталРеад (буттонПин); // Позиција читање прекидач
 ако (буттонСтате == ХИГХ)
 {
 лампблинк (); // довело на:
 мисерво.аттацх (9);
 мисерво2.аттацх (10);
 вал1 = истате;
 вал1 = мапа (вал130 -300179);
 мисерво2.врите (вал1);
 вал2 = кстате;
 вал2 = мапа (вал2 -30300 179);
 мисерво.врите (вал2); // Поставља серво позицију према вредности ранзхируемым
 ако (истате тхресхолдвалуе)
 {
 Сериал.принтлн ("ДА");
 // ДигиталВрите (ледНоисе, висок);
 плаи_4 ();
 // Лампофф ();
 лампблинк ();
 серво1_но ();
 серво1_но ();
 серво1Р ();
 кашњење (1000);
}
 друго
 {
 лампофф ();
}
 // Провера за кретањем
 инт сенсорВалуе = дигиталРеад (6); // Детектор
 ако (сенсорВалуе == 1)
 {
 Сериал.принтлн ("Мове");
 // Мовестате = 1;
 лампблинк ();
 // Серво2 ();
 серво2_ригхт ();
 серво1_ригхт ();
 плаи_2 ();
 кашњење (1000);
 серво2_ретурн ();
 серво1_ретурн ();
 серво1_лефт ();
 серво2_лефт ();
 плаи_2 ();
 кашњење (1000);
 серво2_ретурн ();
 серво1_ретурн ();
 // Делаи (1000);
}
 друго
 {
 // ДигиталВрите (ледНоисе, ЛОВ);
 // Серво2 ();
 серво1Р ();
 серво2Р ();
 лампофф ();
 // Плаи_2 ();
 // Мовестате = 0;
}
}
}  




Яндекс.Метрика