SlideShare a Scribd company logo
1 of 25
Download to read offline
S.P.A.R.T.A.N.
Space Planning and Research to Analyze Nuances
S.P.A.R.T.A.N. Team Members
Cody Del Prato
Ryan Yedinak
Hesham Assabahi
Derek J. Russell
Goals of the Project
● Design and build a rover to collect data samples and traverse the terrain
○ Collect and communicate data
■ Detect large changes in CO2
■ Detect hot and cold temperature zones
■ Detect a magnetic field
■ Read RFID tags
■ Communicate data to a computer and graph it
○ Traverse ramps and avoid boulders in the playing field
○ Pick up data samples with a robotic arm and return them to the docking area
List of Tools and Parts:
Available:
Arduino Uno and Mega
Acrylic
Supplies Around Program
Bought:
Servos
Rock Crawler
Pi Camera
Battery for Pi
Servo Shield
Electromagnet
Primary Design
Secondary Design
● Purchased a Rock Crawler chassis equipped with motors for movement
● Mounted an acrylic body on top of chassis
○ Microcontrollers and breadboards from which we ran our sensors and
servos located inside
● Attached a robotic arm made from acrylic on top of the body
○ Run components on Arduino Uno
○ Implemented two servos to move the arm
○ Attached an electromagnet enclosed in acrylic to retrieve data samples
● Mounted sensors on the front, back, and bottom of the rover to gather data
○ Run sensors from an Arduino Mega (originally Raspberry Pi)
Control System
● Turnigy 9-Channel Transmitter and Receiver used to control rover movements and arm components
○ Channel 1: Rover movement forward and backward
○ Channel 2: Rover movement left and right
○ Channel 4: Arm base movement left and right (20∘
each way)
○ Channel 5: Arm movement up and down (0∘
/45∘
/90∘
)
○ Channel 6: Electromagnet switch (On/Off)
● Motors for rover movement attached directly into channels 1 and 2 of the receiver without adjustment
● Functions for channels 4-6 adjusted in the Arduino code based on the values transmitted by the controller
Channel 4
x<1100 70∘
(Full Left)
1100 ≤ x < 1200 75∘
1200 ≤ x < 1300 80∘
1300 ≤ x < 1400 85∘
1400 ≤ x < 1500 90∘
(Center)
1500 ≤ x < 1600 95∘
1600 ≤ x < 1700 100∘
1700 ≤ x < 1800 105∘
1800 ≤ x 110∘
(Full Right)
Channel 5 (Auxiliary-Pitch)
N (0%) x ≤ 1100 0∘
1 (50%) 1400 ≤ x < 1500 45∘
2 (100%) 1800 ≤ x 90∘
Channel 6
x < 1100 Off
x > 1800 On
Guts of the Rover
● All sensors run on an Arduino Mega powered by a 9V battery
○ RFID-RC522 RFID Reader [Mounted on Bottom of Rover]
○ TMP36 Temperature Sensor [Front of Rover Near Ground]
○ K-30 10% CO2
Sensor (SE-0118) [Back of Rover]
○ Triple-Axis Magnetometer (HMC5883L) [Front of Rover Near Ground]
○ TCS230 Color Sensor with RGB LED [Mounted on Bottom of Rover]
● Servo motors and electromagnet for robotic arm run on an Arduino Uno powered by a 9V battery
○ Two 360∘
servo motors for arm movement
■ One servo moves arm’s base left and right
■ One servo moves arm up and down
○ Electromagnet attached to end of arm to pick up data samples (containing magnets)
● Camera run from Raspberry Pi mounted on front of rover to view data samples
● Xbee running on Arduino Mega to transfer data to computer through X-CTU
○ Temperature (∘
C, ∘
F, K), Magnetic Field (uT in x,y,z directions), Color Intensities, RFID Info, CO2
data (ppm)
<CODE-->Movement>
● Attempt_1.0:
○ Four Servos at the top to rotate the degree of the base.
○ Four Servos at the bottom to move the rover back and straight.
○ ISSUE → 3D printer did NOT work.
● Attempt_2.0:
○ An RC car was bought without a controller.
○ A Turnigy 9x was supplied by SSCCIP.
○ We programed the 9x to work for the RC car.
“Design_Movement_1.0” (Top-Down, High-Level)
● Initializations and Libraries :
○ #include : <Servo.h>
○ Objects: 8 control servo objects, 4 variables for the receiving channels, a couple of dummy
variables.
● Set Up:
○ Attach the 8 servos.
○ Set the receiving channels to their pins.
● Main Loop( functions ):
○ void SetDegree(void)
○ void MoveTheBase(void)
<Cont.>
void SetDegree()
- Receive values from the channel
- Test if the value was received last call
- .If true : return
- If the value is low: move the servos to
0°
- If the value is in the middle: move the
servos to 45°
- If the value is high: move the servos to
90°
- Save the value for next call.
void MoveTheBase()
- Receive values from the channel
- If the value is low: move the servos
backwards
- If the value is in the middle: stop
moving the servos
- If the value is high: move the servos
forward
“Design_Movemnet_2.0” (Top-Down, High-Level)
● Initializations and Libraries :
○ #include:
■ <varSpeedServo.h> // Servo Library that allows you to move it in different speeds.
○ Objects:
■ 2 servo object
■ 3 variables for the pins for the receiver channels, and some dummy variables.
■ One Variable for the electromagnet
● Set Up:
○ Connect the channels to their pins.
○ Set up the servos and the electromagnet to their pins
● Main Loop( functions )
○ void moveArm(void)
○ Void moveBase(void)
○ void controlElectro(void)
<Cont.>
void MoveArm()
- Receive values from the channel
- Test if the value was received last call
- .If true : return
- If the value is low: move the servos to 0°
- If the value is in the middle: move the
servos to 45°
- If the value is high: move the servos to 90°
- Save the value for next call.
void MoveBase()
- Receive values from the channel
- Move the base accordingly to values of
that received.
void controlElectro()
- If channel is on : turn on the
electromagnet
- If the channel is off: turn off the
electromagnet.
<CODE-->Sensors>
● Attempt_1.0→( Raspberry Pi 3) :
○ Pros : use a Raspberry Pi 3 for sensing, storing, graphing, and sending data via
Wifi. Great with power.
○ Cons : - It’s brand new, therefore most libraries are not comparable.
- It kept failing and lost all the code and the data.
● Attempt_2.0→( Arduino a.k.a Emergency Plan)
○ Pros: - All the libraries are comparable. - It’s robust.
○ Used Xbee to transfer data wirelessly instead of wifi.
○ Cons: - Power supply.
“Design_Senors_2.0” (Top-Down, High-Level)
● Initializations and Libraries :
○ #include :
■ <Wire.h> //
■ <Adafruit_Sensor.h> // Magnetometer
■ <Adafruit_HMC553_U.h>//Magnetometer
■ <kSeries.h> // CO2
■ <MFRC522.h> // RFID
■ <SPI.h> // RFID
○ Objects:
■ Create object sensors when needed
■ Variables to hold pin numbers
■ Dummy variables to hold data coming
from the sensors.
● Set Up:
○ Set up and turn on the Magnetometer
○ Init SPI bus
○ Display sensor details
○ Set up the RFID
○ Set up and turn on the color sensor
● Main Loop( functions ):
○ void TempSensor(void)
○ void magSensor(void)
○ bool RFID(void)
■ If true : Flash a light
○ void colorSensor()
<Cont.>
void tempSensor()
- Get voltage from the sensor pin
- Do the calculation to convert the voltage
to celsius, fahrenheit, and kelvin
- Send the info to the computer
- If the temperature is higher than the last
call, save it as the new high
- If the temperature is lower than the last
call, save the as the new low
void magSensor()
- Get the voltages from the sensor
- Do the calculations and the conversations
- Send the info to the computer
void CO2_Sensor()
- Read the Sensor
- Send the info to the computer
- If the CO2 value is higher than the last
call, save it as the new high
- If the CO2 is lower than the last call, save
the as the new low
<Cont.>
void ColorSensor()
- Read the red, green, and blue intensities
- If red < green && green >= blue && red
is low
- Color is white
- Turn LED to white
- If blue < red && blue < green
- Color is blue
- Turn on LED to blue
- If red < blue && red < green && green <
red < green - 20
- Color is red
- Turn LED on to red
- If red < green && green < blue
- Color is yellow
- Turn LED on yellow
- Turn off LED after delaying 500 miliseconds
bool RFID()
- If a card was read
- Send the info of the card to the
computer
- Return true
- Else return false
Results
Successes
● Sensors were able to retrieve data
○ Temperature sensor detected hot and cold
zones
○ CO2
sensor detected large amount of CO2
near
dry ice
○ Magnetometer detected large magnetic field
○ Color sensor detected colored areas (signified
by RGB LED changing color to match colored
zone)
○ RFID reader read all four tags
● Rover able to traverse all ramps
● Data transferred to computer through XBee
communication
Issues
● Electromagnet did not work for most of the
competition
○ Power issues
○ Not able to retrieve data samples
● RFID sensor had difficulty reading
● Temperature Sensor was intermittent
● Needed to switch out 9V batteries powering the
Arduinos often
● Rover started to lose power towards the end
○ Unable to drive in reverse
SSCCIP Final Presentation (The Spartans)

