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

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


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

Страници: 1 2 [3] 4 5 ... 12
31
Ще можеш да управляваш с Ардуино 3 мотора.
Ако ти се занимава, мога да ти изпратя файл с платка за драйвер за 4 мотора. Но трябва да го правиш в платкаджийница, защото е трудничък за ръчна изработка. Иначе е малко по-разточителен(има по един контролер за всеки мотор), но позволява четирите мотора да работят абсолютно независимо един от друг. Предвидена е шина за комуникация(с Ардуино), по която се задават параметри(брой стъпки, скорост) и разрешаващ вход, който определя кога да се изпълни зададеното и кога да спре(ако е зададено безконечно въртене). Другото хубаво е, че е правен за голям брой мотори и чрез FLAT10 кабел може да се добави следващ и следващ модул...

32
Хайде сега по ред: колко мотора трябва да се управляват?

33
Има такива устройства, но не е оправдано в случая, според мен - като цена и заемано място.

34
Понеже си се ориентирал към такъв подход, аз виждам нещата така: Качваш си операционната система и сървъра на този модул. Към него свързваш през серийния порт някакъв друг микроконтролер, който програмираш да разпознава командите и подава импулси на драйвера.

35
Ух... Малко е като да имаш копче и да чакаш да му пришият палто...
"Мозъкът" е някакъв микроконтролер. Той управлява мотор(ите) чрез междинен драйвер. От другата страна е комуникационен модул, който да осъществява комуникацията с браузъра.
Един от начините е да използваш библиотека, позволяваща микроконреолерът да работи като WEB сървър. Така при свързване той ще ти генерира отговорите.

36
Прочети внимателно всички мнения от линка, който съм дал. Няколко души обясняват как да се премине от hard lock в режим grand reset:

"You can unlock your Blackberry after finish 10 attemts by cable process. go local mobile repair shop. after this process your Blackberry Bold 9700 Unlock .No need to Mep code for your Blackberry ."

"There is a solution to your problem but for that, you would have to take your phone to a good mobile shop. That mobile shop can release the hard lock from your phone and set it on grand reset. Grand reset would allow 10 more attempts to unlock your blackberry bold 9700. Now you can purchase the unlock code from a good vendor. If you allow me, I can suggest you a reliable MEP code provide, that is, Blackberry unlocking codes with IMEI. They provide high quality, trusted, and above all; CHEAPER codes. I have tested them and suggesting you on my personal experience."


И видео за самото отключване: http://www.fixya.com/support/t15365424-bb_9700_mep_locked_0_attempt_remaining

http://forums.crackberry.com/blackberry-8800-8820-f33/how-do-i-hard-reset-blackberry-8800-remove-user-privacy-lock-12287/

От изчетеното стигам до извода, че с кабел се променя състоянието(режима), след което се въвеждат кодовете.
Има един проблем, обаче... Много вероятно е да се иска платена програма за целта. От приятели, занимаващи се с ремонт знам, че си купуват софтуер за подобни цели. Има и по-ефтин, предлаган от частни лица, но пак е доста скъп.

37
Дай състав на телефона. Използва се някакъв специфичен похват за защита, който остава встрани при всичко, което правиш.

Виж това: http://www.fixya.com/support/t15365424-bb_9700_mep_locked_0_attempt_remaining

38
Почти съм сигурен, че тази информация не е в EEPROM-a. За начало, предлагам да се хванеш и да събереш колкото се може повече информация за модела - хардуер, дъмпове и т.н., от всевъзможни хакерски форуми и такива за ремонт на мобилни телефони.
Без да твърдя, че нашият начин е единствения, но произвеждаме няколко устройства, като при всичките има защитни функции, които се програмират от потребителско меню, но само веднъж след активиране на устройството. Съответно, достъп до тези адреси има само програмата, но този достъп се контролира от един адрес, промяната на стойността, на който забранява достъпа. Единственият начин за последваща корекция е наново да се "налее" цялата програма. За други опции, се ползват пък сервизни функции, които изискват специфична последователност от точно определени действия.

39
Аз лично, ако пишех програма за телефон, кодовете за сигурност не бих съхранявал във външен EEPROM, в който всеки може да рови, когато си иска, а във вградения EEPROM(или друга предлагана технология) на процесора.

40
Ардуино (Arduino) / Arduino код?
« -: Май 07, 2013, 01:59:54 pm »
Формулирай точно алгоритъма и ще го направим. За да не се налага да се извлича алгоритъм от частично написан код. Така се увеличава шансът за грешка в новия алгоритъм.

