Нужна WEB-страница с кнопками изменяющими цвет при нажатии.

alexnik100
Offline
Зарегистрирован: 21.12.2015

Здравствуйте!

Для управления роботом нужна WEB-страница с кнопками изменяющими цвет при нажатии.

Исходно 12-16 кнопок серого цвета. При нажатии кнопки изменяется логическое состояние определенного выхода с 0 на 1 и кнопка меняет цвет. Показано на рисунке.

Комплектующие: arduino mega 2560,  шилд Интернет W5100,  SD-карта.

Оформление примерно такое.

Оплата и сроки по согласованию.

С уважением.

 

Gippopotam
Gippopotam аватар
Offline
Зарегистрирован: 12.09.2014

StudioGippopotam@gmail.com

Есть сторонний веб-сервер, или нужен сервер на базе Ардуино?

victoruni
Offline
Зарегистрирован: 25.06.2012

Подробности пожалуйста на

victor.petin@gmail.com

 

m_t
Offline
Зарегистрирован: 29.03.2012
Можем обсудить.
пишите на почту 
В сообщении  указывайте ссылку на тему.
Какой бюджет?
 
dmitron1036
Offline
Зарегистрирован: 10.01.2016

400 рублей

пол дня работы

на JQuery =)

Хотя можно и на чистом JS+ajax.

Формат данных для передачи контроллеру нужно нормальный придумать.

типа АТ команд, или XML.

 

alexnik100
Offline
Зарегистрирован: 21.12.2015

Дайте Вашу почту пришлю краткое Техническое задание.

pcb
Offline
Зарегистрирован: 02.04.2015

dmitron1036 пишет:

400 рублей

пол дня работы

Приходите ко мне работать?

Требуется уборщица, 500 руб за приход. Инструменты выдадим.

MacSim
Offline
Зарегистрирован: 28.11.2012

pcb пишет:

dmitron1036 пишет:

400 рублей

пол дня работы

Приходите ко мне работать?

Требуется уборщица, 500 руб за приход. Инструменты выдадим.

Предложение актуально? Если устроит 20 раз за день то, пожалуй, соглашусь. Чаще не могу, извините.

dmitron1036
Offline
Зарегистрирован: 10.01.2016

dmitron1036()mail.ru

alexnik100
Offline
Зарегистрирован: 21.12.2015

dmitron1036()mail.ru - пишет некорректный адрес.

Отправил на dmitron1036@mail.ru.

Подтвердите получение.

alexnik100
Offline
Зарегистрирован: 21.12.2015

Шутите.  Это хорошо, значит настроение хорошее.

Но может кто советом поможет?

Gippopotam
Gippopotam аватар
Offline
Зарегистрирован: 12.09.2014

Какой совет вам нужен?

alexnik100
Offline
Зарегистрирован: 21.12.2015

Добрый день!

Отправил Вам письмо.

Совет нужен о возможности доработки частично работающего скетча.

С уважением, alexnik100

 

 

MacSim
Offline
Зарегистрирован: 28.11.2012

alexnik100 пишет:

Совет нужен о возможности доработки частично работающего скетча.

чем помочь? maksimovaleksandr@inbox.ru

alexsis_76
Offline
Зарегистрирован: 05.03.2016


Для управления роботом нужна WEB-страница с кнопками изменяющими цвет при нажатии.

 

Исходно 12-16 кнопок серого цвета. При нажатии кнопки изменяется логическое состояние определенного выхода с 0 на 1 и кнопка меняет цвет. Показано на рисунке.

такие кнопки можно взять сдесь http://kernelchip.ru/Laurent-2.php распотрошив веб страницу там же можете взять код страницы

alexnik100
Offline
Зарегистрирован: 21.12.2015

Добрый день!

Спасибо за ответ.  Да я пытался это сделать используя WEB-страницу Laurent-2

Но нет скетча для arduino mega 2560, шильд Интернет W5100 с SD-картой и кнопки не меняют цвет при изменении логического потенциала на пинах.