More Related Content

What's hot (20)

Counter And Sequencer Design- Student
Counter And Sequencer Design- StudentCounter And Sequencer Design- Student
Counter And Sequencer Design- Student
 
Chapter 5 counter
Chapter 5 counterChapter 5 counter
Chapter 5 counter
 
Analog to digital converter
Analog to digital converterAnalog to digital converter
Analog to digital converter
 
digital Counter
digital Counterdigital Counter
digital Counter
 
Counters, Synchronous & Asynchronous Counters
Counters, Synchronous & Asynchronous CountersCounters, Synchronous & Asynchronous Counters
Counters, Synchronous & Asynchronous Counters
 
Digital Clock
Digital ClockDigital Clock
Digital Clock
 
Johnson counter
Johnson counterJohnson counter
Johnson counter
 
Counters
CountersCounters
Counters
 
Digital Counter Design
 Digital Counter Design Digital Counter Design
Digital Counter Design
 
Counter
CounterCounter
Counter
 
Eceg 3201-dld-lec 12-synchronous_counter_design
Eceg 3201-dld-lec 12-synchronous_counter_designEceg 3201-dld-lec 12-synchronous_counter_design
Eceg 3201-dld-lec 12-synchronous_counter_design
 
Galil accelera accessories_Spec Sheet
Galil accelera accessories_Spec SheetGalil accelera accessories_Spec Sheet
Galil accelera accessories_Spec Sheet
 
