IFC-PS01 Interface Free Controller PS Controller Card User`s Manual

IFC-PS01 Interface Free Controller PS Controller Card User`s Manual
IFC-PS01
Interface Free Controller
PS Controller Card
User’s Manual
V1.0
Oct 2008
Information contained in this publication regarding device applications and the like is intended through suggestion only and may
be superseded by updates. It is your responsibility to ensure that your application meets with your specifications. No
representation or warranty is given and no liability is assumed by Cytron Technologies Incorporated with respect to the accuracy
or use of such information, or infringement of patents or other intellectual property rights arising from such use or otherwise. Use
of Cytron Technologies’s products as critical components in life support systems is not authorized except with express written
approval by Cytron Technologies. No licenses are conveyed, implicitly or otherwise, under any intellectual property rights.
ROBOT . HEAD to TOE
Product User’s Manual – IFC-PS01
Index
1. Introduction and Overview
1
1.1 Introduction of Interface Free Controller
1
1.2 System Overview
2
2. Packaging List
3
3. Product Specification
4
3.1 Communication Address
4
3.2 Programmer
4
3.3 Input and Output device
4
3.4 Operating Voltage
4
4
Board or Product Layout
5
5
Installation (hardware)
7
6
Installation (software)
17
7
Getting Started
18
7.1 Basic Setup with Control Panel (IFC-PC00 + IFC-MB00 + IFC-PS01
+ IFC-CP04)
8. Warranty
Created by Cytron Technologies Sdn. Bhd. – All Rights Reserved
19
26
ROBOT . HEAD to TOE
Product User’s Manual – IFC-PS01
1. INTRODUCTION AND OVERVIEW
1.0 Introduction of Interface Free Controller
IFC (Interface Free Controller) offer a new concept of developing microcontroller embedded
system and also robotics system. With IFC, no more frustration in determine hardware
interface and configuring peripheral in software. Checking few hundreds pages of data sheet
can be waved. With the concept of interfacing card, user may stack as many as 64 cards in a
system to get infinite combination of peripherals. The design aim is to offer 3 simple steps in
microcontroller system development – Configure card’s address, Stack IFC cards, Write
Program and Run!
Furthermore, with functions based software library, user save valuable time during software
development by concentrating on algorithm development. No more flipping or scrolling PIC
data sheet looking for ADCON0, T1CON or even TRISA. With just a programming hand
book, user may simply copy the header file, call comprehensive functions and it’s ready to
rock.
IFC come with a brain card (main controller) where the main program is loaded. There are
several cards available for robotics development such as control panel, 15A brush motor
driver, brushless motor controller, counter and digital input, output card, power card, analog
input card and PS Controller card. This document will focus on PS Controller card, IFCPS01. This card has been designed with capabilities and features of:
• Industrial grade PCB.
• Every component is soldered properly and tested before board is shipped.
• Circuit power and busy indicator LED.
• 6 set of 1x3 headers to select communication address.
• 1 standard PS2 Controller adapter on each card.
• Software readable of each button on PS2 Controller.
• Single push button to test communication with PS2 Controller.
• Vibrator motor is controllable.
• Locked in analog mode for Joy-Stick.
• Fully compatible with wired or wireless PS2 Controller.
• Dimension 11.1cm x 6.9cm
• Come with sample code and template to start.
Note: IFC-PS01 does not come with PS2 controller, please purchase separately from
Cytron Technologies website. It is advised to use PS2 controller from Cytron
Technologies because all PS2 controller provided is tested before it is being shipped to
costumer.
Created by Cytron Technologies Sdn. Bhd. – All Rights Reserved
1
ROBOT . HEAD to TOE
Product User’s Manual – IFC-PS01
1.1 System Overview
With serial communication perception, IFC offer million of possibilities to develop
embedded system creatively and easily. In IFC, several cards are stacked to get a complete
embedded system. The minimum card requires is Power card and Main Board.
More cards
More devices
PS Controller Card
PS 2 controller
Analog Input Card
Analog sensor
Control Panel Card
Digital Input Card
Output Card
Encoder, digital sensor
Relays, etc
Brushless Motor Card
Brushless motors
Brushless Motor Card
Brushless motors
Brush Motor Card
Brush motor
Main Brain
Power card
Power and
communication
This document explains the method to use IFC-PS01.
Created by Cytron Technologies Sdn. Bhd. – All Rights Reserved
2
ROBOT . HEAD to TOE
Product User’s Manual – IFC-PS01
2. PACKAGING LIST
Please check the parts and components according to the packing list. If there are any parts
missing, please contact us at [email protected] immediately.
1. 1 x IFC PS Controller card IFC-PS01 with:
•
•
6 x mini jumper.
Industrial grade PCB with every component is soldered properly.
Note: IFC-PS01 does not come with PS2 controller, please purchase separately from
Cytron Technologies website. It is advised to use PS2 controller from Cytron
Technologies because all PS2 controller provided is tested before it is being shipped to
costumer.
Created by Cytron Technologies Sdn. Bhd. – All Rights Reserved
3
ROBOT . HEAD to TOE
Product User’s Manual – IFC-PS01
3. PRODUCT SPECIFICATION
3.1 Communication Address
There are 64 (26) communication address of IFC-PS01 that can be selected. The 6 bits
communication address is determine by selector A5 through A0 (6 set of 1x3 headers on IFCPS01). User can set the card address by using the mini jumper. However, user need to make
sure the communication address chosen on board is compatible with program written in Main
Board.
3.2 Programmer
User does no need to prepare programmer for IFC-PS01. IFC-PS01 is one of the slave cards
of IFC system and user don’t have to program this card. The slave program is preloaded with
firmware before shipped to customer. User will only need the Main Board of IFC system,
IFC-MB00 to control this slave card.
3.3 Input and Output device
The output devices on PS01 are as below:
• 2 status indicator LED: Power and busy LED.
- Power LED (PWR) will turn ON when power supplied to PS01.
- Busy LED (Busy) will turn ON or blinking when PS01 is communicating with
master card, IFC-MB00.
•
8 status indicator LED:
- This status indicator LED is for 8 buttons on PS2 controller. The LED will turn
ON when the buttons on PS2 controller is pressed. The 8 buttons on PS2
controller that has status indicator LED are circle, triangle, square, cross, up,
down, left and right buttons.
•
1 status indicator LED: Blue LED
- This LED blink when PS2 controller is not detected, ON with 50% of brightness
when PS2 controller is detected, and ON with 100% of brightness when a button is
pressed on the PS2 controller.
The input devices on PS01 are as below:
• 1 push button to test PS2 controller vibration.
3.4 Operating Voltage
The operation voltage of IFC-PS01 is 12V. User needs to stack a Power Card, IFC-PC00, and
connect a 12V battery on Power Card to supply 12V to the PS Controller Card. Please refer
hardware setup in chapter 5.0 Installation (hardware) for connecting power to PS Controller
Card.
Created by Cytron Technologies Sdn. Bhd. – All Rights Reserved
4
ROBOT . HEAD to TOE
Product User’s Manual – IFC-PS01
4. BOARD OR PRODUCT LAYOUT
A
B
K
C
J
D
C
I
Label
A
B
C
D
E
F
H
Function
PS2 controller adapter
Orientation marking
Side Connector
Manufacturing test point
Digital input status indicator LED
Status LED
F
G
Label
G
H
I
J
K
E
Function
Test button
Communication address selectors
Status indicator LED
28 pin PIC Microcontroller
Arrow
A – PS2 controller adaptor. User can simply connect wired or wireless PS2 controller to this
adapter.
B – The orientation marking on IFC-PS01. Every IFC card have this orientation marking, this
is to help user in ensuring the cards are stack correctly.
C – Side connector for stack card and communication between cards.
D – Reserved for Manufacturing Test Point. Please DO NOT short or connect wire to any of
these pins.
E - 8 indicators LED for the PS2 controller button. The 8 buttons on PS2 Controller that has
indicator LED are circle, triangle, square, cross, up, down, left and right buttons. The LED is
active high and will turn ON when corresponding buttons on PS2 controller is pressed.
Created by Cytron Technologies Sdn. Bhd. – All Rights Reserved
5
ROBOT . HEAD to TOE
Product User’s Manual – IFC-PS01
F – Communication and button press status LED for the PS2 controller. This LED will blink
if PS2 Controller is not detected on the PS2 socket. It can either be the PS2 is not connected
properly or the communication between PS2 and IFC-PS01 card failed. If PS2 controller is
detected and communication is stable, the LED will illuminate with 50% brightness. It will
light up with 100% if any button on PS2 controller is pressed.
G – Vibrate test button for PS2 controller. User can simply test the vibrator motors on PS2
controller by pressing this test button without any programming on MB00. This further verify
the communication between IFC-PS01 with the PS2 controller attached, wired or wireless.
H – 6 sets of 1x3 headers use as communication address selector on IFC-PS01. User can set
the card address by using the mini jumper.
I - 2 status indicator LED to indicate status for power ON (PWR) and busy in communicate
with Main Board card (Busy) PWR LED will turn ON when power supplied to the board.
Busy LED will turn ON when the card is busy in communicate with master card, IFC-MB00.
J – 18 pin PIC microcontroller which used as controller for this slave card.
K – An arrow mark to help user in ensuring the cards are stack correctly. Every IFC card will
have this arrow mark; user needs to ensure that the arrow points to the same direction when
IFC cards are stack together.
Created by Cytron Technologies Sdn. Bhd. – All Rights Reserved
6
ROBOT . HEAD to TOE
Product User’s Manual – IFC-PS01
5. INSTALLATION (HARDWARE)
For hardware installation of IFC-PS01, user will first need the Main Board card (IFC-MB00)
and Power Card (IFC-PC00) of IFC system. IFC-MB00 is the main controller of IFC system
while IFC-PC00 is the main power supply. For installation of IFC-MB00 and IFC-PC00
please refer to the user’s manual of IFC-MB00.
After user obtain IFC-PS01, user can stack it on IFC system as shown in following figures.
Ensure the arrow
points to the same
direction.
Ensure the
orientation
marking at the
same side.
Cautions: Please ensure that every card is being stacked properly in correct orientation.
Whole IFC system will be damaged if one of the cards is being stacked wrongly when it
is powered up.
Created by Cytron Technologies Sdn. Bhd. – All Rights Reserved
7
ROBOT . HEAD to TOE
Product User’s Manual – IFC-PS01
Besides stack every card in correct orientation, user must also require to ensure all card pins
are not shifted when stacking. Figures show the example of stacking cards in proper location
and example of stacking cards with shifted pins.
Ensure that all card
pins are not shifted
when stacking.
Examples of
stacking cards
with shifted pins.
Please AVOID
this!
Created by Cytron Technologies Sdn. Bhd. – All Rights Reserved
8
ROBOT . HEAD to TOE
Product User’s Manual – IFC-PS01
Ensure that all card
pins are not shifted
when stacking.
Examples of
stacking cards with
shifted pins. Please
AVOID this!
Cautions: Please ensure that all card pins are not shifted when stacking. IFC system will
NOT function if the pins are shifted.
Created by Cytron Technologies Sdn. Bhd. – All Rights Reserved
9
ROBOT . HEAD to TOE
Product User’s Manual – IFC-PS01
2nd step is to configure the card address. User may use the mini jumper provided on IFCPS01 to select the communication address of IFC-PS01. For example, figure below shows the
communication address, 010101 selected. Please make sure the address selected is
compatible (same) with the program. Please refer chapter 7 for details of writing program for
IFC-PS01. Each slave card must have unique address.
Figure below shows the method to connect PS2 controller to IFC PS controller card. User
may choose either wired or wireless PS2 Controller.
(a) Wired PS2 Controller
Created by Cytron Technologies Sdn. Bhd. – All Rights Reserved
10
ROBOT . HEAD to TOE
Product User’s Manual – IFC-PS01
(b) Wireless PS2 Controller
Figure (a) above shows connection of wired PS2 controller to IFC-PS01 card while figure (b)
shows connection of wireless PS2 controller to IFC-PS01 card. They are many type of PS2
controller in the market; the sensitivity and compatibility for each controller are different.
User is advised to use PS2 controller from Cytron Technologies. All PS2 controller provided
by Cytron is being tested before being shipped to costumer. Cytron Technologies does not
guarantee the compatibility of other PS2 controller from other source.
Figure below shows an example of PS2 controller which can be used for IFC-PS01 card.
There are 16 buttons that can be used as input button on PS2 controller.
L1, L2
R1, R2
Triangle
Up
Left
Right
Select
Start
Square
Down
Circle
Cross
Left
Joystick
Right
Joystick
Created by Cytron Technologies Sdn. Bhd. – All Rights Reserved
11
ROBOT . HEAD to TOE
Product User’s Manual – IFC-PS01
Referring to figure above, left and right joystick is used to change and further provide analog
value of PS2 controller. Each analog joystick is read in axis. For IFC-PS01 card, they are 2
types of axis that can be read. User can use either type 1 or type 2. Figure below shows
joystick axis, type 1 and type 2.
Joy_ly
128
Joy_ ry
Joy_lx
Joy_ rx
128
Type 1
User can use either type 1 or type 2 for joystick axis. For type 1, there are 2 variables for each
joystick which is axis X and axis Y. For example user can move the joystick up, down for Y
axis and left, right for X axis. For Y axis, when users move the joystick up, the value will
change from 128 to 0; when user move the joystick down, the value will change from 128 to
255. For X axis, when users move the joystick right, the value will change form 128 to 255;
when user move the joystick left, the value will change from 128 to 0. This axis is same for
left joystick and right joystick on PS2 controller.
Created by Cytron Technologies Sdn. Bhd. – All Rights Reserved
12
ROBOT . HEAD to TOE
Product User’s Manual – IFC-PS01
Let’s take an example on left joystick. Referring to the figure below (red dot), the left
joystick is moved a bit to the left and a bit to the up direction. So, the value of joy_lx and
joy_ly will changed, as in the figure joy_lx=70 and joy_ly=92.
For type 2, they are 4 variables for each joystick. The 4 variables are up, down, left and right.
When users move the joystick up, down, left or right the value is at range 0-100. This axis is
same for left joystick and right joystick on PS2 controller.
Joy_lu
Joy_ru
Joy_lr
Joy_ll
Joy_rl
Joy_ld
Joy_rr
Joy_rd
Type 2
Created by Cytron Technologies Sdn. Bhd. – All Rights Reserved
13
ROBOT . HEAD to TOE
Product User’s Manual – IFC-PS01
For example, when left joystick is being move 10% to left and 50% to down position, the
value of joy_ll and joy_ld will change, as in figure below, joy_ll=10 and joy_ld=50. However
the value of joy_lu=0 and joy_lr=0.
Please take note that the joy_lx, joy_ly, joy_rx and joy_ry is for type 1 axis; joy_lu, joy_ld,
joy_ll, joy_lr, joy_ru, joy_rd, joy_rl and joy_rr is for type 2 axis. These variables are being
named according to a standard format of:
Please take note when user unplugs the PS2 Controller and read joystick button on both axis,
the value user will gets is 255. Figure below show different value return on LCD when user
unplug and plug the PS2 controller.
PS2 controller is plug
Created by Cytron Technologies Sdn. Bhd. – All Rights Reserved
14
ROBOT . HEAD to TOE
Product User’s Manual – IFC-PS01
PS2 controller is unplug
Next, please turn ON the power on Power Card; the PWR LED of IFC-PS01 will turn ON as
shown in following figure. Initially, if there are no functions related to IFC-PS01 being called
in Main Board’s program, the busy LED will not ON or blink.
PWR LED on
IFC –PS01
PWR LED on
IFC - MB00
12V LED on
IFC - PC00
Created by Cytron Technologies Sdn. Bhd. – All Rights Reserved
15
ROBOT . HEAD to TOE
Product User’s Manual – IFC-PS01
To open the IFC cards, user should use the IFC card’s opener. Following figures show the
method to open cards with the opener.
1
2
3
Caution: Please use the opener to open IFC cards to avoid damage of the pins or cards.
Created by Cytron Technologies Sdn. Bhd. – All Rights Reserved
16
ROBOT . HEAD to TOE
Product User’s Manual – IFC-PS01
6. INSTALLATION (SOFTWARE)
User only needs to write program for IFC-MB00 in order to send data and communicate with
IFC-PS01. A program editor, C compiler and UIC00A software are required to be installed in
order for user to write program, compile it and further load the program into IFC main board.
User is recommended to use MPLAB IDE as source code editor and MPLAB C18 as C
compiler. Both this software is from Microchip and it is provided free to be downloaded.
Please refer user’s manual of IFC-MB00 for the installation of MPLAB IDE and MPLAB
C18. As for the installation of UIC00A software, please refer to UIC00A User’s Manual.
Please refer to MB00 User’s Manual, Chapter 6 for details step to install MPLAB IDE and
C18 compiler.
Created by Cytron Technologies Sdn. Bhd. – All Rights Reserved
17
ROBOT . HEAD to TOE
Product User’s Manual – IFC-PS01
7. GETTING STARTED
IFC is being design with the aim of 3 simple steps in using it. Configure card address, Stack
it, Load program and run. There must be at least power card (IFC-PC00) and main board
(IFC-MB00) for this system to function. This section will show the example to operate it with
PS2 controller Card, IFC-PS01.
1st step: Address
- Configure Card’s address
2nd step: Stacking
- Stack the card/s
- Connect the necessary battery
- Connect necessary sensor or motor
- Turn it ON
3rd step: Program
- Include the necessary header and
object file/s
- Write program using template
given
- Call necessary function referring to
Program Reference Notes
- Compile and Load Program
through UIC00A
A basic setup for IFC-PS01 will be illustrated in this chapter. Please ensure the power is OFF
before inserting or removing IFC card. The example includes 4 cards, IFC-PC00, IFC-MB00,
IFC-PS01 and one extra card which is IFC-CP04. Please refer following section of this
chapter for setup details.
Created by Cytron Technologies Sdn. Bhd. – All Rights Reserved
18
ROBOT . HEAD to TOE
Product User’s Manual – IFC-PS01
7.1 Basic Setup with Control Panel (IFC-PC00 + IFC-MB00 + IFC-PS01 + IFC-CP04)
Adding a control panel which comes with a 2 x16 character LCD and 4 programmable push
buttons will offer more interesting demonstration. Following steps show the installation of
this system and method to operate it.
a. 1st step, configure the address of cards, IFC-PS01 and IFC-CP04. PS Controller Card
has 6 mini jumpers to configure communication address (A5-A0). It should be set to
010101 if sample source code is being used. As for Control Panel, it should be set to
“CP1” (Upper side).
b. 2nd step is to stack all 4 cards together. Power card (IFC-PC00) should be at the
bottom, Main board (IFC-MB00) at 2nd layer, PS Controller Card (IFC-PS01) at 3rd
layer and Control Panel at the top layer as shown in following figure.
Ensure the arrow
points to the
same direction
Ensure the
orientation
marking is at the
same side
Created by Cytron Technologies Sdn. Bhd. – All Rights Reserved
19
ROBOT . HEAD to TOE
Product User’s Manual – IFC-PS01
c. Besides stacking every card in correct orientation, user also needs to ensure that all
the pins when stacking are not shifted and inserted to correct location.
Ensure that all the
pins when stacking
are not shifted and
inserted to correct
location.
d. Connect the PS2 controller to IFC-PS01 Card. Please refer hardware setup for the
method to make the connection.
e. Connect the battery or power source to Power card as shown; please ensure the
polarity is correct.
Connect 1 x 12V
battery to supply
operating voltage to
IFC. Ensure the
polarity is correct.
If 24V is needed in
the system, connect
2 x 12V batteries to
PC00. Ensure the
polarity is correct.
Created by Cytron Technologies Sdn. Bhd. – All Rights Reserved
20
ROBOT . HEAD to TOE
Product User’s Manual – IFC-PS01
f. Turn ON the IFC power by pushing the toggle switch to “ON”. There should be at
least 4 LED (12V LED on Power Card, PWR LED on Main Brain, PWR LED on PS
Controller Card and PWR LED on Control Panel) light up as show.
PWR LED on
IFC – CP04
PWR LED on
IFC – PS01
PWR LED on
IFC - MB00
12V LED on
IFC - PC00
g. 3rd step is to write program and load it. IFC comes with comprehensive function to
save program development time. Functions library will come with the interfacing card
in the form of header file (*.h) and object file (*.o). In order to call these functions,
particular header file and object file must be included under a project.
h. Open MPLAB IDE (please ensure MPLAB C18 is being installed). User can follow
the step in chapter 6.3 of user’s manual for IFC-MB00 to open project named
“IFC_PS01” for IFC PS Controller Card. Please note that the header file (iic.h,
iic_ps.h and iic_cp.h) and object file (iic.o, iic_ps.o and iic_cp.o) for IFC-MB00, IFCPS01 and IFC-CP04 have to be included in the project. If user did not use the
provided sample source code, “Sample1_PS.c”, user also needs to include card’s
header file at the beginning of the program. Figure shows the example to include
header file, object file and card’s header file.
Created by Cytron Technologies Sdn. Bhd. – All Rights Reserved
21
ROBOT . HEAD to TOE
Product User’s Manual – IFC-PS01
i. For those wanted to understand the program, please refer to c file named
“Sample1_PS.c” which can be downloaded in the product page of this card in Cytron
website: www.cytron.com.my.
j. Compile this project to generate hex file. Connect UIC00A IDC connector to IFCMB00 as show. The hex file generated is named “IFC_PS01.hex”.
Connector from
UIC00A programmer
Created by Cytron Technologies Sdn. Bhd. – All Rights Reserved
22
ROBOT . HEAD to TOE
Product User’s Manual – IFC-PS01
k. Load the hex file generated to UIC00A using PICkit2 window (refer to UIC00A
User’s Manual for details).
l. Power up IFC-PS01 with power card without plug in the PS2 controller. Status LED
is blink. Busy LED for IFC-MB00, IFC-PS01 and IFC-CP04 also blinking.
m. This sample project will print message at LCD on Control panel. The message print
are:
set PS01
add to 010101
Created by Cytron Technologies Sdn. Bhd. – All Rights Reserved
23
ROBOT . HEAD to TOE
Product User’s Manual – IFC-PS01
n. There are 3 modes for user to select in program “Sample1_PS”. User can switch
between modes by pressing SW1 on IFC-CP04. The modes are:
Mode
1
Enter modes
SW1
Enter sub-modes
No sub-modes
Function
Test all switch on the PS2
controller. The pressed
switch will be display on
the LCD at IFC-CP04.
Indicator LED on board
will
on
when
the
corresponding button is
pressed. The brightness of
status LED for button
without
indicator
will
change to brighter.
Sub-mode joystick A
Display the value of joy_lx,
joy_ly, joy_rx and joy_ry.
2
3
SW1
SW1
There are 3 sub-modes
in this mode, joystick
A, joystick B, and
joystick C. Press SW2
to switch between submode.
There are 3 submodes in this mode.
Press SW2, SW3 and
SW4 to enter submodes.
SW2
SW3
SW4
Created by Cytron Technologies Sdn. Bhd. – All Rights Reserved
Sub-mode joystick B
Display the value of joy_lu,
joy_ld, joy_ll, and joy_lr.
Sub-mode joystick C
Display the value of joy_ru,
joy_rd, joy_rl, and joy_rr.
Please take note that some
of the PS2 controller
doesn’t have small motor
installed. So, those PS2
controllers will not respond
when small motor is
activated.
Activate small motor
Activate big motor with
150 speed
Activate big motor with
255 speed.
24
ROBOT . HEAD to TOE
Product User’s Manual – IFC-PS01
o. Please refer the comment in source code for the details of mode.
p. To remove a card from IFC system, the power should be switched OFF.
q. Please use proper tool to remove the card. User may refer last section in chapter 5.0
Installation (hardware) for the method to open card with provided IFC card opener.
Note1: User may refer to IFC-PS01 Card Technical Info for the program function list. It
will help user in writing program for IFC-PS01.
Note2: Each time open a new project for IFC, user need to add ALL header files and
object files for all related IFC cards used. User also needs to include ALL cards’ header
file at the beginning of the program (C file). Please refer sample source code for the
example to include card h file.
Created by Cytron Technologies Sdn. Bhd. – All Rights Reserved
25
ROBOT . HEAD to TOE
Product User’s Manual – IFC-PS01
8. WARRANTY
¾
¾
¾
¾
Product warranty is valid for 6 months.
Warranty only applies to manufacturing defect.
Damage caused by miss-use is not covered under warranty.
Warranty does not cover freight cost for both ways.
Prepared by
Cytron Technologies Sdn. Bhd.
19, Jalan Kebudayaan 1A,
Taman Universiti,
81300 Skudai,
Johor, Malaysia.
Tel:
Fax:
+607-521 3178
+607-521 1861
URL: www.cytron.com.my
Email: [email protected]
[email protected]
Created by Cytron Technologies Sdn. Bhd. – All Rights Reserved
26
Was this manual useful for you? yes no
Thank you for your participation!

* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project

Download PDF

advertisement