Как менять цвет при нажатии на кнопки пока не понял.  Вроде код полностью такой же как и в Laurent-2.php, но кнопки цвет при нажатии не меняют.

Может посмотрите? Труды оплачу.

С уважением......

 

 

 

 

 

alexnik100
Offline
Зарегистрирован: 21.12.2015

Добрый день!

Спасибо за ответ.  Да я пытался это сделать. 

Но нет скетча для arduino mega 2560, шильд Интернет W5100 с SD-картой и кнопки не меняют цвет при изменении логического потенциала на пинах.

Как менять цвет при нажатии на кнопки пока не понял.  Вроде код полностью такой же как и в Laurent-2.php, но кнопки цвет при нажатии не меняют.

Может посмотрите? Труды оплачу.

С уважением......

alexsis_76
Offline
Зарегистрирован: 05.03.2016

Как менять цвет при нажатии на кнопки пока не понял.  Вроде код полностью такой же как и в Laurent-2.php, но кнопки цвет при нажатии не меняют.

НУ ДА ОСТАЛЬНАЯ ЧАСТЬ КОДА НАХОДИТСЯ В МОДУЛЕ laurent ,кнопки меняют цвет не сами по себе им  в этом помогает контроллер

 laurent построен на базе стека microchip и использует базовые принципы взятые  оттуда, только там не кнопки а светодиоды которые меняют цвет при нажатии (те зеленые в вверху справа)http://dangerousprototypes.com/docs/images/9/9f/Browser2.png, вот как это работает,на страничке имеется код a id="ledx" onclick="newAJAXCommand('leds.cgi?led=x');">&bull;</a> , при нажатии мышкой вызывается  function newAJAXCommand(url, container, repeat, data) которая передает контроллеру leds.cgi?led=x где х номер светодиода,в файле CustomHTTPApp прошивки контроллера есть код разгребающий get запросы 

/*****************************************************************************
  Function:
HTTP_IO_RESULT HTTPExecuteGet(void)
 
  Internal:
  See documentation in the TCP/IP Stack API or HTTP2.h for details.
  ***************************************************************************/