Punch sensor, Arduino
Punch sensor, Arduino Punch sensor, Arduino
Punch sensor, Arduino
 
FYBSC IT Digital Electronics Unit V Chapter II Shift Register
FYBSC IT Digital Electronics Unit V Chapter II Shift RegisterFYBSC IT Digital Electronics Unit V Chapter II Shift Register
FYBSC IT Digital Electronics Unit V Chapter II Shift Register
 
Digital clock
Digital clockDigital clock
Digital clock
 
Admission in india 2015
Admission in india 2015Admission in india 2015
Admission in india 2015
 
Ece221 Ch7 Part1
Ece221 Ch7 Part1Ece221 Ch7 Part1
Ece221 Ch7 Part1
 
Binary up and down counter using IC 74193
Binary up and down counter using IC 74193Binary up and down counter using IC 74193
Binary up and down counter using IC 74193
 
Digital Alarm Clock 446 project report
Digital Alarm Clock 446 project reportDigital Alarm Clock 446 project report
Digital Alarm Clock 446 project report
 
Modulo n counter
Modulo n counterModulo n counter
Modulo n counter
 

Viewers also liked

46992316 la-guerra-espiritual
46992316 la-guerra-espiritual46992316 la-guerra-espiritual
46992316 la-guerra-espiritualkiko pdf
 
Oral Triclofos Sedation In Evaluation Of Young And Uncooperative Children In ...
Oral Triclofos Sedation In Evaluation Of Young AndUncooperative Children In ...Oral Triclofos Sedation In Evaluation Of Young AndUncooperative Children In ...
Oral Triclofos Sedation In Evaluation Of Young And Uncooperative Children In ...Dr. Jagannath Boramani
 
All Your Base Still Belong To Us Physical Penetration Testing Tales From The ...
All Your Base Still Belong To Us Physical Penetration Testing Tales From The ...All Your Base Still Belong To Us Physical Penetration Testing Tales From The ...
All Your Base Still Belong To Us Physical Penetration Testing Tales From The ...EC-Council
 
Redes sociales rafa
Redes sociales rafaRedes sociales rafa
Redes sociales rafaafartkd
 