41
Ардуино (Arduino) / Затруднение с кода ( lcd 16x2 )
« -: Април 30, 2013, 10:57:06 am »
А се сърдиш, като казваме да си провериш хардуера(мога да си представя реакцията, ако бяхме споменали захранване) :)
  С код, при който прави refresh на всяка стъпка, със сигурност ще имаш проблем. Понеже попита, та да отговоря и на това: дисплеят може да се свързва с 4 линии за данни и работи без проблем, в това няма защо да се съмняваш.
  От USB токът би трябвало да е предостатъчен(освен ако не е някое малко лаптопче)! Аз захранвам основно през USB и то няколко периферни устройства, работещи заедно. За едно реле и един дисплей, няма начин да е проблем. Съпротивлението на подсветката предполагам, че е по спецификацията на дисплея...
  Да не би да се опитваш да захраниш през 7805? Предполагам знаеш, че 7805 сработва, когато входното напрежение е над 7-7,5V?
  Ако имаш 7805 и захранваш през USB, спокойно можеш да свържеш входа и изхода на 7805 на късо. Кондензаторите ще филтрират напрежението, което вече е стабилизирано достатъчно от захранването. И така ще работиш директно със захранване от USB порта.

42
Ардуино (Arduino) / Затруднение с кода ( lcd 16x2 )
« -: Април 29, 2013, 09:56:59 pm »
Зад клавиатурата не мога да съдя кой колко знае. Обикновено питам. И нямам навик да си създавам мнение за някого, когото не познавам лично. Контрастът е един от "глупавите", но чести проблеми.
Не видях къде ми каза, че даденият от мен код работи, за да тестваме if-а. От първото ти обяснение останах с убеждението, че не ти изписва нищо. По принцип, когато пусна част от код, с намерение да търся грешка, очаквам обратна връзка какво става.

lcd.print() трябва да се изпълнява само веднъж при настъпване на промяна. Иначе ще премигва и ще се вижда бледо.
Аз лично, бих оставил чисто "Ардуинския" подход и бих работил с порт, вместо с имена на бутони. Бих го направил не с брояч, а с променлива, в която се записва старото състояние, да я наречем oldstate.
 Тя трябва да се променя при смяна на състоянието и изпълняването на условието да е свързано с това oldstate да се различава от контролираната променлива.
Ако държиш да работипш в стила на Ардуино, можеш да въведеш за всеки бутон отделна променлива oldstate: button1oldstate, button2oldstate...

Ето пример за тест, но трябва да се добави опция за повторно изписване на съобщение за избор на артикул;
#include <LiquidCrystal.h>

int relay1 = 22;
int relay2 = 23;
int relay3 = 24;
int relay4 = 25;
int button1= 30;
int button2= 31;
int button3= 32;
int button4= 33;
int button1status = 0;
int button2status = 0;
int button3status = 0;
int button4status = 0;
int button1oldstate, button2oldstate, button3oldstate, button4oldstate;
LiquidCrystal lcd(50, 51, 44, 45, 46, 47);

void setup() {
pinMode(relay1, OUTPUT);
pinMode(relay2, OUTPUT);
pinMode(relay3, OUTPUT);
pinMode(relay4, OUTPUT);
pinMode(button1, INPUT);
pinMode(button2, INPUT);
pinMode(button3, INPUT);
pinMode(button4, INPUT);
lcd.begin (16, 2);
lcd.setCursor(0, 0);
lcd.print("Select item:");
lcd.noCursor();
}

void statusMemorize(){
  button1oldstate=button1status;
  button2oldstate=button2status;
  button3oldstate=button3status;
  button4oldstate=button4status;
}

void loop(){
button1status = digitalRead(button1);
button2status = digitalRead(button2);
button3status = digitalRead(button3);
button4status = digitalRead(button4);

if(button1status != button1oldstate){
digitalWrite(relay1,button1status);
lcd.setCursor(0, 0);
lcd.print("Button 1 pressed");
lcd.noCursor();
delay(2000);
statusMemorize();  
}

if(button2status != button2oldstate){
digitalWrite(relay2,button2status);
lcd.setCursor(0, 0);
lcd.print("Button 2 pressed");
lcd.noCursor();
delay(2000);
statusMemorize();  
}

if(button3status != button3oldstate){
digitalWrite(relay3,button3status);
lcd.setCursor(0, 0);
lcd.print("Button 3 pressed");
lcd.noCursor();
delay(2000);
statusMemorize();  
}

if(button4status != button4oldstate){
digitalWrite(relay4,button4status);
lcd.setCursor(0, 0);
lcd.print("Button 4 pressed");
lcd.noCursor();
delay(2000);
statusMemorize();  
}

}


Включено повторно съобщение. Тествай, нямам в момента Ардуино за проверка!
#include <LiquidCrystal.h>

int relay1 = 22;
int relay2 = 23;
int relay3 = 24;
int relay4 = 25;
int button1= 30;
int button2= 31;
int button3= 32;
int button4= 33;
int button1status = 0;
int button2status = 0;
int button3status = 0;
int button4status = 0;
int button1oldstate, button2oldstate, button3oldstate, button4oldstate;
int groupstate, groupoldstate;
LiquidCrystal lcd(50, 51, 44, 45, 46, 47);