HTTP_IO_RESULT HTTPExecuteGet(void)
{
BYTE *ptr;
BYTE filename[20];
 
// Load the file name
// Make sure BYTE filename[] above is large enough for your longest name
MPFSGetFilename(curHTTP.file, filename, 20);
 
// If its the forms.htm page
if(!memcmppgm2ram(filename, "forms.htm", 9))
{
// Seek out each of the four LED strings, and if it exists set the LED states
ptr = HTTPGetROMArg(curHTTP.data, (ROM BYTE *)"led4");
if(ptr)
// LED4_IO = (*ptr == '1');
 
ptr = HTTPGetROMArg(curHTTP.data, (ROM BYTE *)"led3");
if(ptr)
// LED3_IO = (*ptr == '1');
 
ptr = HTTPGetROMArg(curHTTP.data, (ROM BYTE *)"led2");
if(ptr)
             MOTOR_FORWARD_IO=0;
AGO_IO = (*ptr == '1');
            
 
ptr = HTTPGetROMArg(curHTTP.data, (ROM BYTE *)"led1");
if(ptr)
            AGO_IO=0;
  MOTOR_FORWARD_IO = (*ptr == '1');
}
 
// If it's the LED updater file
else if(!memcmppgm2ram(filename, "cookies.htm", 11))
{
// This is very simple.  The names and values we want are already in
// the data array.  We just set the hasArgs value to indicate how many
// name/value pairs we want stored as cookies.
// To add the second cookie, just increment this value.
// remember to also add a dynamic variable callback to control the printout.
curHTTP.hasArgs = 0x01;
}
 
 
// If it's the LED updater file
else if(!memcmppgm2ram(filename, "leds.cgi", 8))
{
// Determine which LED to toggle
ptr = HTTPGetROMArg(curHTTP.data, (ROM BYTE *)"led");
 
// Toggle the specified LED
switch(*ptr) {
case '1':
                AGO_IO=0;
MOTOR_FORWARD_IO ^= 1;
                break;
case '2':
                MOTOR_FORWARD_IO=0;
AGO_IO ^= 1;
break;
case '3':
                LEFT_IO=0;
RATCH_IO ^= 1;
break;
case '4':
                RATCH_IO=0;
LEFT_IO^= 1;
break;
case '5':
// LED5_IO ^= 1;
break;
case '6':
// LED6_IO ^= 1;
break;
case '7':
// LED7_IO ^= 1;
break;
}
 
}
 
return HTTP_IO_DONE;
}
который переключает соответствующий светодиод LED7_IO ^= 1; и код обратной связи (так называемые Callback Functions) именно они отвечают за отображение осуществляемых действий , а конкретно кусок 
void HTTPPrint_led(WORD num)
{
// Determine which LED
switch(num)
{
case 0:
// num = LED0_IO;
break;
case 1:
num = MOTOR_FORWARD_IO;
break;
case 2:
num = AGO_IO;
break;
case 3:
num =RATCH_IO;
break;
case 4:
num =LEFT_IO; 
break;
case 5:
// num = LED5_IO;
break;
case 6:
// num = LED6_IO;
break;
case 7:
// num = LED7_IO;
break;
 
default:
num = 0;
}
 
// Print the output
TCPPut(sktHTTP, (num?'1':'0'));
return;вот это TCPPut(sktHTTP, (num?'1':'0')); 
} отправляет обратно 0 или 1 в зависимости от num , шатем на веб страничке работает следующий код <script type="text/javascript">
<!--
// Parses the xmlResponse from status.xml and updates the status box
function updateStatus(xmlData) {
var mainstat = document.getElementById('display').style.display;
var loadstat = document.getElementById('loading').style.display;
 
// Check if a timeout occurred
if(!xmlData)
{
mainstat = 'none';
loadstat = 'inline';
return;
}
 
// Make sure we're displaying the status display
mainstat = 'inline';
loadstat = 'none';
 
// Loop over all the LEDs
for(i = 0; i < 8; i++)
document.getElementById('led' + i).style.color = (getXMLValue(xmlData, 'led' + i) == '1') ? '#090' : '#ddd';
 
// Loop over all the buttons
for(i = 0; i < 4; i++)
document.getElementById('btn' + i).innerHTML = (getXMLValue(xmlData, 'btn' + i) == 'up') ? '&Lambda;' : 'V';
 
// Update the POT value
document.getElementById('pot0').innerHTML = getXMLValue(xmlData, 'pot0');
}
setTimeout("newAJAXCommand('status.xml', updateStatus, true)",500);
//-->
</script>
 
<script type="text/javascript">
<!--
document.getElementById('hello').innerHTML = "~hellomsg~";
//-->
</script>
вот этот код // Loop over all the LEDs
for(i = 0; i < 8; i++)
document.getElementById('led' + i).style.color = (getXMLValue(xmlData, 'led' + i) == '1') ? '#090' : '#ddd';распарсивает запрос и в зависимости от того что пришло меняет стиль элемента (в данном случае цвет getElementById('led' + i).style.color)на #090 либо #ddd в нашем случае серый и зеленый , это назывантся ajax 

 

 

 

alexnik100
Offline
Зарегистрирован: 21.12.2015

Добрый день!

Спасибо за пояснения.

Может Вы возметесь за данную работу? Готов оплатить. 

Нужно чтобы заработали кнопки и ряд функций laurent:

аналоговые порты, цифровые входы, счетчики.

alexsis_76
Offline
Зарегистрирован: 05.03.2016

Может Вы возметесь за данную работу? Да, только вот arduino mega 2560, шильда Интернет W5100 у меня нет и живу я далеко

alexnik100
Offline
Зарегистрирован: 21.12.2015

Напишите  на мою почту alexnik100-1@ya.ru

Вышлю Вам Техзадание.

Всю аппаратную часть предоставлю.

alexsis_76
Offline
Зарегистрирован: 05.03.2016

Написал