Ищу исполнителя завершить прошивку
- Войдите на сайт для отправки комментариев
Втр, 08/01/2019 - 20:33
Всем привет! есть скетч, он не полный, мне нужно лишь решить вопрос с программой, железо я могу собрать сам.
Итак, вот ссылка на видео, в котором показана работа программы
вот скетч
#include "LedControl.h" /* pin 12 DataIn pin 11 CLK pin 10 LOAD Two MAX7221's */ LedControl lc=LedControl(12,11,10,2); //buttons and inputs const int button0 = A0; const int button1 = A1; const int button2 = A2; const int button3 = A3; const int pot1 = A4; const int greenpin = 5; //green LED const int redpin = 6; //red LED const int yellowpin = 8; //yellow LED const int emitters = 3; //emitters are connected in serial const int speaker = 4; //piezo const int colons = 13; //colons are connected in serial unsigned long totalsectime = 35; //this value is the beginning countdown time //totalsectime will later be filled in by time set function by inputs void setup() { randomSeed(analogRead(A5)); //sets pin A5 as an input to generate a random number pinMode(colons, OUTPUT); pinMode(speaker, OUTPUT); pinMode(emitters, OUTPUT); pinMode(button0, INPUT); pinMode(button1, INPUT); pinMode(button2, INPUT); pinMode(button3, INPUT); pinMode(pot1, INPUT); pinMode(greenpin, OUTPUT); pinMode(redpin, OUTPUT); pinMode(yellowpin, OUTPUT); // number of devices LedControl int devices=lc.getDeviceCount(); //init all devices in a loop for(int address=0;address<devices;address++) { //take out of power saving mode lc.shutdown(address,false); // set brightness - depends on Rset values lc.setIntensity(0,15); lc.setIntensity(1,1); /* and clear the display */ lc.clearDisplay(address); //sets the number of digits that each 7221 will scan through when multiplexing lc.setScanLimit(0, 6); lc.setScanLimit(1, 6); } } //COLON BLINK FUNCTION for normal countdown 2 blink/second int colonsState = LOW; long previouscolonsMillis = 0; long colonsinterval = 250; void colonBlink(){ unsigned long currentcolonsMillis = millis(); if(currentcolonsMillis - previouscolonsMillis > colonsinterval) { // save the last time you blinked the LED previouscolonsMillis = currentcolonsMillis; // if the LED is off turn it on and vice-versa: if (colonsState == LOW) colonsState = HIGH; else colonsState = LOW; // set the LED with the ledState of the variable: digitalWrite(colons, colonsState); } } //GENSER SEQUENCE PREAMBLE void genserOne() { //GEnSEr //G lc.setRow(0,0,B01011110); //E lc.setChar(0,1,'E',false); //n lc.setRow(0,2,0x15); //S(5) lc.setChar(0,3,'5',false); //E lc.setChar(0,4,'E',false); //r lc.setRow(0,5,0x05); delay(400); //clear lc.clearDisplay(0); delay(40); //random 1 lc.setRow(0,0,B01001001); lc.setRow(0,1,B00010101); lc.setRow(0,2,B00100011); lc.setRow(0,3,B00000011); lc.setRow(0,4,B01010100); lc.setRow(0,5,B01000011); delay(200); //clear lc.clearDisplay(0); delay(40); //CAluri //C lc.setRow(0,0,B01001110); //A lc.setChar (0,1,'A',false); //l(lowercase "L") lc.setRow(0,2,B00110000); //u lc.setRow(0,3,B00011100); //r lc.setRow(0,4,B00000101); //i lc.setRow(0,5,B00010000); delay(200); //clear lc.clearDisplay(0); delay(40); //4th Sequence lc.setRow(0,0,B00100011); lc.setRow(0,1,B00000011); lc.setRow(0,2,B01010100); lc.setRow(0,3,B01000011); lc.setRow(0,4,B00010011); lc.setRow(0,5,B00011001); delay(200); //clear lc.clearDisplay(0); delay(40); //Second CAluri sequence //C lc.setRow(0,0,B01001110); //A lc.setChar (0,1,'A',false); //l(lowercase "L") lc.setRow(0,2,B00110000); //u lc.setRow(0,3,B00011100); //r lc.setRow(0,4,B00000101); //i lc.setRow(0,5,B00010000); delay(200); //clear lc.clearDisplay(0); delay(40); //6th Sequence lc.setRow(0,0,B00101010); lc.setRow(0,1,B00000011); lc.setRow(0,2,B00011010); lc.setRow(0,3,B01001000); lc.setRow(0,4,B01000001); lc.setRow(0,5,B01001001); delay(200); //clear lc.clearDisplay(0); delay(40); //6th Sequence lc.setRow(0,0,B00010011); lc.setRow(0,1,B00011001); lc.setRow(0,2,B00100010); lc.setRow(0,3,B00011000); lc.setRow(0,4,B01000001); lc.setRow(0,5,B00100101); delay(250); //clear lc.clearDisplay(0); delay(75); } void displayFade() { //clear delay(100); //INSERT FUNCTION FOR DIGIT FADING AFTER ZERO lc.setRow(0,0,B01111000); //partially zapped 0 lc.setRow(0,1,B01111110); //0 lc.setRow(0,2,B01111110); //0 lc.setRow(0,3,B01111110); //0 lc.setRow(0,4,B01111110); //0 lc.setRow(0,5,B00011110); //partially zapped 0 delay(30); lc.setRow(0,0,B00110000); //partially zapped 0 lc.setRow(0,1,B01111110); //0 lc.setRow(0,2,B01111110); //0 lc.setRow(0,3,B01111110); //0 lc.setRow(0,4,B10000000); //0 lc.setRow(0,5,B00000110); //partially zapped 0 delay(30); lc.setRow(0,0,B00000000); //fully zapped 0 lc.setRow(0,1,B01111110); //0 lc.setRow(0,2,B01111110); //0 lc.setRow(0,3,B01111110); //0 lc.setRow(0,4,B01111110); //0 lc.setRow(0,5,B00000000); //fully zapped 0 delay(30); lc.setRow(0,0,B00000000); //fully zapped 0 lc.setRow(0,1,B01111000); //partially zapped 0 lc.setRow(0,2,B01111110); //0 lc.setRow(0,3,B01111110); //0 lc.setRow(0,4,B01000000); //partially zapped 0 lc.setRow(0,5,B00000000); //fully zapped 0 delay(30); lc.setRow(0,0,B00000000); //fully zapped 0 lc.setRow(0,1,B00110000); //partially zapped 0 lc.setRow(0,2,B01111110); //0 lc.setRow(0,3,B01111110); //0 lc.setRow(0,4,B00000110); //partially zapped 0 lc.setRow(0,5,B00000000); //fully zapped 0 delay(30); lc.setRow(0,0,B00000000); //fully zapped 0 lc.setRow(0,1,B00000000); //fully zapped 0 lc.setRow(0,2,B01111110); //0 lc.setRow(0,3,B01111110); //0 lc.setRow(0,4,B00000000); //fully zapped 0 lc.setRow(0,5,B00000000); //fully zapped 0 delay(55); lc.setRow(0,0,B00000000); //fully zapped 0 lc.setRow(0,1,B00000000); //fully zapped 0 lc.setRow(0,2,B01111000); //partially zapped 0 lc.setRow(0,3,B01000000); //partially zapped 0 lc.setRow(0,4,B00000000); //fully zapped 0 lc.setRow(0,5,B00000000); //fully zapped 0 delay(30); lc.setRow(0,0,B00000000); //fully zapped 0 lc.setRow(0,1,B00000000); //fully zapped 0 lc.setRow(0,2,B00110000); //partially zapped 0 lc.setRow(0,3,B00000110); //partially zapped 0 lc.setRow(0,4,B00000000); //fully zapped 0 lc.setRow(0,5,B00000000); //fully zapped 0 delay(30); lc.setRow(0,0,B00000000); //fully zapped 0 lc.setRow(0,1,B00000000); //fully zapped 0 lc.setRow(0,2,B00000000); //fully zapped 0 lc.setRow(0,3,B00000000); //fully zapped 0 lc.setRow(0,4,B00000000); //fully zapped 0 lc.setRow(0,5,B00000000); //fully zapped 0 delay(1000); } void displayWrap() { //INSERT DISPLAY WRAP delay(40); lc.setRow(0,0,B00000010); lc.setRow(0,1,B00000010); lc.setRow(0,2,B00000010); lc.setRow(0,3,B00000010); lc.setRow(0,4,B00000010); lc.setRow(0,5,B00000010); delay(40); lc.setRow(0,0,B01000000); lc.setRow(0,1,B01000000); lc.setRow(0,2,B01000000); lc.setRow(0,3,B01000000); lc.setRow(0,4,B01000000); lc.setRow(0,5,B01000000); delay(40); lc.setRow(0,0,B00100000); lc.setRow(0,1,B00100000); lc.setRow(0,2,B00100000); lc.setRow(0,3,B00100000); lc.setRow(0,4,B00100000); lc.setRow(0,5,B00100000); delay(40); lc.setRow(0,0,B00010000); lc.setRow(0,1,B00010000); lc.setRow(0,2,B00010000); lc.setRow(0,3,B00010000); lc.setRow(0,4,B00010000); lc.setRow(0,5,B00010000); delay(40); lc.setRow(0,0,B00001000); lc.setRow(0,1,B00001000); lc.setRow(0,2,B00001000); lc.setRow(0,3,B00001000); lc.setRow(0,4,B00001000); lc.setRow(0,5,B00001000); delay(40); lc.setRow(0,0,B00000100); lc.setRow(0,1,B00000100); lc.setRow(0,2,B00000100); lc.setRow(0,3,B00000100); lc.setRow(0,4,B00000100); lc.setRow(0,5,B00000100); delay(40); lc.setRow(0,0,B00000010); lc.setRow(0,1,B00000010); lc.setRow(0,2,B00000010); lc.setRow(0,3,B00000010); lc.setRow(0,4,B00000010); lc.setRow(0,5,B00000010); delay(40); lc.setRow(0,0,B01000000); lc.setRow(0,1,B01000000); lc.setRow(0,2,B01000000); lc.setRow(0,3,B01000000); lc.setRow(0,4,B01000000); lc.setRow(0,5,B01000000); delay(40); lc.setRow(0,0,B00100000); lc.setRow(0,1,B00100000); lc.setRow(0,2,B00100000); lc.setRow(0,3,B00100000); lc.setRow(0,4,B00100000); lc.setRow(0,5,B00100000); delay(40); lc.setRow(0,0,B00010000); lc.setRow(0,1,B00010000); lc.setRow(0,2,B00010000); lc.setRow(0,3,B00010000); lc.setRow(0,4,B00010000); lc.setRow(0,5,B00010000); delay(40); lc.setRow(0,0,B00001000); lc.setRow(0,1,B00001000); lc.setRow(0,2,B00001000); lc.setRow(0,3,B00001000); lc.setRow(0,4,B00001000); lc.setRow(0,5,B00001000); delay(40); lc.setRow(0,0,B00000100); lc.setRow(0,1,B00000100); lc.setRow(0,2,B00000100); lc.setRow(0,3,B00000100); lc.setRow(0,4,B00000100); lc.setRow(0,5,B00000100); delay(40); lc.setRow(0,0,B00000010); lc.setRow(0,1,B00000010); lc.setRow(0,2,B00000010); lc.setRow(0,3,B00000010); lc.setRow(0,4,B00000010); lc.setRow(0,5,B00000010); delay(40); lc.setRow(0,0,B00000001); lc.setRow(0,1,B00000001); lc.setRow(0,2,B00000001); lc.setRow(0,3,B00000001); lc.setRow(0,4,B00000001); lc.setRow(0,5,B00000001); } void updatespeaker(){ static int state = 0; static unsigned int beeptime = 250; static unsigned int sinterval = 500; static unsigned int freq = 2500; static unsigned long lasttimeon = 0; unsigned long m = millis(); if (state == -1){ lasttimeon = m; state = 1; tone(speaker,1000); noTone(speaker); tone(speaker,1000); return; } if (state == 0){ if (m >= lasttimeon +sinterval){ state = 1; tone(speaker,freq); lasttimeon = m; } return; } if (state == 1){ if (m >= lasttimeon + beeptime){ noTone(speaker); state = 0; beeptime = 100; } return; } } //setting up seconds time conversion #define secondsinaday 86400 //((60*60)*24) #define secondsinhour 3600 //(60*60) #define secondsinminute 60 long countpreviousMillis = 0; //stores count milliseconds long countinterval = 1000; //1 second void displayDate(){ unsigned long countcurrentMillis = millis(); if(countcurrentMillis - countpreviousMillis > countinterval) { // save the last time counted countpreviousMillis = countcurrentMillis; totalsectime--; //decrement of 1 second unsigned long sectime = totalsectime; /*takes the totalsectime variable and converts it inside of this function so that the time conversions do not interfere with the later functions */ unsigned long days = sectime/secondsinaday; //calculates seconds in a day sectime = sectime % secondsinaday; //takes the remainder of the previous calculation unsigned long hours = sectime/secondsinhour; //calculates seconds in an hour sectime = sectime % secondsinhour; //takes the remainder of the previous calculation unsigned long minutes = sectime/secondsinminute; //calculates seconds in a minute unsigned long seconds = sectime % secondsinminute; //takes the remainder, and that is seconds /*below takes the values generated from above and makes variables for each digit to display based on on dividing the values by hundreds/tens/single numbers*/ unsigned long days_hundreds = days/100; unsigned long days_tens = (days %100)/10; unsigned long days_units = (days %100)%10; unsigned long hours_tens = (hours %100)/10; unsigned long hours_units = (hours %100)%10; unsigned long minutes_tens = (minutes %100)/10; unsigned long minutes_units = (minutes %100)%10; unsigned long seconds_tens = (seconds %100)/10; unsigned long seconds_units = (seconds %100)%10; //below is where the magic happens //sends digit to: 7221 device //digit order //variable from above calculations //true/false for the decimal point lc.setDigit(1,0,days_hundreds,false); lc.setDigit(1,1,days_tens,false); lc.setDigit(1,2,days_units,false); lc.setDigit(0,0,hours_tens,false); lc.setDigit(0,1,hours_units,false); lc.setDigit(0,2,minutes_tens,false); lc.setDigit(0,3,minutes_units,false); lc.setDigit(0,4,seconds_tens,false); lc.setDigit(0,5,seconds_units,false); if(sectime==15){ //wrap-around when time reaches 15 seconds displayWrap(); } if(totalsectime <=5 ) { //lights emitter LEDs when time reaches 5 seconds and keeps speaker solid updatespeaker(); digitalWrite(emitters, HIGH); } else{ digitalWrite(emitters, LOW); } /*Below is the "reset" mode that I have worked out right now, but is due to change as I get more things sorted out, and this will do other things. Right now is just for testing/looks.*/ if(totalsectime <= 0){ delay(2500); displayFade(); genserOne(); displayWrap(); updatespeaker(); totalsectime = random(16756131); } } if(totalsectime > 5){ //colon blink function for normal countdown colonBlink(); updatespeaker(); } } void loop() { displayDate(); }
Мне нужно добавить несколько кнопок к этой программе, и заставить светодиоды мигать, вообщем это чисто игрушка, но мне очень важно воссоздать ее. Если кто то смотрел сериал в 90х тот наверно узнает вот такое устройство.
https://www.youtube.com/watch?v=708JIPJzye8&index=3&list=FL85QeCTfcOIuDtsZerr5gOA&t=56s
Вообщем кто возьмется сделать напишите!
р е а л и з у е м о - maslachenko767@mail.ru , консультации, подбор компонентов бесплатно, гарантии
Написал на почту!
Человек не отвечает, ищу дальше исполнителя!
Это не человек, это бот. Он тут всюду.
Это не человек, это бот. Он тут всюду.
классссс....
Если не срочно, то могу поковырять. wrk.sadman@gmail.com
Если не срочно, то могу поковырять. wrk.sadman@gmail.com
Садман, там просто поковырять мало - там "всю систему менять надо". ИМХО, типичная задачка "помогите выйти из цикла" :)
"Ковыряние" такого говнокода должно стоить дороже чем переписывание с нуля. имха.
Так что думаю, что садман просто хочет заработать по-больше. таков бизнес-план ;)
"Ковыряние" такого говнокода должно стоить дороже чем переписывание с нуля. имха.
Так что думаю, что садман просто хочет заработать по-больше. таков бизнес-план ;)
я не против переписания кода с нуля, тем более на видео все показано...
Неро32, каков бюджет?
да я даже понятия не имею сколько это стоит. предлагайте!
$100
Я не торгуюсь, но хочу высказать своё мнение, как бы за эту сумму я могу встроить в схему отдельно ну например attiny 13 и реализовать на ней включение и выключение схемы, а мигание шкалой светодиодов может заняться например пара микросхем к примеру 555 и счётчик, ну это я так, к слову о 100 баксах. Я никого не третирую, каждый сам оценивает свою работу, возможно это того стоит, но все должно быть соизмеримо.
Цену услышал, подожду ещё!
Я не торгуюсь, но хочу высказать своё мнение, как бы за эту сумму я могу встроить в схему отдельно ну например attiny 13 и реализовать на ней включение и выключение схемы
если сами можете - почему не делаете?
А чтоб оценить стоимость - прикиньте, за сколько вы бы согласились выполнить встраивание тиньки для кого-то еще... Это всегда очень по разному воспринимается - когда для себя делаешь и когда для чужого дяди
И потом - исполнителю ведь понадобится с десяток семисегментных индикаторов и светодиодна шкала для тестов - вы их в цену включили или нет?
Вы сами-то на сколько расчитывали? если вместо 100 баксов готовы за 80 - подождите, может кто и найдется. А если вы ожидали 20 - то делайте сами. вряд ли кто-то возьмется, тут только чтоб утрясти с вами ТЗ - больше времени потратишь. чем заработаешь :)
А говорит, что не знает что почём. Вона как соображалка сразу заработала =))
Я не торгуюсь, но хочу высказать своё мнение, как бы за эту сумму я могу встроить в схему отдельно ну например attiny 13 и реализовать на ней включение и выключение схемы, а мигание шкалой светодиодов может заняться например пара микросхем к примеру 555 и счётчик, ну это я так, к слову о 100 баксах. Я никого не третирую, каждый сам оценивает свою работу, возможно это того стоит, но все должно быть соизмеримо.
Цену услышал, подожду ещё!
Ну зачем там тиньки? Всё на ардуине можно сделать
Я не торгуюсь, но хочу высказать своё мнение, как бы за эту сумму я могу встроить в схему отдельно ну например attiny 13 и реализовать на ней включение и выключение схемы
если сами можете - почему не делаете?
А чтоб оценить стоимость - прикиньте, за сколько вы бы согласились выполнить встраивание тиньки для кого-то еще... Это всегда очень по разному воспринимается - когда для себя делаешь и когда для чужого дяди
И потом - исполнителю ведь понадобится с десяток семисегментных индикаторов и светодиодна шкала для тестов - вы их в цену включили или нет?
Вы сами-то на сколько расчитывали? если вместо 100 баксов готовы за 80 - подождите, может кто и найдется. А если вы ожидали 20 - то делайте сами. вряд ли кто-то возьмется, тут только чтоб утрясти с вами ТЗ - больше времени потратишь. чем заработаешь :)
вижу эту работу примерно 5000р! Железо в Протеус собрать нельзя для проверки ?
Почему же нельзя?
За 5т.р. объясню Вам, как работает эта программа, и Вы сами сможете добавлять светодиоды и кнопки. Но железо должно быть собрано и работать с предложенной прошивкой. Этапов будет несколько, и оплата будет частями. Но готовое рабочее железо - условие старта.
Так он в протеусе соберёт.
Что то мне это напоминает.... Пару лет назад, для каких то квестов, что то похожее лепил. Клиенту тогда результат в протеусе показывал :) Но такой код, я точно написать не мог бы, слишком сложно :(
Я не торгуюсь, но хочу высказать своё мнение, как бы за эту сумму я могу встроить в схему отдельно ну например attiny 13 и реализовать на ней включение и выключение схемы, а мигание шкалой светодиодов может заняться например пара микросхем к примеру 555 и счётчик, ну это я так, к слову о 100 баксах. Я никого не третирую, каждый сам оценивает свою работу, возможно это того стоит, но все должно быть соизмеримо.
Соизмеримо с чем? С тем что не можешь (или не хочешь) купить в магазине, или с тем что тебе очень хочется поиметь игрушку, но не очень хочется самому париться с ней и тратить на нее СВОЕ время?
Твои 5 000 рублей это стоимость двух рабочих дней специалиста средней квалификации! И это при условии что ты ему даешь полное ТЗ! У тебя же только одни фантазии и мечты, реазизация которых может растянуться не на пару дней, а на пару недель!!! За 5000 рублей, две недели даже гости из ближнего зарубежья не работают!!!
Я не торгуюсь, но хочу высказать своё мнение, как бы за эту сумму я могу встроить в схему отдельно ну например attiny 13 и реализовать на ней включение и выключение схемы, а мигание шкалой светодиодов может заняться например пара микросхем к примеру 555 и счётчик, ну это я так, к слову о 100 баксах. Я никого не третирую, каждый сам оценивает свою работу, возможно это того стоит, но все должно быть соизмеримо.
Соизмеримо с чем? С тем что не можешь (или не хочешь) купить в магазине, или с тем что тебе очень хочется поиметь игрушку, но не очень хочется самому париться с ней и тратить на нее СВОЕ время?
Твои 5 000 рублей это стоимость двух рабочих дней специалиста средней квалификации! И это при условии что ты ему даешь полное ТЗ! У тебя же только одни фантазии и мечты, реазизация которых может растянуться не на пару дней, а на пару недель!!! За 5000 рублей, две недели даже гости из ближнего зарубежья не работают!!!
Вы больше болтавней занимаетесь! поэкономьте пожалуйста своей время.
Это не болтовня.Вам объяснили как формируется цена . Но если вам лень вдуматься в написанное, то это ваши проблемы. Никто вам ничего не сделает. Попробуйте сначала написать вменяемое тз. Может тогда и найдете кого то.
вижу эту работу примерно 5000р! Железо в Протеус собрать нельзя для проверки ?
ну блин... о чем спор-то? 6500 (100 баксов) - это дорого, а 5 тыр нормально?
Детский сад какой-то....
если еще не пропало желание что-то заказывать - скиньте мне подробное ТЗ на ded собака cur-ex.ru, может и договоримся
вижу эту работу примерно 5000р! Железо в Протеус собрать нельзя для проверки ?
ну блин... о чем спор-то? 6500 (100 баксов) - это дорого, а 5 тыр нормально?
Детский сад какой-то....
если еще не пропало желание что-то заказывать - скиньте мне подробное ТЗ на ded собака cur-ex.ru, может и договоримся
вот, именно вам и напишу !
Вот и пойми - как они исполнителя выбирают ))
Вот и пойми - как они исполнителя выбирают ))
Интуицея
Сделаю за 5
kakmycmail@gmail.com
Хорошо, я уже написал предыдущему исполнителю, если у нас с ним не сложится работа, напишу вам.