void setup() {
pinMode(relay1, OUTPUT);
pinMode(relay2, OUTPUT);
pinMode(relay3, OUTPUT);
pinMode(relay4, OUTPUT);
pinMode(button1, INPUT);
pinMode(button2, INPUT);
pinMode(button3, INPUT);
pinMode(button4, INPUT);
lcd.begin (16, 2);
lcd.setCursor(0, 0);
lcd.print("Select item:");
lcd.noCursor();
}

void statusMemorize(){
  button1oldstate=button1status;
  button2oldstate=button2status;
  button3oldstate=button3status;
  button4oldstate=button4status;
  groupoldstate=groupstate;
}

void loop(){
button1status = digitalRead(button1);
button2status = digitalRead(button2);
button3status = digitalRead(button3);
button4status = digitalRead(button4);

groupstate=button1status+button2status+button3status+button4status;

if (groupstate==0 && groupoldstate!=0){
lcd.setCursor(0, 0);
lcd.print("Select item:    ");
lcd.noCursor();
statusMemorize();
}

if(button1status != button1oldstate){
digitalWrite(relay1,button1status);
lcd.setCursor(0, 0);
lcd.print("Button 1 pressed");
lcd.noCursor();
delay(2000);
statusMemorize();  
}

if(button2status != button2oldstate){
digitalWrite(relay2,button2status);
lcd.setCursor(0, 0);
lcd.print("Button 2 pressed");
lcd.noCursor();
delay(2000);
statusMemorize();  
}

if(button3status != button3oldstate){
digitalWrite(relay3,button3status);
lcd.setCursor(0, 0);
lcd.print("Button 3 pressed");
lcd.noCursor();
delay(2000);
statusMemorize();  
}

if(button4status != button4oldstate){
digitalWrite(relay4,button4status);
lcd.setCursor(0, 0);
lcd.print("Button 4 pressed");
lcd.noCursor();
delay(2000);
statusMemorize();  
}

}

43
Ардуино (Arduino) / Затруднение с кода ( lcd 16x2 )
« -: Април 29, 2013, 09:16:41 pm »
Най-добре е да махне всички if-ове, за да се види дали не е хардуерен проблемът. Възможно е просто да не е настроил контраста на дисплея.
Т.е. да даде само това:

#include <LiquidCrystal.h>

LiquidCrystal lcd(50, 51, 44, 45, 46, 47);

void setup() {
lcd.begin (16, 2);

}

void loop(){

lcd.setCursor(1, 1);
lcd.print("Select item:");
lcd.noCursor();
}


P.S:booker, няма защо да нападаш питащия. Вероятно е разработил останалата част, а сега иска малко да модифицира, т.е да "подправи" малко манджата, казано по готварски(не съм спец в кухнята).  :D

44
Ардуино (Arduino) / Затруднение с кода ( lcd 16x2 )
« -: Април 29, 2013, 04:22:17 pm »
Не видях код с включено обръщане към LCD в него, освен онова накрая. За него пък не знам къде е било сложено. Провери си свързването и контраста на LCD.
Нямам Ардуино покрай мен, но пробвай кода в този вид:

#include <LiquidCrystal.h>

int relay1 = 22;
int relay2 = 23;
int relay3 = 24;
int relay4 = 25;
int button1= 30;
int button2= 31;
int button3= 32;
int button4= 33;
int button1status = 0;
int button2status = 0;
int button3status = 0;
int button4status = 0;
LiquidCrystal lcd(50, 51, 44, 45, 46, 47);

void setup() {
pinMode(relay1, OUTPUT);
pinMode(relay2, OUTPUT);
pinMode(relay3, OUTPUT);
pinMode(relay4, OUTPUT);
pinMode(button1, INPUT);
pinMode(button2, INPUT);
pinMode(button3, INPUT);
pinMode(button4, INPUT);
lcd.begin (16, 2);

}

void loop(){
button1status = digitalRead(button1);
button2status = digitalRead(button2);
button3status = digitalRead(button3);
button4status = digitalRead(button4);

lcd.setCursor(1, 1);
lcd.print("Select item:");
lcd.noCursor();

if(button1status == HIGH){
digitalWrite(relay1,HIGH);
delay(2000);
}else{
digitalWrite(relay1,LOW);
}

if(button2status == HIGH){
digitalWrite(relay2,HIGH);
delay(2000);
}else{
digitalWrite(relay2,LOW);
}

if(button3status == HIGH){
digitalWrite(relay3,HIGH);
delay(2000);
}else{
digitalWrite(relay3,LOW);
}

if(button4status == HIGH){
digitalWrite(relay4,HIGH);
delay(2000);
}else{
digitalWrite(relay4,LOW);
}
}

45
Ардуино (Arduino) / Arduino код?
« -: Април 23, 2013, 09:37:24 pm »
Вграден таймер на ATMega. Прочети например:
http://www.instructables.com/id/Arduino-Timer-Interrupts/

Това пък е от страницата на Ардуино:
http://playground.arduino.cc/code/timer1

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