back to Introduction
Technical Specifications
- Freescale Kinetis K60 (ARM Cortex M-4)
- 96 MHz single core
- 128 kB RAM
- 8 Core Parallax Propeller Micro-controller
- Programmable I/O
- 32 Flex I/O Ports (3.3V)
- Digital input
- Digital output
- Digital encoders
- Analog input
- Analog encoders
- 8 Servo Ports (5V)
- 4 DC motor ports (12V)
- 32 Flex I/O Ports (3.3V)
- 320 x 240 Color Touchscreen LCD Display
- 3-Axis Accelerometer
- Micro-SD Card Slot
- Mini USB Programming Port
- Xbee Wireless Module
Port Overview
The image below labels the available ports on the Proteus. The 32 Flex Input/Output ports are located below the screen of the Proteus. The 8 servo ports are located above the screen of the Proteus. The reset/power button, the 4 motor ports, and the 12V DC charging barrel jack are located on the top face of the Proteus. The micro-SD port is located on the right face of the Proteus.
Servo & Motor Ports
The image below details the servo ports (seen left) and the top face of the Proteus (seen right). Looking at the front face of the Proteus, the servo ports are labelled 0 to 7 from left to right, respectively. Looking at the top of the Proteus, the motor terminals are labelled 0 to 3 from left to right, respectively. The differential voltage between the positive and negative terminals of the motor ports is 12V.
Servo Port Software Enumeration
The enumeration for the servo ports are found in the FEHServo library. In the constructor function when declaring a servo, the available ports are as follows:
- Servo0
- Servo1
- Servo2
- Servo3
- Servo4
- Servo5
- Servo6
- Servo7
Because this enumeration is defined in the FEHServo library, you must use the binary scope resolution operator in order to access the enumeration. In other words, a valid servo port would be: FEHServo::Servo0
Motor Port Software Enumeration
The enumeration for the motor ports are very similar to the servo ports. The enumeration is located in the FEHMotor library. The available ports are:
- Motor0
- Motor1
- Motor2
- Motor3
You must use the binary scope resolution operator in order to access the port enumeration. An example o f a valid motor port would be: FEHMotor::Motor0
Flex I/O Software Enumeration
The following image displays the naming convention for the flex I/O ports. Each bank is labelled 0-3, respectively, and has 8 pins labelled 0-7, respectively.
The enumeration list in the FEHIO library is as follows:
- P0_0
- P0_1
- P0_2
- P0_3
- P0_4
- P0_5
- P0_6
- P0_7
- P1_0
- P1_1
- P1_2
- P1_3
- P1_4
- P1_5
- P1_6
- P1_7
- P2_0
- P2_1
- P2_2
- P2_3
- P2_4
- P2_5
- P2_6
- P2_7
- P3_0
- P3_1
- P3_2
- P3_3
- P3_4
- P3_5
- P3_6**
- P3_7**
The binary scope resolution operator will need to be used in order to access this enumeration. The protocol for doing this would be (using flex I/O pin 0 in bank 0): FEHIO::P0_0
**P3_6 and P3_7 cannot be used for digital encoders!!
Each bank of pins can also be enumerated as follows
- Bank0
- Bank1
- Bank2
- Bank3
The binary scope resolution operator will need to be used in order to access this enumeration. The protocol for doing this would be (using flex I/O bank 0): FEHIO::Bank0
Flex I/O Internal Pull-Up
When a DigitalInputPin is declared, the Proteus configures internal pull-up resistors. When a switch is wired in a normally open configuration and the switch is not pressed, the .Value() function will return True. If the switch is pressed, the .Value() function will return False. A diagram detailing this phenomenon is detailed below.
continue to General Care