Description: |
| | A Hardware Object that reads a group of 8 bumper switch inputs and returns a URCP Heading value indicating the direction of the impact. |
| | The following table lists the size and availability of the oBumper8 Object.
| | Object | Size | Description | A1 | A2 | B1 | B2 | C1 |
 | oBumper8 | 4 Bytes | Reads an 8-contact bumper. | x | x |
|
Operation: |
| | The oBumper8 Object uses the 8 I/O lines specified by the IOGroup property to read a group of 8 bumper switches. It converts the data to a URCP Heading value indicating the direction of the impact which is then stored in the Heading property. If any two or four adjacent bumper switches are pressed at the same time, the Heading property is adjusted to a URCP Heading indicating that the impart was located between the two center bumper switches and if any three adjacent bumper switches are pressed at the same time, the Heading property is adjusted to a URCP Heading indicating that the impact was located at the position of the center switch. When any one of the 8 bumper switches or two, three or four adjacent bumper switches are pressed, the Bumped property will be set to 1 and when all 8 bumper switches are not are pressed or two or more non-adjacent switches are pressed, the Bumped property is cleared to 0. |
Properties: |
| | The following table lists the properties of the oBumper8 Object:
|
Examples: |
| | The following examples use the oBumper8 Object.
| Visual Basic Syntax | C and Java Syntax |
' This program reads a 8 switch
' bumper, displays the URCP
' heading value on I/O lines
' 24 - 31 and the Received
' property on I/O line 7.
Dim A As New oBumper8
Dim B As New oDIO8
Dim C As New oDIO1
Sub Main()
ooPIC.PullUp = 1
A.IOGroup = 1
A.Operate = cvTrue
B.IOGroup = 3
B.Direction = cvOutput
C.IOLine = 7
C.Direction = cvOutput
Do
B.Value = A.Value
C.Value = A.Received
Loop
End Sub | // This program reads a 8 switch
// bumper, displays the URCP
// heading value on I/O lines
// 24 - 31 and the Received
// property on I/O line 7.
oBumper8 A = New oBumper8;
oDIO8 B = New oDIO8;
oDIO1 C = New oDIO1;
Void Main(Void){
ooPIC.PullUp = 1;
A.IOGroup = 1;
A.Operate = cvTrue;
B.IOGroup = 3;
B.Direction = cvOutput;
C.IOLine = 7;
C.Direction = cvOutput;
Do{
B.Value = A.Value;
C.Value = A.Received;
} While (1);
} |
| Basic Syntax | |
' This program reads a 8 switch
' bumper, displays the URCP
' heading value on I/O lines
' 24 - 31 and the Received
' property on I/O line 7.
A Var oBumper8(1,cvOn)
B Var oDIO8(3,cvOutput)
C Var oDIO1(7,cvOutput)
ooPIC.PullUp = 1
1:
B.Value = A.Value
C.Value = A.Received
Goto 1 | |
|
Connections: |
| | The oBumper8 uses 8 I/O lines. These 8 I/O lines must be 8 contiguous I/O lines starting with I/O line 8, 16 or 24. The inputs are active low and each of the 8 I/O lines will require a pull up resister. If the I/O lines starting with I/O line 8 are selected, the internal pull up resisters can be used by setting the ooPIC.PullUp property to 1. The first set of 4 I/O lines of the 8 are used for the 4 four switches; Front, Left, Back and Right. The second set of 4 I/O lines of the 8 are used for the 4 four switches; Front-Left, Back-Left, Back-Right & Front-Right.
| Switch Position | Typical wiring for each switch |
 |  |
| IOGroup: | 1 | 2 | 3 | Switch Location |
| I/O 0: | 8 | 16 | 24 | Front |
| I/O 1: | 9 | 17 | 25 | Left |
| I/O 2: | 10 | 18 | 26 | Back |
| I/O 3: | 11 | 19 | 27 | Right |
| I/O 4: | 12 | 20 | 28 | Front-Left |
| I/O 5: | 13 | 21 | 29 | Back-Left |
| I/O 6: | 14 | 22 | 30 | Back-Right |
| I/O 7: | 15 | 23 | 31 | Front-Right |
|
Caution: IOGroup 2 contains special purpose I/O such as Debugging, Serial Port & PWM. Do not use IOGroup 2 if these other functions are in use. |
Related Items:
|
| | The following table lists objects with related functions
| | Object | Description | A1 | A2 | B1 | B2 | C1 |
 | oBumper4 | Reads a 4-contact bumper. | x | x | x |
|
Version History and Bug List: |
| | Firmware Ver B2: Introduced. Bugs: No known bugs. |