Помогите написать скетч для движения моторов
- Войдите на сайт для отправки комментариев
Пнд, 04/03/2013 - 21:28
В наличие есть вот такой драйвер на 2 ампера:http:http://www.dvrobot.ru/shop/i3.kontroler_dvigatelya.htm ,такая управляшка:http://a-bolshakov.ru/Arduino/Processing/Tank/Tank_01/Proc.jpg ,и вот такой скетч:
import processing.serial.*; Serial myPort; int button_color=250; int button_fire=220; boolean button1_over=false; boolean button2_over=false; boolean button3_over=false; boolean button4_over=false; boolean button5_over=false; boolean button6_over=false; char letter; int speed=150; int speed_min=0; int speed_max=250; int step=10; void setup () { size (500, 400); String portName=Serial.list()[0]; myPort=new Serial(this, portName, 9600); println(Serial.list()); } void draw() { update(mouseX, mouseY); background(180); fill(0); text("скорость =", 100, 50); text(speed, 165, 50); text("направление -", 250, 50); switch (letter) { case 'w': text("вперед", 340, 50); break; case 's': text("назад", 340, 50); break; case 'a': text("влево", 340, 50); break; case 'd': text("вправо", 340, 50); break; } if(button1_over) {fill(button_fire);} else {fill(button_color);} rect(50,100,100,100); if(button2_over) {fill(button_fire);} else {fill(button_color);} rect(200,100,100,100); if(button3_over) {fill(button_fire);} else {fill(button_color);} rect(350,100,100,100); if(button4_over) {fill(button_fire);} else {fill(button_color);} rect(50,250,100,100); if(button5_over) {fill(button_fire);} else {fill(button_color);} rect(200,250,100,100); if(button6_over) {fill(button_fire);} else {fill(button_color);} rect(350,250,100,100); fill(0); text("скорость-", 75, 150); text("вперед", 225, 150); text("скорость+", 370, 150); text("влево", 80, 300); text("назад", 227, 300); text("вправо", 380, 300); myPort.write(letter); myPort.write(speed); myPort.write(" "); delay(30); } void update(int x, int y) { if(proverka_button1() ){ button1_over=true; button2_over=false; button3_over=false; button4_over=false; button5_over=false; button6_over=false;} else if(proverka_button2() ){ button1_over=false; button2_over=true; button3_over=false; button4_over=false; button5_over=false; button6_over=false;} else if(proverka_button3() ){ button1_over=false; button2_over=false; button3_over=true; button4_over=false; button5_over=false; button6_over=false;} else if(proverka_button4() ){ button1_over=false; button2_over=false; button3_over=false; button4_over=true; button5_over=false; button6_over=false;} else if(proverka_button5() ){ button1_over=false; button2_over=false; button3_over=false; button4_over=false; button5_over=true; button6_over=false;} else if(proverka_button6() ){ button1_over=false; button2_over=false; button3_over=false; button4_over=false; button5_over=false; button6_over=true;} else {button1_over = button2_over = button3_over = button4_over = button5_over = button6_over = false;} } void mouseClicked(){ if(button1_over){speed=speed-step;} if(button3_over){speed=speed+step;} if(speed<speed_min){speed=speed_min;} if(speed>speed_max){speed=speed_max;} if(button2_over){letter='w';} if(button4_over){letter='a';} if(button5_over){letter='s';} if(button6_over){letter='d';} } boolean proverka_button1(){ if(mouseX>50&&mouseX<150&&mouseY>100&&mouseY<200) {return true;} else {return false;} } boolean proverka_button2(){ if(mouseX>200&&mouseX<300&&mouseY>100&&mouseY<200) {return true;} else {return false;} } boolean proverka_button3(){ if(mouseX>350&&mouseX<450&&mouseY>100&&mouseY<200) {return true;} else {return false;} } boolean proverka_button4(){ if(mouseX>50&&mouseX<150&&mouseY>250&&mouseY<350) {return true;} else {return false;} } boolean proverka_button5(){ if(mouseX>200&&mouseX<300&&mouseY>250&&mouseY<350) {return true;} else {return false;} } boolean proverka_button6(){ if(mouseX>350&&mouseX<450&&mouseY>250&&mouseY<350) {return true;} else {return false;} }
при компиляции показывает ошибку и указывает на :import processing.serial.*;
Помогите разобраться пожалуйста!
Может есть какие то другие варианты управления двигателями,через подобные "управлялки" , или как управлять двигателями с клавиатуры через монитор порта хотя бы?
при компиляции показывает ошибку и указывает на :import processing.serial.*;
Кто показывает ошибку?
Вы понимаете что это код для процессинга??? И вы понимаете что еще скейтч есть для дуины???
Если да, то maodzi87, вы уже не первый день на этом форуме, поэтому:
1. Для процессинга есть отдельная ветка Processing;
2. Вставка программного кода в тему/комментарий.
3. Есть такая строка в этом скейтче String portName=Serial.list()[0]; и в ней есть нолик 0, так вот это некий порядковый номер СОМ-порта в процессенге(?) (яве?), не путайте с номером СОМ-порта, это именно порядковый номер, то есть есть у вас на компе СОМ1, СОМ2, СОМ5 и СОМ7, так вот в процессинге они расположатся примерно так:
СОМ1 это Serial.list()[0]
СОМ2 это Serial.list()[1]
СОМ5 это Serial.list()[2]
СОМ7 это Serial.list()[3]
поэтому берете и пробуете переберать эти номера.
Да я новичёк в этом деле просто! Спасибо и на этом, только я вот буду здесь всех тревожить пока не разберусь во всём ,что меня интересует! А код для дуины таков:
Так в процессинге код скомпилировался при смене номеров Serial.list()[х] ?
Да скомпилировался. Как только вот поменять номер Serial.list()[х] на СОМ3 ,т.к. дуина у меня стоит именно на этом порту, пробовал ставить Serial.list()[0] ,но это не то!?!
Так и напишите "COM3" и будет Вам счастье. Вместо Serial.list()[0]. Я именно так и делал.
"СОМ3" то куда именно вписывать ,наглядно пожалуйста покажите!?
Можно так
или сразу так
но если бы вы попереберали номера Serial.list()[х], то тоже бы завелось.
Подчёркивает, как Error inside Serial.write() и появляется недоделанное окно ,и всё на этом всё встало!
Что же это могло значить?
Не знаю, что у вас там происходит, у меня код выше компилируется.
И вы же писали, что у вас скомпилировалось.... покажите весь код.
да всё спасибо огромное,всё заработало ,нужно просто было выключить ардуину,выключить Processing,потом заново всё по очереди включить и залить скетч!
АГРОМНЕЙШЕЕ СПАСИБО,Я ОЧЕНЬ БЛАГОДАРЕН ВАМ ЗА ПОМОЩЬ,ВСЁ ПРЕКРАСНО РАБОТАЕТ!!!!!УРА!!!