最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

vb上位机控制

来源:动视网 责编:小OO 时间:2025-10-02 00:02:32
文档

vb上位机控制

技术细节:(1)   上位机软件使用VB开发。通过MSComm控件来发送和接收串口数据,通过对子机发来数据的处理或由人控制作出决策,然后再通过串口发送出去。例程:手动控制小车运动的简易程序:Dim x As IntegerDim s As StringPrivate Sub Form_Keydown(KeyCode As Integer, Shift As Integer)If s  Chr(KeyCode) ThenMSComm1.Output = Chr(KeyCode)s = Chr(K
推荐度:
导读技术细节:(1)   上位机软件使用VB开发。通过MSComm控件来发送和接收串口数据,通过对子机发来数据的处理或由人控制作出决策,然后再通过串口发送出去。例程:手动控制小车运动的简易程序:Dim x As IntegerDim s As StringPrivate Sub Form_Keydown(KeyCode As Integer, Shift As Integer)If s  Chr(KeyCode) ThenMSComm1.Output = Chr(KeyCode)s = Chr(K
技术细节: 

(1)   上位机软件 

使用VB开发。通过MSComm控件来发送和接收串口数据,通过对子机发来数据的处理或由人控制作出决策,然后再通过串口发送出去。 

例程:手动控制小车运动的简易程序: 

Dim x As Integer 

Dim s As String 

Private Sub Form_Keydown(KeyCode As Integer, Shift As Integer) 

If s <> Chr(KeyCode) Then

MSComm1.Output = Chr(KeyCode) 

s = Chr(KeyCode) 

Label1.Caption = Label1.Caption + Chr(KeyCode) 

End If 

End Sub 

Private Sub Form_KeyUp(KeyCode As Integer, Shift As Integer) 

MSComm1.Output = "0" 

s = "0" 

Label1.Caption = Label1.Caption + "0" 

End Sub 

Private Sub Form_Load() 

MSComm1.CommPort = 1 

MSComm1.Settings = "4800,N,8,1" 

MSComm1.RThreshold = 1 

MSComm1.SThreshold = 1 

MSComm1.PortOpen = True 

End Sub 

    

Private Sub MSComm1_OnComm() 

Select Case MSComm1.CommEvent 

Case comEvReceive 

Label1.Caption = MSComm1.Input 

Case comEvSend 

End Select 

End Sub 

(2)   无线通讯PC端 

本系统使用的无线通讯模块是上海桑博电子科技有限公司生产的STR-18型微功率无线通讯模块。它的调制方式是FSK半双工,波特率为1.2Kbit – 9.6Kbit。提供8个可选信道,频率为433-919MHz,发射功率10mW,灵敏度-105dBm,工作电压3.6 –5.5V,可支持TTL/RS232/RS485三种电平标准,有效距离400M。 

此模块虽然支持3种电平标准,但是实验表明当1方为RS232电平,一方为TTL电平时是没有办法正常传输数据的。所以在信号从上位机到达无线模块之前,先要进行电平转换。这里使用的是MAXIM公司生产的MAX232电平转换芯片,把电脑的RS232电平转换为TTL电平后再交给无线模块发射。 

此模块并不自带电源稳压的功能,所以又使用了一片7805给MAX232芯片与无线通讯模块供电。电平转换与电源稳压被做在了一块小的电路板上,固定在了无线通讯模块后面。 

由于串口盗电并不是非常稳定,功率也不大,所以这里使用了9V堆叠式干电池给前者单独供电。 

(3)   无线通讯子机端 

无线通讯子机端所采用的无线通讯模块和上位机端是一样的。由于先前已经作过电平转换,所以单片机可以直接通过无线通讯模块收发数据。子机端的模块配置必须与上位机通讯模块相同,既波特率相同,信道相同,数据位相同才能正常通讯。模块与单片机共用一个5V稳压电源。 

(4)   子机控制端 

目前本系统所采用的子机控制电路为本人设计的WUDI-T型机器人控制主板。它使用ATMEL公司生产的ATMEGA 16芯片作为主控芯片,ST公司生产的L293桥芯片作为马达控制芯片。它有电源稳压,LCD显示,PWM控制2路马达,一个三极管驱动,1个LED,一个按钮,一个蜂鸣器,8位拓展口等功能。串口通讯的引脚在WUDI-T上被预留了出来。WUDI-T型机器人控制主板是一个简易的控制主板,它可以完成所有的基本任务。 

  

子机控制端的程序使用BASCOMAVR来编写。 

(5)   子机执行端 

子机执行端为一辆电动小车。它的动力来源为2个直流马达,电源为4节干电池或充电电池。前方有一个万向轮,底盘为单面覆铜板所制。 

(6)   子机传感器 

目前并没有添加传感器的需要。如果添加,可以采集地面颜色,声音,环境光等环境变量。甚至可以安装无线摄像头在子机上。传感器暂时不在研究范围内。 

发展和改进的方向: 

本系统应为多机器人同时由一台上位机控制,同时由上位机来协调他们的运动和任务。通讯方面即上位机为主站,单片机为从机,通过主从机制来完成通讯。

制作一个款简易的电脑无线遥控履带小车。

小车配置如下:

      1。Arduino控制器     1个

      2。DF-MDV1.2电机驱动   1个

      3。Arduino扩展板   1个

      4。RP5履带         1个

      5。APC220无线数传模块     1个

      6。12V2300mAH电池包    1个

APC220一对及USB串口转换器一个

Arduino控制器及扩展板各一个

DF-MDV1.2电机驱动一个、一小块压克力及螺钉螺母镙柱若干

履带小车一台及7.2或12V电池包一个

将DF-MDV1.2电机驱动安装在一个裁剪好的压克力背面,

Arduino控制器安装在压克力正面,

一只APC220插在Arduino扩展板上,

然后再将扩展板插到Arduino控制器上,

履带小车的电机线接到电机驱动板上,电机驱动板上的电机接线柱边画有一个圈,分别接2个电机相同颜色的引线,

插上电机的6根控制线和2根给Arduino供电的电源线,

电机控制线和电源线接到Arduino上。

另一只APC220插到电脑USB上,电机驱动接法如下:

电机驱动     Arduino

IN1                PIN2

EN1               PIN3                       

IN2                PIN4

IN3                PIN5

EN2               PIN6

IN4                PIN7

电脑无线遥控履带小车代码如下:

int IN1 = 2;

int EN1 = 3;                         

int IN2 = 4;    

int IN3 = 5;   

int EN2 = 6;

int IN4 = 7;

                       

void stop(void)

        {

          digitalWrite(IN1,LOW);   

          digitalWrite(IN2,LOW);      

          digitalWrite(IN3,LOW);   

          digitalWrite(IN4,LOW);

        }

void advance_l(void)

        {      

          digitalWrite(IN1,HIGH);   

          digitalWrite(IN2,LOW); 

        } 

        

void advance_r(void)   

       {

          digitalWrite(IN3,LOW);   

          digitalWrite(IN4,HIGH);

        }

void back_off_l(void)

        {

          digitalWrite(IN1,LOW);   

          digitalWrite(IN2,HIGH); 

        } 

        

void back_off_r(void)   

       {

          digitalWrite(IN3,HIGH);   

          digitalWrite(IN4,LOW);

        }

        

void setup(void) 

    int i;

    for(i=2;i<=7;i++)

    pinMode(i, OUTPUT); 

    digitalWrite(EN1,HIGH);

    digitalWrite(EN2,HIGH);

    Serial.begin(19200);

void loop(void) 

       char val = Serial.read();

       if(val!=-1)

         {

           switch(val)

           {

             case 'w'://前进

                         advance_l();

                         advance_r();

                         break;

              case 's'://后退

                         back_off_l();

                         back_off_r();

                         break;

             case 'a'://左转

                         advance_r();

                         back_off_l();

                         break;       

             case 'd'://右转

                         advance_l();

                         back_off_r();

                         break;        

             }     

           delay(30); 

          }

        else stop();          

}

文档

vb上位机控制

技术细节:(1)   上位机软件使用VB开发。通过MSComm控件来发送和接收串口数据,通过对子机发来数据的处理或由人控制作出决策,然后再通过串口发送出去。例程:手动控制小车运动的简易程序:Dim x As IntegerDim s As StringPrivate Sub Form_Keydown(KeyCode As Integer, Shift As Integer)If s  Chr(KeyCode) ThenMSComm1.Output = Chr(KeyCode)s = Chr(K
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top