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

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


Публикации - mivr

Страници: 1 2 [3] 4 5 ... 8
31
Най-вероятно ще свърши много зле...

Зависи какво правиш в лоопа ако нямаш много дълги изпълнения може би около 1000 или повече.

32
Изборът на константи за ПИД е тема която се изучава за кратките 4-5 лекции във ВУЗ не мога да ти кажа универсални константи които работят винаги, за всяка система има различни константи.

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

Изчисляването на ПИД във времето също е част от тези лекции и не мога да кажа една конкретна стойност, въпрос на проби и грешки...

За да постигнеш резултат ти трябва значителна доза търпение и много батерии. :)

33
Като проценти около 90% в първата 9% във втората и най-често под 1% в последната.

Всъщност ти трябва ПИД пропорционално интегрално диференциален контрол с др. думи взимаш готовата библиотека за PID и започваш да нагласяш константите. :) Сензорите винаги ще си ги проверяваш, разликата с пид е че този алгоритъм ще определя скоростта на двигателите а не 4-5 ифа.

Относно положението на сензорите, не знам, пробвал съм конструкция с приблизително близки и с максимално отдалечени и двете не прескочиха 50см/сек.

34
При 7805 ще е 5 волта но сервотата най-често работят и на 5 волта, алтернативно можете да използвате регулатора на ардуино с диод и мощен кондензатор (задължително е използването на диод, за предпочитане шотки и кондензатор над 1000uF, иначе може да смутите работата на процесора).

Относно въпросът за тракерите:

След не кратки опити, експерименти и четене на статии по темата мога да кажа че скорости до 50см/сек са лесни за постигане, от 50 до 100-120см/сек изискват теория на контрола и средно добри знания в механика, за скорости над 120см/сек ви трябват:
знания по сложна механика,
пълно разбиране на закони за сцепление и центробежни сили,
основна аеродинамика,
пълно разбиране на теорията на контрола,
напреднали знания по схемотехника,
напреднали знания по програмиране
и разбира се най-важното нужният интелект да сглобите всичко. :)

35
1.Въпрос: На мосфетите има ли диоди между пиновете, че на схемата гледам някакви диоди, или е само един за цялата схема на драйвера(горе)?

Отговор: Всички мосфети имат вградени диоди в себе си иначе биха се счупили от обратните токове. Не е нужно добавянето на диоди отвън.

2.Въпрос: Трябва ли да има обща земя на батерийте за моторите и захранването на драйверите?

Отговор: Да, иначе няма как драйверът да разбере кога има високо ниво на входовете.

3.Въпрос: Захранването Vcc колко волта трябва да е и можем ли да го пуснем директно 5в от Ардуиното?

Отговор: Не, трябва да захраните схемата с поне 10 волта, ако нямате увеличете броя на батериите.

Можеш ли да ни дадеш и готов код(съвсем прост) който да тестваме, че не ни се получава нещо.

Отговор: Пример за един мотор контрол с два полу-моста. Общ SD сигнал закачен на 9 пин на ардуиното, IN от едната схема на 10 и IN от другата на 8. Цел да задвижим моторът в една посока като можем да регулираме скоростта със ШИМ модулация. ВНИМАНИЕ ШИМ модулацията минава през инвертиране с др. думи 0 е максимална скорост а 255 е стоп.

void setup()
{
pinMode(9,1);
pinMode(10,1);
pinMode(8,1);
digitalWrite(10,1);
digitalWrite(8,0);
analogWrite(9,128);
}
void loop()
{
}

36
Съжалявам за отсъствието, срещнах не малко трудности при използването на Skype и Windows 8.

Относно драйвера следвате схема дословно и с компонентите които ви казах, не сменяте диода от сигнален на шотки (води до взрив).
След като сглобите схемата на IN порта подавате посоката на движение а на SD кракът ШИМ модулацията за определяне на скоростта (имайте в предвид че кракът е инвертиран тоест 0 ще е максимум а максимумът в кодът ще е 0 на схемата).

Драйверът е тестван с 100nF импулсни кондензатори 10Ohm резистори и диод 1N4007 и работи в описаният режим.

Успех ако имате проблеми пишете във форумът, поне докато се справя с Win 8. :)

37
Практика / Програмиране на LCD-dysplay
« -: Януари 26, 2013, 01:37:53 pm »
Проблемите които водят до такъв ефект са много, засега провери следните три неща:

1.Адапторът на променлив или прав ток е?
2.Ако се премахне дисплея захранването още ли прегрява?
3.Ако закачиш дисплея на друго захранване отново ли прегрява?

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

Успех,
когато можеж пиши.

38
Практика / Програмиране на LCD-dysplay
« -: Януари 25, 2013, 04:53:03 pm »
Кодът има една видима грешка, а тя е както следва: липса на дефиниране на честотата на процесора което води до грешно отчитане на времето с функцията _delay_ms().

В AtmelStudio 6 компилаторът те предупреждава ако честотата не е дефинирана, препоръчвам ти да ползваш най-новата версия на студиото, то все пак решава особенно много проблеми и спестява много нерви.:)

П.П.
Този линк може да ти се окаже полезен, макар и за друг процесор:
http://www.avrfreaks.net/index.php?module=Freaks%20Academy&func=viewItem&item_type=project&item_id=879

Поздрави и успех,

39
Общ форум / Въпрос:контролиран робот чрез Pc
« -: Декември 25, 2012, 09:30:34 pm »
Разбира се :

Skype име:
mivrmmm

имеил:
[email protected]

П.П.
Добавям ги към подписът си благодаря.

40
Общ форум / Въпрос:контролиран робот чрез Pc
« -: Декември 17, 2012, 01:47:05 pm »
Здравейте отново ето и отговорите които поискахте:

1.Въпрос:

....където пише ГН или друго...извинявай GND

Отговор:

GND  е английският символ за земя или 0V на схемата, на Ардуиното е отбелязано като GND (това е основен и масово използван знак, най-добре е да го знаете :) )

2.Въпрос:

само ли се върти сервото, т.е. по зададен начин, или той натиска копче или клавиш на компютъра или пък дистанционно?

Отговор:

В даденият пример сервото се контролира по зададен модел в кодът на контролера и няма контрол от потребителя.

Ако имате още въпроси не се притесняваите и питаите.

П.П.
Принципно през уикендите почивам и не пиша. :)

41
Общ форум / Въпрос:контролиран робот чрез Pc
« -: Декември 14, 2012, 08:54:48 pm »
ГН не е сред познатите ми знаци моляте покажи къде си го видял и ще потърся какво е.

42
Общ форум / Въпрос:контролиран робот чрез Pc
« -: Декември 14, 2012, 01:30:34 pm »
Радвам се че не се отказвате и ето отговорите които поискахте:

1.Въпрос:

Какво всъщност е нужно на този контролер за да може да командва сервото като получи сигнал в реално време?

Отговор:

Единствено захранване (USB-то може да го захранва) и връзка между крак на Ардуиното и сигналния пин на сервото.

Пример:

http://www.azega.com/arduino-servo-motor-part-1/

2.Въпрос:

Гледах във форума за Ардуино, където имаше едни големи и страшни схеми за свързване на компоненти върху платка.Какво ще рече "започни със светване на светдиода на 13 пин"?

Отговор:

Схемата за серво се изчерпва с тези три жици показани във статията по-горе.
Светодиодът на 13 пин е вграден светодиод които свети когато се напише програма която задава състояние на крака (1 или 0) съответно при състояние 1 (HIGH) има 5V на пин 13 и светодиодът свети а при 0 (LOW) има 0V и съответно светодиодът не свети.
Това е най-простичкия пример на Ардуино и с него се започва когато се учиш.:)

Пример:

http://www.arduino.cc/en/Tutorial/Blink
Пояснение не ти трябва да добавяш светодиод просто пусни програмата и светодиодът до които пише L ще започне да мига.:)

3.Въпрос:

