Simulink, MS Visual Studio and Lego NXT

3 views (last 30 days)
grig on 1 Apr 2012
I have a Simulink model for controlling Lego robot. I have c# project in MSVS which receives robot's coordinates from web camera every 100 ms. How can i get data from c# application and use it in Simulink model?

Answers (4)

Gautam Vallabha
Gautam Vallabha on 1 Apr 2012
I assume you are referring to the Run on Target Hardware capability in R2012a. You have a couple of options:
  1. You can configure your model to use external mode. In this mode, the model would run on the LEGO robot but you can change parameters via Simulink on the host computer. To use this, you would (a) send the coordinates from C# to MATLAB workspace, and (b) use set_param to change the appropriate parameters. There are several ways of sending the coordinates; see here for details.
  2. You can use a "Receive via Bluetooth" block in your model, and figure out how to send the Bluetooth data from your C# program.
  1 Comment
grig on 14 Apr 2012
How should look like matlab format of message for sending to robot?

Sign in to comment.

grig on 15 Apr 2012
I send [0x06 0x00 0x00 0x09 0x00 0x02 (uint8)number 0x00] but output from Receive via Bluetooth® Connection is always: Data=0,Size=32. What is wrong?

grig on 15 Apr 2012
OMG! Correct is [0x02 0x00 0x01 (uint8)number] For mailbox #1 3d byte should be 0x01, not 0x00. It is not obvious!

grig on 15 Apr 2012
And there is another question: how to send single or double number to robot? Just BitConverter.GetBytes() is not enough.


Find more on Simulink Support Package for LEGO MINDSTORMS EV3 Hardware in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!