Покажи участието

От тук може да видиш всички публикации на този потребител.


Теми - durankulakat

Страници: [1] 2
1
http://www.windmeadow.com/node/19
На английски език е. Скоро мисля да я преведа .
В статията има пример с Attiny2313.
Имам един въпрос: функцията която обслужва даденото прекъсване след главната функция ли трябва да е написана?
Поздрави!

2
BEAM-роботи / Headbot tutorial
« -: Април 01, 2010, 11:53:56 pm »
В тази тема ще ви опиша стъпка по стъпка създаването на хедбoт  :D
Headbot-ът представлява една "глава" която се върти и насочва към сввтлината. В този случай е с слънчев панел, но може и с батерия.
Преди да започна ще кажа че снимките са правени с gsm и са с доста лошо качество. Но ако докато се следят стъпките се изработва самия робот, разгадаването на изображенията става по лесно  :lol:
Нека да започнем!
Схемата:


Части:
Слънчев панел 4V 80mA - 1бр
Кондензатор 1F 5.5V - 1бр
Мотор + зъбни колела от мини хеликоптер - 1бр
Фотодиоди - 2бр
Мигащ светодиод - 1бр
Транзистор BC327 - 2бр
Транзистор PN2222 (2N2222) - 2бр
Транзистор PN2907 (2N2907) - 2бр
Резистори 10kOhm - 2бр
Обща цена: малко под 20лв (но може да се намали до под 10...)

(на снимката съм забравил резисторите :oops: )


Слънчевият панел:



Кондензаторът:


Нужни инструменти:
Поялник
Тинол
Малки клещи
Секачки
Ножица
Тиксо

Време за изработка: под 2 часа...

___________________________________________________________

Частите от хеликоптера:



Самият мотор е движещата се част, като обикаля около неподвижното по-голямо колело. То е захванато с тел към основата (сами ще се сетите каква е :) )






Засега толкова. По-късно ще продължа с сглобяването на електронната част :)

За да се ентусиазирате ще кажа че робота вече е сглобен и работи ;)

3
Програмиране / Таймер на Atmega8
« -: Декември 15, 2009, 08:14:46 pm »
Въпроса ми е как се ползва таймера за генериране на честота. По-точно какъв е кодът?

4
За всичко... / Pot Mod на зелен лазер
« -: Май 13, 2009, 09:17:07 pm »
Наистина ли може да се получи това нещо - от 5mW лазер ---> лазер който пали кибритени клечки? Някой пробвал ли е?

5
В тази книга са описани AVR микроконтролерите - структурата им и тяхното програмиране + 10 проекта :)
ЛИНК

П.П. Книгата е на английски

6
Робо-сумо / Моят сумо робот
« -: Май 05, 2009, 12:10:49 pm »
От миналата седмица започнах работа по този проект и вече е почти готов :clap:
Остават само ралото, капакът и сензорите за следене на линия.
Вчера го тествах само с IR сензорите и изникна проблем...
Ето я схемата:

И кодът:#include <avr/io.h>
#include <avr/delay.h>
#define F_CPU 4000000UL // 4 MHz clock rate

int main(void)
{      
    DDRD=0xff;
    DDRC=0x00;
    DDRB =1<<PB2;  
    TCCR1A=(1<<COM1B1)|(1<<WGM11)|(1<<WGM10);
    TCNT1=0;
    OCR1A=105;   //tuning to 38kHz
    OCR1B=53; //50% duty cycle
    TCCR1B=(1<<WGM12)|(1<<WGM13)|(1<<CS10);
   
    PORTD|=_BV(PD0);
    PORTD|=_BV(PD3);
   
    while(1)
    {
       
       if(!(PINC&(1<<PC3)))
       {
       
          PORTD&=~_BV(PD0);
          PORTD&=~_BV(PD3);
          PORTD|=_BV(PD1);
          PORTD|=_BV(PD2);
          _delay_ms(500);
          PORTD&=~_BV(PD1);
          PORTD&=~_BV(PD2);
          PORTD|=_BV(PD0);
          _delay_ms(500);
          PORTD|=_BV(PD3);
         
       }
         
       if(!(PINC&(1<<PC2)))
       {
       
          PORTD&=~_BV(PD0);
          PORTD&=~_BV(PD3);
          PORTD|=_BV(PD1);
          PORTD|=_BV(PD2);
          _delay_ms(500);
          PORTD&=~_BV(PD1);
          PORTD&=~_BV(PD2);
          PORTD|=_BV(PD3);
          _delay_ms(500);
          PORTD|=_BV(PD0);
         
       }              
       
       while(PINC&(1<<PC2),PINC&(1<<PC3),!(PINC&(1<<PC2)),PINC&(1<<PC5))
       {
       
          PORTD&=~_BV(PD0);
         
       }
       
       PORTD|=_BV(PD0);
       
       while(PINC&(1<<PC2),PINC&(1<<PC3),PINC&(1<<PC4),!(PINC&(1<<PC5)))
       {
       
          PORTD&=~_BV(PD3);
         
       }
       
          PORTD|=_BV(PD3);
         
       while(PINC&(1<<PC2),PINC&(1<<PC3),PINC&(1<<PC4),PINC&(1<<PC5))
       {
       
          PORTD|=_BV(PD3);
          PORTD|=_BV(PD0);
       
       }
       
    }    

}

А проблемът е, че когато пусна контролера подава сигнал само на дясното серво и то назад  :shock:
Изобщо не реагира на сензорите и само се върти в кръг
Имам съмнения относно кода, но немога да намеря грешка
Някой може ли да ми помогне?