MORTAR & MORE 2016
MORTAR & MORE 2016MORTAR & MORE 2016
MORTAR & MORE 2016Liz Dolan
 
Tarea seminario 2.Historia de la Odontología.
Tarea seminario 2.Historia de la Odontología.Tarea seminario 2.Historia de la Odontología.
Tarea seminario 2.Historia de la Odontología.Marta Díaz Pérez
 
การนำหลักสังคหวัตถุธรรมไปใช้ในการจัดสวัสดิการแก่สมาชิกของกองทุนสวัสดิการชุมชน...
การนำหลักสังคหวัตถุธรรมไปใช้ในการจัดสวัสดิการแก่สมาชิกของกองทุนสวัสดิการชุมชน...การนำหลักสังคหวัตถุธรรมไปใช้ในการจัดสวัสดิการแก่สมาชิกของกองทุนสวัสดิการชุมชน...
การนำหลักสังคหวัตถุธรรมไปใช้ในการจัดสวัสดิการแก่สมาชิกของกองทุนสวัสดิการชุมชน...Happy Sara
 
The Effect of Halal Signs and Symptoms on Consumers’ Purchase Intention in Mu...
The Effect of Halal Signs and Symptoms on Consumers’ Purchase Intention in Mu...The Effect of Halal Signs and Symptoms on Consumers’ Purchase Intention in Mu...
The Effect of Halal Signs and Symptoms on Consumers’ Purchase Intention in Mu...inventionjournals
 
Digital divide in south africa
Digital divide in south africaDigital divide in south africa
Digital divide in south africarefilwemakhoba
 
The functions of leadership in administrative institutions
The functions of leadership in administrative institutionsThe functions of leadership in administrative institutions
The functions of leadership in administrative institutionsinventionjournals
 
James Jackson Reume T1
James Jackson Reume T1James Jackson Reume T1
James Jackson Reume T1James Jackson
 
Solos dimov vladivostok_ekbpromo
Solos dimov vladivostok_ekbpromoSolos dimov vladivostok_ekbpromo
Solos dimov vladivostok_ekbpromoekbpromo
 

Viewers also liked (20)

spring bed 500 ribu
spring bed 500 ribuspring bed 500 ribu
spring bed 500 ribu
 
46992316 la-guerra-espiritual
46992316 la-guerra-espiritual46992316 la-guerra-espiritual
46992316 la-guerra-espiritual
 
Curso de español (1)
Curso de español (1)Curso de español (1)
Curso de español (1)
 
Oral Triclofos Sedation In Evaluation Of Young And Uncooperative Children In ...
Oral Triclofos Sedation In Evaluation Of Young AndUncooperative Children In ...Oral Triclofos Sedation In Evaluation Of Young AndUncooperative Children In ...
Oral Triclofos Sedation In Evaluation Of Young And Uncooperative Children In ...
 
All Your Base Still Belong To Us Physical Penetration Testing Tales From The ...
All Your Base Still Belong To Us Physical Penetration Testing Tales From The ...All Your Base Still Belong To Us Physical Penetration Testing Tales From The ...
All Your Base Still Belong To Us Physical Penetration Testing Tales From The ...
 
Redes sociales rafa
Redes sociales rafaRedes sociales rafa
Redes sociales rafa
 
18102016 mat
18102016 mat18102016 mat
18102016 mat
 
MORTAR & MORE 2016
MORTAR & MORE 2016MORTAR & MORE 2016
MORTAR & MORE 2016
 
Tarea seminario 2.Historia de la Odontología.
Tarea seminario 2.Historia de la Odontología.Tarea seminario 2.Historia de la Odontología.
Tarea seminario 2.Historia de la Odontología.
 
spring bed karakter
spring bed karakterspring bed karakter
spring bed karakter
 
spring bed lipat
spring bed lipatspring bed lipat
spring bed lipat
 
การนำหลักสังคหวัตถุธรรมไปใช้ในการจัดสวัสดิการแก่สมาชิกของกองทุนสวัสดิการชุมชน...
การนำหลักสังคหวัตถุธรรมไปใช้ในการจัดสวัสดิการแก่สมาชิกของกองทุนสวัสดิการชุมชน...การนำหลักสังคหวัตถุธรรมไปใช้ในการจัดสวัสดิการแก่สมาชิกของกองทุนสวัสดิการชุมชน...
การนำหลักสังคหวัตถุธรรมไปใช้ในการจัดสวัสดิการแก่สมาชิกของกองทุนสวัสดิการชุมชน...
 