И как се прави този "протокол за за комуникация между компютърът и Ардуиното" ( пише се на C# ли)?

Отговор:

Самият протокол е идеята какво ще прати компютърът и как ще е кодирана информацията (ако е кодирано).

Пример:

Компютърът праща 2 байта в които има число между 0 и 179 .
Ардуиното чете тези два байта и поставя серво 1 на градуси равни на стойността записана в първият байт а серво две идва на градуси равни на стойността записана във вторият байт.

4.Въпрос:

Какво ще рече да се кодира протокола до две функции?

Отговор:

Това значи че в кодът ти на компютърът имаш функция "прати тази информация" а на Ардуиното имаш функция "получи информация".
Както следа функцията на компютърът праща през серийна или друг вид комуникация данните до Ардуиното , а функцията на Ардуиното проверява дали има получен пакет (лесно осъществимо в Ардуино средата) и когато има го разкодира до полезна информация и го предава на останалата част от програмата.

Пример:

Примерът е за некодирана комуникация между среда за програмиране Processing и Ардуино.

Processing код:

import processing.serial.*; // библитеката
Serial myPort; //обектът от тип сериен порт
myPort = new Serial(this, Serial.list()[0], 9600); //дефиниране на номер на серийният порт и избиране на скорост

//и самата функция
void SendServoData(int ServoData1 , int ServoData2)
{
myPort.write(StartByte);
myPort.write(ServoData1);
myPort.write(ServoData2);
myPort.write(StopByte);
}

Ардуино код:

Serial.begin(9600);

//функцията
bool ReadCom(int *ServoData1 , int *ServoData2)
{
if(Serial.avaliable()<=3)return 0;
byte StartReceived , StopReceived;
StartReceived = Serial.read();
&ServoData1  = Serial.read();
&ServoData2  = Serial.read();
StopReceived = Serial.read();
if(StartReceived != StartByte || StopReceived != StopByte)return 0;
return 1;
}
//този код е само ориентировъчен не е тестван но от него можете да си представите как ще изгелжда крайният код


Надявам се че отговорите ми ще са ви от полза , ако не просто питайте пак.:)

43
Общ форум / Въпрос:контролиран робот чрез Pc
« -: Декември 13, 2012, 07:02:35 pm »
Идеята ти е осъществима в срок от 3 до 6 седмици с бюджет от около 60 до 120 лева.
Зависи колко инструменти и знания имаш.

Предлагам ти следният план:

1.Материали:
 
   Ардуино - (което си избереш препоръчвам Уно или Леонардо)
    USB кабел (ако нямаш такъв)
    2 сервота (които ще управляваш)
    около 30см едножилен проводник

2.Инструменти:

    Поялник и принадлежности (тинол и колофон)
    клещи секачки / оголвачки
    изолирбанд или друго тиксо (ако искаш да закрепиш кабелите по-здраво)

3.Начин на осъществяване:

    Първо започваш с изучаване на езика на Ардуиното (започни със светване на светдиода на 13 пин) когато можеж да използваш основните функций (най-вече серийната комуникация) направи протокола за комуникация между компютърът и Ардуиното.

    Когато имаш протокола за комуникация го кодирай до две функций (С е процедурен език за това кодираме до функций...) едната фунция от компютърът изпраща до контролера а другата от контролера до компютърът (за сверяване на данните).

    За ардуинто се пише на специален език които е лесен и бърз за научаване , за компютърът можеж да го кодираш на Java (не препоръчвам) или да намериш библиотеки за С# които могат да поддават команди към Ардуиното (просто потърси в Гоогле......).

    След като завършиш комуникацията я тествай със светодиода и после с библиотека MegaServoLibrary за Ардуиното добавяш 2 обекта от тип серво , закачаш ги към номерата на краката на които си вързал сигналният крак на сервото (потърси в Гоогле как се връзва сервото) и подаваш стойностите от комуникацията към обектите от тип серво.



Това би трябвало това да е достатъчен материал за да успееш без нуждата да задаваш много въпроси (надявам се).

Единствено те моля ако решиш да го правиш да го опишеш за да могат и други да се научат. :)

Радвам се че имаш идейте и желанието да го осъществиш.

За каквито и да е въпроси по проекта или по друг проект питай във форумът ще ти се отговори. :)

44
Ардуино (Arduino) / Цифров пин 12 не работи
« -: Декември 05, 2012, 12:47:38 pm »
Атмега 328П има вграден диод които предпазва процесора от неправилен поляритет на захранването.
Ако температурата беше превишила границите на процесора то процесора изобщо нямаше да стартира.
От това следва, че няма как проблема да е от обърнатият поляритет.

Най-вероятно нещо друго е предизвикало проблема.

45
Електроника / Въпрос за захранване.
« -: Ноември 01, 2012, 07:18:13 am »
Ако закъсаш някъде пиши тука сме и ще помогнем.:)

Страници: 1 2 [3] 4 5 ... 8