#1

User-inserted image

I want to start a new tutorial, and for this I am hoping for your input as well to make this work. With the ability of connecting more than one EZ-B v4 to a robot project, I feel that it would be very helpful for new and established members (myself included) to find out exactly what can be done using more than one v4.

My idea is to document what can and cannot be done on a secondary board, with a simple to understand format with a short explanation. There is information of what is achievable using more than one board in the EZ-Script menu (some may be included in this thread), clicking the "Help" icon on controls, and in the tutorials in the learn section, and some of EZ-Builders controls have the option to select a board. But having a one stop list of all what can be done all in one place may be easier to search through, some of which may not be covered or easily understood in the script menu and learn section.

Some posible subjects with posible script examples that could be covered are...

.) Speech
.) SayEZB
.) i2c
.) GetVoltage and GetCPUTemp
.) MP3 triggers
.) Serial commands
.) GetServo
.) ADC ports (eg, ADC sensor readings)
.) Digital ports (eg, Digital On/Off)
.) Ping sensors (with or without motor controllers)
.) Battery monitor scripts
.) Using Cheat Sheet (Control Commands)
.) Auto position control
.) Limitations and differences using "AP mode" and "Client mode" with multiple boards.

and I'm sure that there are more subjects I have missed.

I know that many of the experienced members here use multiple boards in their projects, so your input here would be would be valuable and most welcome. So to anyone who wants to participate in this dynamic tutorial, remember to keep it short, easy to understand, and give simple script examples where appropriate so that our newer members and current users who find scripting a bit challenging, can pick thing up quickly and easily.

Add as few or as many as you like, and if you see anything that you think may be incorrect, then please let us know with your correct answer and solution. And if you have something you would like to ask about using multiple boards, don't be afraid to ask however silly you may think the question is, and we'll see if someone can answer you. I hope you all find this a good and useful idea, and I hope you take part in an effort to helping our fellow community members. Smile

#2

So to get the ball rolling, here are the first "cans" and "cannot's" with the example I would like to have used that would be "Board 0" and "Board 2".

Movement panels.

A Movement Panel can only be used with "Board 0".

Servos.

Controlling a servo can be done using any board, in this example, "Board 0" and "Board 2". An example of a simple servo script would be...

Code:

# A normal servo script connected 
# to "Board 0".

Servo (D0,90)



Code:

# This servo is connected to "Board 2"

Servo (2.D0,90)



The "2." in the above script is the number of the board the servo is connected to. The same can also be done with servo speeds.

V4 camera.

You can connect an EZ-B v4 camera to any board. You can also have two v4 cameras connected to both "Board 0" and "Board 2" and can be selected from the camera control. You can also have two camera controls in any one EZ-Builder project.

Now, it's over to you... Winky

#3

Excellent Topic!

(Revised this post)
I don't have much to contribute at the moment. I believe you can select serial ports in a similar way. Something like this, as I recall.
UARTWrite(boardindex, port, data).

Also from what I have read, you can only send sound to board 0.

IsConnected(BoardIndex) is another one. As is ReleaseAll(BoardIndex). There seem to be 5 predefined board specific commands as well, Connect0 - Connect4.

#4

Thanks for pointing out the servo error. It was a typo thanks to my phones spellcheck. Hopefully we will get some good contributions from the other guys. If fact, it was your other thread that gave me the idea for this.

#5

Releasing all servos.

There is a script command called ReleaseAll() which will release all servos connected to the chosen v4. For example...

Code:

ReleaseAll(0)



will release all servos connected to "Board 0". And the following script...

Code:

ReleaseAll(2)



will release all "Board 2" servos from their holding positions.

I2C (script example).

Information for devices that use the i2c ports on the v4, can be sent and received on multiple boards. The following script is for an LCD05 display screen that will display that will time...

Code:

i2cwrite(0,0xc6,0,1,4,12,19,30,230,31,255,"Time is " + $time)



The very first zero in the script is the board number, in this case, "Board 0". To use this script with an LCD display connected to "Board 2", it would be as follows...

Code:

i2cwrite(2,0xc6,0,1,4,12,19,30,230,31,255,"Time is " + $time)

#6

Soundboard EZB.

The "Soundboard v4" can be used with muitiple boards. In EZ-Builder, click the configuration menu tab (small gear icon) on a soundboard v4 control, then select the board you want to use from the "Board#" drop down menu.

User-inserted image

User-inserted image

#7

Deleted

#8

Post deleted as it's no longer relevant.

#9

I think I was wrong about that. The selection is by Digital Port, not by Board. Sorry. I'll delete the post since it doesn't really fit.

#10

No worries. I'm just wondering though, can anything that uses a digital port be defined by a board number first?