Doodle Bot
- Войдите на сайт для отправки комментариев
Подарили мне игрушку которая рисует, считая что я программист(я нет)
Все сделал по инструкции, сам робот работает на arduino плата /w ATMega8, драйвер установил и видит его как порт 7
Успешно загрузил через ардуино файл penWriting (хз что это по инструкции) Далее 2 выхода из ситуации воспольозоваться программой которую предоставили вместе с диском (там просто стрелочки , задержка, скорость, рисовать или нет, с кнопкой Upload) или загрузить готовые файлы чтобы робот исполнял уже готовые скрипты, но к сожелению не один он не загружается(пример ниже), пишет разные ошибки, ошибка именно к этом у примеру expected unquaitfied-id before 'reinterpret_cast'.
А програма которую предоставили после аплауда горят лампочки "якобы загружает" и ничего не происходит
Предпологаю, что не правильное подключение (все делал по схеме)
Кто нибудь сможет помочь в моей не легкой проблеме?
Буду рад любой помощи!
void A()
{
Turn(-90);Down();Go(4);
Turn(45);Go(3);
Turn(90);Go(3);
Turn(45);Go(4);
Up();Go(-3);
Turn(-90);Down();
Go(-4);Up();
Turn(90);Go(3);
Turn(-90);Go(6);
}
void B()
{
Down();Go(3);
Turn(-45);Go(1);
Turn(-45);Go(1);
Turn(-45);Go(1);
Turn(-45);Go(3);
Up();
Turn(90); Go(-3);
Down();Go(6);
Turn(90);Go(3);
Turn(45);Go(1);
Turn(45);Go(1);
Turn(45);Go(1);
Up();
Turn(-45);Go(3);
Turn(-90);Go(3);
}
http://www.ya-extrasens.net/index.php?option=com_kunena&func=listcat&cat...
толсто, но все таки платы везде одни и те же и ошибки тоже. Почему с программы ардуино он не хочет загружать на робота при условии что все настройки выполнены
толсто, но все таки платы везде одни и те же и ошибки тоже. Почему с программы ардуино он не хочет загружать на робота при условии что все настройки выполнены
публикуйте сюда рекомендуемые настройки - бум смотреть, что советут создатели.
толсто, но все таки платы везде одни и те же и ошибки тоже. Почему с программы ардуино он не хочет загружать на робота при условии что все настройки выполнены
публикуйте сюда рекомендуемые настройки - бум смотреть, что советут создатели.
Спасибо за отклик, для начала они говорят загрузить на робота этот файл, он загружается успешно. Можете сказать за что он отвечает ( он единственный загружается, подозреваю что это какая та прошивка для распознания команд)
Вообще схема разработчиков очень проста
Это сборка конструткора
И программирование его через ардуино или же через их программу которая работает на java (там где обычные стрелки с задержками).
Очень жаль что тут нельзя прикрепить файлы.
//servo control unsigned char servo = 6; unsigned char count = 0; unsigned char i = 0; unsigned char servoTime = 0; unsigned char servoValue = 0; unsigned char flag = 0; unsigned int secondT = 0; unsigned int k = 0; //pen const unsigned int down = 50; const unsigned int up = 100; //motor int L1 = 9; int L2 = 7; int R1 = 10; int R2 = 8; //speed and time int dir = 0; int speeds = 0; unsigned long time = 0; long serialValue = 0; int length = 0; unsigned char cmd[400]; void setup() { UBRRL=103; //16M baud 9600,8bit UART UCSRB=0x18; //enable pinMode(servo,OUTPUT); digitalWrite(servo,LOW); //pin for motor pinMode(L1,OUTPUT); pinMode(L2,OUTPUT); pinMode(R1,OUTPUT); pinMode(R2,OUTPUT); timer2(); TIMSK &= ~(2 << 6); digitalWrite(servo,LOW); time = 300; penWrite(); penRise(); } void loop() { while(!(UCSRA&(1<<RXC))); if(UDR == 170) { while(!(UCSRA&(1<<RXC))); if(UDR == 85) { while(!(UCSRA&(1<<RXC))); length = UDR; length = length << 2; for (k = 0;k<length;++k) { while(!(UCSRA&(1<<RXC))); cmd[k] = UDR; while(!(UCSRA&(1<<RXC))); cmd[++k] = UDR; while(!(UCSRA&(1<<RXC))); cmd[++k] = UDR; while(!(UCSRA&(1<<RXC))); cmd[++k] = UDR; } while(!(UCSRA&(1<<RXC))); if(UDR != 0xe0) return; while(!(UCSRA&(1<<RXC))); if(UDR != 0x07) return; for (k = 0;k<length;++k) { dir = (cmd[k] & 0xf0) >> 4; speeds = (cmd[k] & 0xf) * 17; time = 0; time = time | cmd[++k]; time = time << 8 | cmd[++k]; time = time << 8 | cmd[++k]; switch (dir) { case 8: stoprun(); break; case 0: gforward(); break; case 1: gback(); break; case 2: turnLeft(); break; case 3: turnRight(); break; case 4: gLF(); break; case 5: gRF(); break; case 6: gLB(); break; case 7: gRB(); break; case 9: penWrite(); break; case 10: penRise(); break; default: stoprun(); } } cmd[0] = UDR; } } } //timer2 for servo control void timer2() { noInterrupts(); TCCR2 = 0x0f; //CTC,1024 OCR2 = 155; TIMSK |= (2 << 6); interrupts(); } //each interrupt 25hz ISR(TIMER2_COMP_vect) { //two intrupt as a circle if(secondT == 0) { digitalWrite(servo,HIGH); secondT++; flag = 0; } else { secondT = 0; } //finished in 10ms for(count = 0;count<127;count++) { if(flag == 1) { return; } //for(i = 0;i != 120;i++); delayMicroseconds(76); if(servoTime == servoValue) { digitalWrite(servo,LOW); flag = 1; servoTime = 0; //secondT++; return; } else { servoTime++; } } } //stop void stoprun() { digitalWrite(L1,LOW); digitalWrite(L2,LOW); digitalWrite(R1,LOW); digitalWrite(R2,LOW); delay(time); } void gforward() { //leftmotor analogWrite(L1,speeds); digitalWrite(L2,LOW); //right motor analogWrite(R1,speeds); digitalWrite(R2,LOW); delay(time); digitalWrite(L1,LOW); digitalWrite(R1,LOW); } //goback void gback() { //leftmotor analogWrite(L1,speeds); digitalWrite(L2,HIGH); //right motor analogWrite(R1,speeds); digitalWrite(R2,HIGH); delay(time); digitalWrite(L1,LOW); digitalWrite(L2,LOW); digitalWrite(R1,LOW); digitalWrite(R2,LOW); } void turnLeft() { analogWrite(L1,speeds); digitalWrite(L2,HIGH); analogWrite(R1,speeds); digitalWrite(R2,LOW); delay(time); digitalWrite(L1,LOW); digitalWrite(L2,LOW); digitalWrite(R1,LOW); digitalWrite(R2,LOW); } void turnRight() { analogWrite(L1,speeds); digitalWrite(L2,LOW); analogWrite(R1,speeds); digitalWrite(R2,HIGH); delay(time); digitalWrite(L1,LOW); digitalWrite(L2,LOW); digitalWrite(R1,LOW); digitalWrite(R2,LOW); } void gLF() { analogWrite(L1,speeds/2); digitalWrite(L2,LOW); analogWrite(R1,speeds); digitalWrite(R2,LOW); delay(time); digitalWrite(L1,LOW); digitalWrite(L2,LOW); digitalWrite(R1,LOW); digitalWrite(R2,LOW); } void gRF() { analogWrite(L1,speeds); digitalWrite(L2,LOW); analogWrite(R1,speeds/2); digitalWrite(R2,LOW); delay(time); digitalWrite(L1,LOW); digitalWrite(L2,LOW); digitalWrite(R1,LOW); digitalWrite(R2,LOW); } void gLB() { analogWrite(L1,speeds/2); digitalWrite(L2,HIGH); analogWrite(R1,speeds); digitalWrite(R2,HIGH); delay(time); digitalWrite(L1,LOW); digitalWrite(L2,LOW); digitalWrite(R1,LOW); digitalWrite(R2,LOW); } void gRB() { analogWrite(L1,speeds); digitalWrite(L2,HIGH); analogWrite(R1,speeds/2); digitalWrite(R2,HIGH); delay(time); digitalWrite(L1,LOW); digitalWrite(L2,LOW); digitalWrite(R1,LOW); digitalWrite(R2,LOW); } void penWrite() { TIMSK |= (2 << 6); servoValue = 14; delay(150); delay(time); } void penRise() { TIMSK |= (2 << 6); servoValue = 20; delay(150); delay(time); }единственный или рекомендуемый для загрузки?
я понимаю, что вы не программист, но для выполнения инструкции не нужно быть программистом - достаточно уметь читать.
Ну так и в чем вопрос?
.
Что примерно этот файл значит?
В инструкции написано примерно следующее
Нажать сюда - загрузить сюда - сделать так - вот итог
Этот файл является обязательным в загрузке и он грузится как по инструкции дальше файлы не грузятся пример в 1 посте.
Хочу узнать что примерно может значить этот файл, какую роль он выполняет
Что примерно этот файл значит?
В инструкции написано примерно следующее
Нажать сюда - загрузить сюда - сделать так - вот итог
Этот файл является обязательным в загрузке и он грузится как по инструкции дальше файлы не грузятся пример в 1 посте.
Хочу узнать что примерно может значить этот файл, какую роль он выполняет
я не буду заниматься реверсинженирингом того, за что вы заплатили - соизвольте хотя ты выложить электронную версию программного и документации, вместо вольного пересказа.
Этот скейтч нужен для управления какими то двигателя через COM-порт (UART даже боюсь писать). А что вы пытаетесь сделать со строками из первого поста известно только вам. Предпологаю что данные строки должны быть вписаны в программу на компе, которая и должна отправлять команды в COM-порт.
вот все файлы которые шли там есть и инструкция. После пункта загрузите через ардуино демо у меня не работает. http://yadi.sk/d/X-AdlJNBHyRfS
После пункта загрузите через ардуино демо у меня не работает.
Троли тут какие-то. так тяжело автору написать: "напишите ссылку, что за устройство, описание и где скачать тестовый скетч"
кому интересно:
описание с PDF тут: http://www.electronshik.ru/item/doodle-bot-kit-1088615
драйвера тут: http://www.silabs.com/products/mcu/Pages/USBtoUARTBridgeVCPDrivers.aspx
скетчи для ArduinoIDE тут: https://sites.google.com/site/daguproducts/home/download-page
вооо а тут вообще все по русски: http://kaburka.ru/id84672-postroenie_komplekt_doodle_bot_ot_dagu
Троли тут какие-то. так тяжело автору написать...
Троли тут какие-то. так тяжело автору написать: "напишите ссылку, что за устройство, описание и где скачать тестовый скетч"
предлагаю забанить негодяя, а топикстартера усыновить.
кому интересно:
описание с PDF тут: http://www.electronshik.ru/item/doodle-bot-kit-1088615
драйвера тут: http://www.silabs.com/products/mcu/Pages/USBtoUARTBridgeVCPDrivers.aspx
скетчи для ArduinoIDE тут: https://sites.google.com/site/daguproducts/home/download-page
Спасибо за найденную информацию
По пунктам:
1) Робот собран согласно схеме
2) Драйвер установлен(мост) и программа ардуино видит его.
3) Проблемы :
Первый файл под названием penWritting как в первом посте через ардуино загружается удачно
Тут я заметил особенность в том, что если отключить провод то он напишет что не был найден провод (последовательный порт COM 7) и не загрузит ничего что лоигчно, к чему я это, а к тому что если начать загружать дальше любой файл без подключеного провода или с проводом выдает одни и !те же ошибки! (даже любые скетчи с вашей ссылки) все однотипные ошибки, ему не важно есть провод или нет у него какие то свои проблеммы (часть ошибок):
Пробывал загружать файлы на разных версиях ардуино 1.0.5 и 0022
ну видимо не все поставили. у вас нет файлов Constants.h и IOpins.h
если они есть, то перенесите их в папку, где лежит скетч. Если и так не поможет, то где-то говорилось про недружелюбные отношения к последним версиям Arduino IDE. попробуйте переставить на более старую версию.
> А програма которую предоставили (там просто стрелочки , задержка, скорость, рисовать или нет, с кнопкой Upload) после аплауда горят лампочки "якобы загружает" и ничего не происходит
китайцы, видимо, неправильно выставили в ней предел минимального заряда батарей, который проверяется в цикле arduino, если напряжение меньше предела, вместо выполнения программы робот моргает синим диодом.
> ошибка именно к этом у примеру expected unquaitfied-id before 'reinterpret_cast'.
в текущих версиях языка программирования (программа писалась под версию 022) для ардуино 1.5 и выше так ругается компилятор на определенную пользователем функцию F(), которая есть в закладке characters, переименуйте её, например, в FF() - и будет вам счастье.
пользуемся после этой небольшой корректировки с 9-ти летним сыном doodle_bot_text_demo.pde - всё работает. ошибку выловил так: указал файл/настройки подробный вывод при компилиции и загрузке, увидел на какую строку/символ ругается, нашел временный файл компилируемой программы (перед компиляцией несколько файлов собираются в один временный текстовый файл, по которому и выводятся ошибки, для определения местонахождения временного файла смотрел командную строку с опциями компилятора, которую пишет среда разработки при компиляции, у меня linux), перешёл на проблемную строчку и проблемный символ, всё понял и победил.