RC CAR CONTROLLER BASED ON INTEL GALILEO SOC PLATFORM Nadav Shiloach Sagi Sabag Supervisor: Idan...
-
Upload
caren-ryan -
Category
Documents
-
view
214 -
download
1
Transcript of RC CAR CONTROLLER BASED ON INTEL GALILEO SOC PLATFORM Nadav Shiloach Sagi Sabag Supervisor: Idan...
RC CAR CONTROLLER BASED ON INTEL GALILEO SOC PLATFORM
Nadav ShiloachSagi Sabag
Supervisor: Idan Shmuel
Spring 2014One Semester Project
PROJECT’S ENDING PRESENTATION
PROJECT’S MOTIVATION
Designing an autonomous remote control car using the Intel Galileo platform which will be a base for higher purposes like:
• Improving driving safety.
• Reducing traffic congestion.
• Improving fuel consumption.
• Reducing air pollution.
PROJECT’S MAIN GOAL
This project’s main goal is to find and design a system which will be able to control a remote control car via Wi-Fi. The system shall be capable to move the car and collect critical real-time information such as:
• Acceleration
• Speed
• Distance from nearby objects
PROJECT’S FLOW
• Learn about the Intel Galileo Wi-Fi capabilities.
• Establish a stable connection between a local computer to the Intel Galileo via Wi-Fi.
• Learn about the old remote control car mechanics and electronics.
• Learn about the Intel Galileo pins connections.
• Search for a suitable engine driver electronic card.
• Search for a suitable accelerometer and ultrasonic sensors.
• Design an integrated system with all cards and sensors.
• Design a power supply circuit for the system.
• Write code for controlling the car via Wi-Fi.
• Test the system.
PROJECT’S SYSTEM BLOCK DIAGRAM
DCDuino BoardIntel Galileo
Board
Ultra SonicSensor
Accelerometer
MotorsDriver
Remote Control
Car
PC
UART
Wi-FiIDE
SPI
INTEL GALILEO BOARD
The Intel Galileo is a simple platform which has lots of attributes such as:
• PCI Express Mini card slot.
• USB host port.
• Micro SD support.
• I2C/SPI protocols support.
• Shield compatibility: 14 digital I/O pins, 6 analog inputs and a serial port.
• It runs Linux OS.
• Has a unique simple Integrated Development Environment (IDE) with lots of libraries.
INTEL GALILEO BOARD - IDE VS. LINUX
IDE (Arduino Environment):
• Pros
• Using the Arduino environment is easy.
• Most of the work is done using built in examples.
• Real quick to get it work. Takes ~5 minutes to have a blinking led.
• Cons
• In case of a not working library function, debug might be difficult as some of the files are precompiled and tons of other files are not necessarily documented properly.
• Not Stable, There are several known issues, all listed in Intel website.
INTEL GALILEO BOARD - IDE VS. LINUX
Linux:
• Pros
• Stable!
• Unlimited use of any scripting language.
• Have the power of the Linux OS.
• Cons
• Simple tasks might be much more complicated to achieve, such as blinking led.
• Not much examples on the web.
DCDUINO
• Arduino like card.
• Chip! ~ 5 $.
• Compatible with Arduino IDE scripts.
• Main capabilities:
• I2C / SPI protocols
• GPIO
• ADC
ACCELOMETER
• Provides acceleration data in 3 axis.
• Capable to work with both I2C and SPI protocol.
ULTRASONIC SENSOR
• Principle of operation:
• Capable of sending and receiving a sound signal.
• Identifies object in range of 2 cm to 4 meters.
• Easy to use!
• Includes 4 pins: VCC, GND, ECHO and TRIG
• Once Trig is set to ‘1’, Echo is raised from ‘0’ to ‘1’ and a sound wave is sent.
• Once the sound wave is received back, Echo gets back to ‘0’.
• The length of Echo gives the distance by the following formula𝐷𝑖𝑠𝑡𝑎𝑛𝑐𝑒=
𝐿𝑒𝑛𝑔𝑡 h 𝑥𝑆𝑝𝑒𝑒𝑑𝑂𝑓𝑆𝑜𝑢𝑛𝑑2
MOTOR DRIVER
• H-Bridge
• A controller can’t drive a motor, it can’t supply the required current, hence, a motor driver shall be placed between the controller(Intel Galileo board) to the car’s motors.
USING INTEL GALILEO WI-FI ATTRIBUTE
Working flow:
• Connect mini PCI express network card.
• Determining Intel Galileo’s IP address using its MAC address.
• Configure Intel Galileo’s Linux start-up files.
• Manage to send and receive UDP packets.
POWER SUPPLY
• In order to acquire the ability to move the car in space without power cables attached to it, a mobile power supply source is needed for the Intel Galileo and DCduino boards.
• Intel Galileo is consuming a lot of current during start-up, hence, regular batteries aren’t capable of driving it. We used a mobile chargeable power supply (originally for smartphones) with the same voltage and current requirements as the Intel Galileo board.
• DCduino is a low supply device, hence, it is driven with a simple 9v chargeable battery.
LOGIC CONTROL (GPIO AND PWM)
• GPIO (General Purpose Input Output) – Logic pins which can be used as inputs or outputs. used for transmitting logic control instructions to the car.
• PWM (Pulse Width Modulation) – Logic output pins which can be configured to transmit a square wave signal with precise period and duty cycle. Used for setting the motors speed.
CODE (1)
The main purpose: Control the car using online UDP packets.
• PC side:
• A Java application of UDP client and server in order to send and receive data.
• A java application for controlling the car using the keyboard and real time data display.
CODE (2)• Intel Galileo side:
• A Python application of UDP client and server in order to send and receive data.
• A Python libraries for controlling the car using Intel Galileo’s GPIO and PWM:
• Export and toggle GPIO.
• Setting duty cycle and period of PWM.
• A python application for controlling the car:
• Interpret UDP packet.
• Using the libraries in order to move the car.
• Parse data from the sensors and send it as UDP packet.
DEMONSTRATION
THE END
Questions?