IMPORTANT - robotarm with VB and arduino
im having problem. final work school i'm trying controle robotarm computer.
i code in vb on pc used work.
now i'm trying put loop robot wil make moves automaticly until stop it.
my problem ones put in loop cant make stop anymore.
do of guys , girls have idea make stop?
i using ladyada motorshield.
ps sorry bad englisch i'm dutch
code vb: main form
code 2nd form:
aruino code:
i code in vb on pc used work.
now i'm trying put loop robot wil make moves automaticly until stop it.
my problem ones put in loop cant make stop anymore.
do of guys , girls have idea make stop?
i using ladyada motorshield.
ps sorry bad englisch i'm dutch
code vb: main form
code: [select]
imports system.io
imports system.io.ports
imports system.threading
public class form1
dim compoort string
shared _continue boolean
shared _serialport serialport
sub getserialportnames()
for each sp string in my.computer.ports.serialportnames
combobox1.items.add(sp)
next
combobox1.selectedindex = 0
compoort = combobox1.selecteditem
end sub
private sub form1_load(byval sender system.object, byval e system.eventargs) handles mybase.load
getserialportnames()
serialport1.close()
serialport1.portname = compoort 'change com port match arduino port
serialport1.baudrate = 9600
serialport1.databits = 8
serialport1.parity = parity.none
serialport1.stopbits = stopbits.one
serialport1.handshake = handshake.none
serialport1.encoding = system.text.encoding.default 'very important!
end sub
private sub button1_click(byval sender system.object, byval e system.eventargs) handles button1.mousehover
try
serialport1.open()
catch ex exception
msgbox(ex.tostring)
end try
serialport1.write("1")
serialport1.close()
end sub
private sub button1_click_1(byval sender system.object, byval e system.eventargs) handles button1.mouseleave, button4.mouseleave, button2.mouseleave, button3.mouseleave, btntest.mouseleave, button5.mouseleave, button6.mouseleave, button7.mouseleave
try
serialport1.open()
catch ex exception
msgbox(ex.tostring)
end try
serialport1.write("5")
serialport1.close()
end sub
private sub button2_click(byval sender system.object, byval e system.eventargs) handles button2.mousehover
try
serialport1.open()
catch ex exception
msgbox(ex.tostring)
end try
serialport1.write("3")
serialport1.close()
end sub
private sub button4_click(byval sender system.object, byval e system.eventargs) handles button4.mousehover
try
serialport1.open()
catch ex exception
msgbox(ex.tostring)
end try
serialport1.write("2")
serialport1.close()
end sub
private sub button3_click(byval sender system.object, byval e system.eventargs) handles button3.mousehover
try
serialport1.open()
catch ex exception
msgbox(ex.tostring)
end try
serialport1.write("4")
serialport1.close()
end sub
private sub btntest_click(byval sender system.object, byval e system.eventargs) handles btntest.mousehover
try
serialport1.open()
catch ex exception
msgbox(ex.tostring)
end try
serialport1.write("7")
serialport1.close()
end sub
private sub button5_click(byval sender system.object, byval e system.eventargs) handles button5.mousehover
try
serialport1.open()
catch ex exception
msgbox(ex.tostring)
end try
serialport1.write("6")
serialport1.close()
end sub
private sub button6_click(byval sender system.object, byval e system.eventargs) handles button6.mousehover
try
serialport1.open()
catch ex exception
msgbox(ex.tostring)
end try
serialport1.write("8")
serialport1.close()
end sub
private sub button7_click(byval sender system.object, byval e system.eventargs) handles button7.mousehover
try
serialport1.open()
catch ex exception
msgbox(ex.tostring)
end try
serialport1.write("9")
serialport1.close()
end sub
private sub combobox1_selectedindexchanged(byval sender system.object, byval e system.eventargs) handles combobox1.selectedindexchanged
serialport1.portname = combobox1.selecteditem
end sub
private sub button8_click(byval sender system.object, byval e system.eventargs) handles button8.click
dim msg1 string
msg1 = msgbox("de positie waarin de robot arm zich nu bevind de startpositie. ben u zeker dat u het automatisch programma wilt starten", vbyesno, "warning")
if msg1 = vbyes then
form2.show()
timer1.enabled = true
elseif msgboxresult.no then
msgbox("stel start positie in en probeer opnieuw")
end if
end sub
public sub stopauto()
timer2.enabled = true
form2.close()
msgbox("autorun gestopt")
end sub
public sub timer1_tick(byval sender system.object, byval e system.eventargs) handles timer1.tick
try
serialport1.open()
catch ex exception
msgbox(ex.tostring)
end try
serialport1.write("0")
serialport1.close()
end sub
private sub timer2_tick(byval sender system.object, byval e system.eventargs) handles timer2.tick
try
serialport1.open()
catch ex exception
msgbox(ex.tostring)
end try
serialport1.write("5")
serialport1.close()
end sub
end class
code 2nd form:
code: [select]
public class form2
private sub button1_click(byval sender system.object, byval e system.eventargs) handles button1.click
form1.timer1.enabled = false
form1.stopauto()
end sub
end class
aruino code:
code: [select]
#include <afmotor.h>
af_dcmotor mgrab(1, motor12_1khz);
af_dcmotor moperswing(2, motor12_1khz);
af_dcmotor munderswing(3, motor12_1khz);
af_dcmotor mbase(4, motor12_1khz);
void setup() {
serial.begin(9600);
serial.println("motor test!");
mgrab.setspeed(200);
moperswing.setspeed(200);
munderswing.setspeed(200);
mbase.setspeed(200);
}
void loop(){
while (serial.available() == 0);
int val = serial.read() - '0';
if (val == 1)
{
munderswing.run(forward);
}
else if (val == 5)
{
munderswing.run(release);
mbase.run(release);
mgrab.run(release);
moperswing.run(release);
}
else if (val == 3)
{
mbase.run(forward);
}
else if (val == 7)
{
mgrab.run(backward);
}
else if (val == 4)
{
mbase.run(backward);
}
else if (val == 8)
{
moperswing.run(forward);
}
else if (val == 2)
{
munderswing.run(backward);
}
else if (val == 6)
{
mgrab.run(forward);
}
else if (val == 9)
{
moperswing.run(backward);
}
else if (val == 0)
{
munderswing.run(backward); // turn on going forward
delay(800);
munderswing.run(release);
delay(800);
mgrab.run(backward); // stopped
delay(300);
mgrab.run(release); // stopped
delay(800);
munderswing.run(forward); // turn on going forward
delay(800);
munderswing.run(release);
delay(800);
mbase.run(forward);
delay(500);
mbase.run(release);
delay(800);
munderswing.run(backward); // turn on going forward
delay(800);
munderswing.run(release);
delay(800);
mgrab.run(forward); // stopped
delay(300);
mgrab.run(release);
delay(800);
munderswing.run(forward); // turn on going forward
delay(800);
munderswing.run(release);
delay(800);
mbase.run(backward);
delay(500);
mbase.run(release);
delay(800);
}
{
serial.flush();
}
}
Arduino Forum > Using Arduino > Installation & Troubleshooting > IMPORTANT - robotarm with VB and arduino
arduino
Comments
Post a Comment