Administrative Ethics
Administrative EthicsAdministrative Ethics
Administrative Ethics
 
ST155 catalogue
ST155 catalogueST155 catalogue
ST155 catalogue
 
The Effect of Halal Signs and Symptoms on Consumers’ Purchase Intention in Mu...
The Effect of Halal Signs and Symptoms on Consumers’ Purchase Intention in Mu...The Effect of Halal Signs and Symptoms on Consumers’ Purchase Intention in Mu...
The Effect of Halal Signs and Symptoms on Consumers’ Purchase Intention in Mu...
 
Digital divide in south africa
Digital divide in south africaDigital divide in south africa
Digital divide in south africa
 
The functions of leadership in administrative institutions
The functions of leadership in administrative institutionsThe functions of leadership in administrative institutions
The functions of leadership in administrative institutions
 
James Jackson Reume T1
James Jackson Reume T1James Jackson Reume T1
James Jackson Reume T1
 
Katharine Edson
Katharine EdsonKatharine Edson
Katharine Edson
 
Solos dimov vladivostok_ekbpromo
Solos dimov vladivostok_ekbpromoSolos dimov vladivostok_ekbpromo
Solos dimov vladivostok_ekbpromo
 

Similar to SSCCIP Final Presentation (The Spartans)

UAV Presentation
UAV PresentationUAV Presentation
UAV Presentationalex2neo
 
UAV Presentation
UAV PresentationUAV Presentation
UAV PresentationRuyyan
 
UNIT 4 & 5 - I nterfacing_Lecture7.pptx
UNIT 4 & 5 - I         nterfacing_Lecture7.pptxUNIT 4 & 5 - I         nterfacing_Lecture7.pptx
UNIT 4 & 5 - I nterfacing_Lecture7.pptxnaveen088888
 
Basics of mechatronics - Arduino tutorial
Basics of mechatronics - Arduino tutorialBasics of mechatronics - Arduino tutorial
Basics of mechatronics - Arduino tutorialManasShrivastava6
 
Starting with Arduino
Starting with Arduino Starting with Arduino
Starting with Arduino MajdyShamasneh
 
3D Mapping with LiDAR
3D Mapping with LiDAR3D Mapping with LiDAR
3D Mapping with LiDAREric Feldman
 
Training Report on embedded Systems and Robotics
Training Report on embedded  Systems and RoboticsTraining Report on embedded  Systems and Robotics
Training Report on embedded Systems and RoboticsNIT Raipur
 
Sensor and Actuators using Rasberry Pi controller
Sensor and Actuators using Rasberry Pi controllerSensor and Actuators using Rasberry Pi controller
Sensor and Actuators using Rasberry Pi controllerArsalanAthar
 
Industrial training report of embedded system and robotics
Industrial training report of embedded system and roboticsIndustrial training report of embedded system and robotics
Industrial training report of embedded system and roboticsPallavi Bharti
 