7
За всичко... / Роботиката в Варна
« -: Април 14, 2009, 11:14:38 pm »
Предлагам в тази тема всички варненци да пишат и да си организираме сбирки :) . Като за начало нека да се запознаем.

8
Електроника / Питане за схема на H-мост
« -: Април 12, 2009, 04:51:06 pm »
Каква е грешката в тази схема и защо няма да работи добре?

9
За всичко... / Махане на глава на дрелка
« -: Април 12, 2009, 01:05:11 pm »
Някой знае ли как става? Трябва ми за да я сложа на стойка за фреза.

10
Програмиране / Експеримент с Atmega8
« -: Април 10, 2009, 10:42:10 pm »
Днес реших да направя нещо различно с микроконтролера. Задачата е да се отваря и затваря механизма на CD (безкраен цикъл). Не е много, но ми беше интересно да го направя  :-D . Схемата е следната: 1 микроконтролер и 1 драйвер l293d, D1 и D2 на микроконтролера са свързани към input 1 и input 2 на драйвера(единия Н мост), а C5 e свързан към ключа на механизма (който е в логичесто 1 при двете крайни положения: напълно отворено и напълно затворено). Към драйвера е свързан мотора от CD-то. Ако не си представяте схемата пишете да пусна снимка. Първият опит с кода беше неуспешен (аз го писах :) ) . С него посоката се обръщаше само веднъж и след това се опитваше да излезе извън рамката  :) .

#include <avr/io.h>
#include <avr/delay.h>
#define F_CPU 4000000UL  
   
int main(void)          
{
   
DDRD = 0xff;          
DDRC = 0x00;

PORTD|=_BV(PD1);

while(1)
{
   while (!(PINC&(1<<PC5)))
   {
      if(PINC&(1<<PC5))
      {
      PORTD&=~_BV(PD1);
      PORTD|=_BV(PD2);
      }
   }
   while(!(PINC&(1<<PC5)))
   {
      if(PINC&(1<<PC5))
 {
 PORTD&=~_BV(PD2);
 PORTD|=_BV(PD1);
 }
   }
}

}


yasko ми даде един друг код, за което му благодаря :biri: , който работеше :) . Ето го:
#include <avr/io.h>
#include <util/delay.h>
#define F_CPU 4000000UL

int main(void)
{
   DDRD = 0xff;
   DDRC = 0x00;

   PORTD |= _BV(PD1);
   PORTD &= ~_BV(PD2);

   while(1)
   {
      if (PINC&_BV(PC5))
      {
         if (PORTD&_BV(PD1))
    {
         PORTD |= _BV(PD2);
         PORTD &= ~_BV(PD1);
    }
         else
    {
         PORTD |= _BV(PD1);
         PORTD &= ~_BV(PD2);
         }
         while (PINC&_BV(PC5));
      }

   }

}


Ето и клипче на работата на схемата:
http://www.youtube.com/watch?v=rtlsKrxzY5o

   Поздрави!

11
Може ли някой да ми каже какъв е синтаксисът за управление на портовете на АVR микроконтролерите?

12
Намерих! Моля модератора да затвори темата.

13
Привет! :)
  След като пристигна слънчевото ми панелче, реших да направя робот който да се захранва само с слънчева енергия. Стъпка по стъпка в тази тема ще опиша направата му.
 Панелът който използвам е 4.5V и в слънчев ден може самостоятелно да задвижи моторче, размерите му са 60x60mm и ето как изглежда - снимка
Но, панелът няма да може да осигури нужната енергия за да може да се движи роботът. Затова ще използвам схема която натрупва заряд в кондензатор и след като стигне определено ниво, той се разрежда през мотора като освобождава повече енергия  :) . Схемата е тази и е много подходяща за начинаещи, тъй като има малко елементи. Напрежението при което транзисторите се отпушват зависи от стойността на ценеровия диод (ако е 3.3V зарядът ще се освободи когато напрежението достигне 3.3V). Схемата е тествана от мен и работи чудесно :D . Ако има ентусиасти - да не се колебаят за направата й ;) .
Днес пробвах с кондензатор 4000мф, но импулсът беше много кратък и недостатъчен за да завърти колело. Утре ще отида до конрад и ще си взема кондензатор 1F 5.5V :-D (миналия път когато ходих там продавача ми каза че е като батерия). Надявам се с него да работи по-добре. Утре ще продължа темата с резултати от новия кондензатор и по-късно видео за сглобяването на робота :) !

14
Електроника / Напрежение след резистор
« -: Март 10, 2009, 02:41:48 pm »
Здравейте!
 Имам един проблем - към батерия 4.8V свързвам резистор (220 ома) на единия извод и като меря след резистора пак ми дава същото напрежение :? . Никога досега не ми се е случвало подобно нещо.

15
Програмиране / SMD Atmega8
« -: Февруари 25, 2009, 10:48:39 pm »
Днес като се разрових в кутията с елементите си видях един SMD чип, който си спомних че го вземах преди 2 години за спийд контролер за базчетков двигател (занимавах се с авиомоделизъм), тогава не разбирах много от електроника и отидох до магазина да си купя частите, а след това разбрах че не мога да ги запоя  :zubi: (всичките бяха SMD).Че сега го видях и реших да погледна какъв е всъщност и какво да видя - пише Аtmega8 16AU :shock: . SMD контролера има ли нещо по-различно от стандартния и ако да за какво мога да го използвам?

Страници: [1] 2