Microcontroller based Ultrasonic Radar (Microprocessors and Embedded Systems ...
Microcontroller based Ultrasonic Radar (Microprocessors and Embedded Systems ...Microcontroller based Ultrasonic Radar (Microprocessors and Embedded Systems ...
Microcontroller based Ultrasonic Radar (Microprocessors and Embedded Systems ...Tawsif Rahman Chowdhury
 
FAR/MARS Avionics CDR
FAR/MARS Avionics CDRFAR/MARS Avionics CDR
FAR/MARS Avionics CDRCade Walton
 
Analog to Digital Converters and Data Acquisition Systems
Analog to Digital Converters and Data Acquisition SystemsAnalog to Digital Converters and Data Acquisition Systems
Analog to Digital Converters and Data Acquisition SystemsMathivanan Natarajan
 
Introduction_to_Mechatronics_Chapter4.pdf
Introduction_to_Mechatronics_Chapter4.pdfIntroduction_to_Mechatronics_Chapter4.pdf
Introduction_to_Mechatronics_Chapter4.pdfBereket Walle
 
Digital logic-formula-notes-final-1
Digital logic-formula-notes-final-1Digital logic-formula-notes-final-1
Digital logic-formula-notes-final-1Kshitij Singh
 
Measurement of Temperature & calibration of LVDT
Measurement of Temperature & calibration of LVDTMeasurement of Temperature & calibration of LVDT
Measurement of Temperature & calibration of LVDTabdul mohammad
 
Rf controlled pick up and drop robot
Rf controlled pick up and drop robotRf controlled pick up and drop robot
Rf controlled pick up and drop robotAdityaBulbule1
 

Similar to SSCCIP Final Presentation (The Spartans) (20)

UAV Presentation
UAV PresentationUAV Presentation
UAV Presentation
 
UAV Presentation
UAV PresentationUAV Presentation
UAV Presentation
 
UNIT 4 & 5 - I nterfacing_Lecture7.pptx
UNIT 4 & 5 - I         nterfacing_Lecture7.pptxUNIT 4 & 5 - I         nterfacing_Lecture7.pptx
UNIT 4 & 5 - I nterfacing_Lecture7.pptx
 
Basics of mechatronics - Arduino tutorial
Basics of mechatronics - Arduino tutorialBasics of mechatronics - Arduino tutorial
Basics of mechatronics - Arduino tutorial
 
Starting with Arduino
Starting with Arduino Starting with Arduino
Starting with Arduino
 
3D Mapping with LiDAR
3D Mapping with LiDAR3D Mapping with LiDAR
3D Mapping with LiDAR
 
Obstacle avoiding robot(Lab report)
Obstacle  avoiding  robot(Lab report)Obstacle  avoiding  robot(Lab report)
Obstacle avoiding robot(Lab report)
 
Training Report on embedded Systems and Robotics
Training Report on embedded  Systems and RoboticsTraining Report on embedded  Systems and Robotics
Training Report on embedded Systems and Robotics
 
Sensor and Actuators using Rasberry Pi controller
Sensor and Actuators using Rasberry Pi controllerSensor and Actuators using Rasberry Pi controller
Sensor and Actuators using Rasberry Pi controller
 
Industrial training report of embedded system and robotics
Industrial training report of embedded system and roboticsIndustrial training report of embedded system and robotics
Industrial training report of embedded system and robotics
 
Radar Detector
Radar Detector Radar Detector
Radar Detector
 
Microcontroller based Ultrasonic Radar (Microprocessors and Embedded Systems ...
Microcontroller based Ultrasonic Radar (Microprocessors and Embedded Systems ...Microcontroller based Ultrasonic Radar (Microprocessors and Embedded Systems ...
Microcontroller based Ultrasonic Radar (Microprocessors and Embedded Systems ...
 
FAR/MARS Avionics CDR
FAR/MARS Avionics CDRFAR/MARS Avionics CDR
FAR/MARS Avionics CDR
 
Analog to Digital Converters and Data Acquisition Systems
Analog to Digital Converters and Data Acquisition SystemsAnalog to Digital Converters and Data Acquisition Systems
Analog to Digital Converters and Data Acquisition Systems
 
Lec08
Lec08Lec08
Lec08
 
Robo arm final 2 (2)
Robo arm final  2 (2)Robo arm final  2 (2)
Robo arm final 2 (2)
 
Introduction_to_Mechatronics_Chapter4.pdf
Introduction_to_Mechatronics_Chapter4.pdfIntroduction_to_Mechatronics_Chapter4.pdf
Introduction_to_Mechatronics_Chapter4.pdf
 
Digital logic-formula-notes-final-1
Digital logic-formula-notes-final-1Digital logic-formula-notes-final-1
Digital logic-formula-notes-final-1
 
Measurement of Temperature & calibration of LVDT
Measurement of Temperature & calibration of LVDTMeasurement of Temperature & calibration of LVDT
Measurement of Temperature & calibration of LVDT
 
Rf controlled pick up and drop robot
Rf controlled pick up and drop robotRf controlled pick up and drop robot
Rf controlled pick up and drop robot
 

SSCCIP Final Presentation (The Spartans)

  • 1. S.P.A.R.T.A.N. Space Planning and Research to Analyze Nuances
  • 7.
  • 8. Goals of the Project ● Design and build a rover to collect data samples and traverse the terrain ○ Collect and communicate data ■ Detect large changes in CO2 ■ Detect hot and cold temperature zones ■ Detect a magnetic field ■ Read RFID tags ■ Communicate data to a computer and graph it ○ Traverse ramps and avoid boulders in the playing field ○ Pick up data samples with a robotic arm and return them to the docking area
  • 9. List of Tools and Parts: Available: Arduino Uno and Mega Acrylic Supplies Around Program Bought: Servos Rock Crawler Pi Camera Battery for Pi Servo Shield Electromagnet
  • 11. Secondary Design ● Purchased a Rock Crawler chassis equipped with motors for movement ● Mounted an acrylic body on top of chassis ○ Microcontrollers and breadboards from which we ran our sensors and servos located inside ● Attached a robotic arm made from acrylic on top of the body ○ Run components on Arduino Uno ○ Implemented two servos to move the arm ○ Attached an electromagnet enclosed in acrylic to retrieve data samples ● Mounted sensors on the front, back, and bottom of the rover to gather data ○ Run sensors from an Arduino Mega (originally Raspberry Pi)
  • 12.
  • 13. Control System ● Turnigy 9-Channel Transmitter and Receiver used to control rover movements and arm components ○ Channel 1: Rover movement forward and backward ○ Channel 2: Rover movement left and right ○ Channel 4: Arm base movement left and right (20∘ each way) ○ Channel 5: Arm movement up and down (0∘ /45∘ /90∘ ) ○ Channel 6: Electromagnet switch (On/Off) ● Motors for rover movement attached directly into channels 1 and 2 of the receiver without adjustment ● Functions for channels 4-6 adjusted in the Arduino code based on the values transmitted by the controller Channel 4 x<1100 70∘ (Full Left) 1100 ≤ x < 1200 75∘ 1200 ≤ x < 1300 80∘ 1300 ≤ x < 1400 85∘ 1400 ≤ x < 1500 90∘ (Center) 1500 ≤ x < 1600 95∘ 1600 ≤ x < 1700 100∘ 1700 ≤ x < 1800 105∘ 1800 ≤ x 110∘ (Full Right) Channel 5 (Auxiliary-Pitch) N (0%) x ≤ 1100 0∘ 1 (50%) 1400 ≤ x < 1500 45∘ 2 (100%) 1800 ≤ x 90∘ Channel 6 x < 1100 Off x > 1800 On
  • 14. Guts of the Rover ● All sensors run on an Arduino Mega powered by a 9V battery ○ RFID-RC522 RFID Reader [Mounted on Bottom of Rover] ○ TMP36 Temperature Sensor [Front of Rover Near Ground] ○ K-30 10% CO2 Sensor (SE-0118) [Back of Rover] ○ Triple-Axis Magnetometer (HMC5883L) [Front of Rover Near Ground] ○ TCS230 Color Sensor with RGB LED [Mounted on Bottom of Rover] ● Servo motors and electromagnet for robotic arm run on an Arduino Uno powered by a 9V battery ○ Two 360∘ servo motors for arm movement ■ One servo moves arm’s base left and right ■ One servo moves arm up and down ○ Electromagnet attached to end of arm to pick up data samples (containing magnets) ● Camera run from Raspberry Pi mounted on front of rover to view data samples ● Xbee running on Arduino Mega to transfer data to computer through X-CTU ○ Temperature (∘ C, ∘ F, K), Magnetic Field (uT in x,y,z directions), Color Intensities, RFID Info, CO2 data (ppm)
  • 15. <CODE-->Movement> ● Attempt_1.0: ○ Four Servos at the top to rotate the degree of the base. ○ Four Servos at the bottom to move the rover back and straight. ○ ISSUE → 3D printer did NOT work. ● Attempt_2.0: ○ An RC car was bought without a controller. ○ A Turnigy 9x was supplied by SSCCIP. ○ We programed the 9x to work for the RC car.
  • 16. “Design_Movement_1.0” (Top-Down, High-Level) ● Initializations and Libraries : ○ #include : <Servo.h> ○ Objects: 8 control servo objects, 4 variables for the receiving channels, a couple of dummy variables. ● Set Up: ○ Attach the 8 servos. ○ Set the receiving channels to their pins. ● Main Loop( functions ): ○ void SetDegree(void) ○ void MoveTheBase(void)
  • 17. <Cont.> void SetDegree() - Receive values from the channel - Test if the value was received last call - .If true : return - If the value is low: move the servos to 0° - If the value is in the middle: move the servos to 45° - If the value is high: move the servos to 90° - Save the value for next call. void MoveTheBase() - Receive values from the channel - If the value is low: move the servos backwards - If the value is in the middle: stop moving the servos - If the value is high: move the servos forward
  • 18. “Design_Movemnet_2.0” (Top-Down, High-Level) ● Initializations and Libraries : ○ #include: ■ <varSpeedServo.h> // Servo Library that allows you to move it in different speeds. ○ Objects: ■ 2 servo object ■ 3 variables for the pins for the receiver channels, and some dummy variables. ■ One Variable for the electromagnet ● Set Up: ○ Connect the channels to their pins. ○ Set up the servos and the electromagnet to their pins ● Main Loop( functions ) ○ void moveArm(void) ○ Void moveBase(void) ○ void controlElectro(void)
  • 19. <Cont.> void MoveArm() - Receive values from the channel - Test if the value was received last call - .If true : return - If the value is low: move the servos to 0° - If the value is in the middle: move the servos to 45° - If the value is high: move the servos to 90° - Save the value for next call. void MoveBase() - Receive values from the channel - Move the base accordingly to values of that received. void controlElectro() - If channel is on : turn on the electromagnet - If the channel is off: turn off the electromagnet.
  • 20. <CODE-->Sensors> ● Attempt_1.0→( Raspberry Pi 3) : ○ Pros : use a Raspberry Pi 3 for sensing, storing, graphing, and sending data via Wifi. Great with power. ○ Cons : - It’s brand new, therefore most libraries are not comparable. - It kept failing and lost all the code and the data. ● Attempt_2.0→( Arduino a.k.a Emergency Plan) ○ Pros: - All the libraries are comparable. - It’s robust. ○ Used Xbee to transfer data wirelessly instead of wifi. ○ Cons: - Power supply.
  • 21. “Design_Senors_2.0” (Top-Down, High-Level) ● Initializations and Libraries : ○ #include : ■ <Wire.h> // ■ <Adafruit_Sensor.h> // Magnetometer ■ <Adafruit_HMC553_U.h>//Magnetometer ■ <kSeries.h> // CO2 ■ <MFRC522.h> // RFID ■ <SPI.h> // RFID ○ Objects: ■ Create object sensors when needed ■ Variables to hold pin numbers ■ Dummy variables to hold data coming from the sensors. ● Set Up: ○ Set up and turn on the Magnetometer ○ Init SPI bus ○ Display sensor details ○ Set up the RFID ○ Set up and turn on the color sensor ● Main Loop( functions ): ○ void TempSensor(void) ○ void magSensor(void) ○ bool RFID(void) ■ If true : Flash a light ○ void colorSensor()
  • 22. <Cont.> void tempSensor() - Get voltage from the sensor pin - Do the calculation to convert the voltage to celsius, fahrenheit, and kelvin - Send the info to the computer - If the temperature is higher than the last call, save it as the new high - If the temperature is lower than the last call, save the as the new low void magSensor() - Get the voltages from the sensor - Do the calculations and the conversations - Send the info to the computer void CO2_Sensor() - Read the Sensor - Send the info to the computer - If the CO2 value is higher than the last call, save it as the new high - If the CO2 is lower than the last call, save the as the new low
  • 23. <Cont.> void ColorSensor() - Read the red, green, and blue intensities - If red < green && green >= blue && red is low - Color is white - Turn LED to white - If blue < red && blue < green - Color is blue - Turn on LED to blue - If red < blue && red < green && green < red < green - 20 - Color is red - Turn LED on to red - If red < green && green < blue - Color is yellow - Turn LED on yellow - Turn off LED after delaying 500 miliseconds bool RFID() - If a card was read - Send the info of the card to the computer - Return true - Else return false
  • 24. Results Successes ● Sensors were able to retrieve data ○ Temperature sensor detected hot and cold zones ○ CO2 sensor detected large amount of CO2 near dry ice ○ Magnetometer detected large magnetic field ○ Color sensor detected colored areas (signified by RGB LED changing color to match colored zone) ○ RFID reader read all four tags ● Rover able to traverse all ramps ● Data transferred to computer through XBee communication Issues ● Electromagnet did not work for most of the competition ○ Power issues ○ Not able to retrieve data samples ● RFID sensor had difficulty reading ● Temperature Sensor was intermittent ● Needed to switch out 9V batteries powering the Arduinos often ● Rover started to lose power towards the end ○ Unable to drive in reverse