SlideShare a Scribd company logo
1 of 38
Download to read offline
Sentinel
The First Home Security Robot Powered by Android Things™
https://www.hackster.io/oscarsalguero/sentinel-8234b3
Oscar Salguero
@OscarSalguero
Agenda
● Demo
● Motivation
● Hardware
● Software
● Roadmap
● Tips
Demo
Video
Video
Motivation
● Home security cameras are expensive
● Most surveillance services have crazy high monthly fees
● Gotta have a camera on each room
● IP cameras are hackable
● Setup is complicated
● Can’t see anything from a WAN without DDNS
● OEM and 3rd party remote viewing apps are unreliable
Motivation
● Don’t talk to other smart home/IoT hardware
● Still use email to send you alerts
● Alert! A leaf moved! (notifications are irrelevant)
● No face detection nor facial recognition
● No image classification
● Can’t find your pet if it walked out of frame
Motivation
● Pets move from room to room or go outside
● Entertainment…? Throw a tennis ball to Fido from
anywhere!
● Check if your pets have food or water
● Keep an eye on the kids
● See if a delivery arrived
Motivation
Hardware
Rover 5 Platform
https://www.pololu.com/product/1535
Raspberry Pi 3, 32GB
SD Card with
Android Things ™
https://www.adafruit.com/product/3292
Adafruit DC and
Stepper Motor
HAT for RPi
https://www.adafruit.com/product/2348
Adafruit
16-Channel PWM
Servo HAT for RPi
https://www.adafruit.com/product/2327
Raspberry Pi
Camera Module
v2
https://www.adafruit.com/product/3099
https://www.sparkfun.com/products/
10335
Pan/Tilt Bracket
3D Printed Camera Mount
https://goo.gl/hMTwSb
8Bitdo NES30 Pro
Bluetooth Controller
http://www.8bitdo.com/n30pro-f30pro/
Android Phone
https://store.google.com/category/phones
● Stereo speakers
● USB Mic
● 30,000 mah Power bank
● Couple of plastic
expansion plates
● USB and barrel jack
cables, wires
● Standoffs, nuts, screws,
etc.
Other Stuff...
Software
Android... Android Everywhere!
● Android Studio 3.0 Beta
● Android Things ™
Developer Preview
● Antonio Zugaldia’s
Android Robocar Project
(Adafruit PWM and Motor
Hat Java Library)
http://androidrobocar.com
Firebase & Google Cloud
DC and Stepper Motor Hat Driver
// I2C Bus Name
public static final String I2C_DEVICE_NAME = "I2C1";
// Motor Hat Address
private static final int MOTOR_HAT_I2C_ADDRESS = 0x60;
// Motor Hat
private AdafruitMotorHat mMotorHat;
// Motors
private AdafruitDcMotor motorFrontLeft, motorFrontRight, motorBackLeft, motorBackRight;
https://github.com/zugaldia/android-robocar
DC and Stepper Motor Hat Driver
mMotorHat = new AdafruitMotorHat(I2C_DEVICE_NAME, MOTOR_HAT_I2C_ADDRESS);
motorFrontLeft = mMotorHat.getMotor(1);
motorBackLeft = mMotorHat.getMotor(2);
motorFrontRight = mMotorHat.getMotor(3);
motorBackRight = mMotorHat.getMotor(4);
private void moveForward() {
Log.d(LOG_TAG, "Moving forward.");
motorFrontLeft.run(AdafruitMotorHat.FORWARD);
motorFrontRight.run(AdafruitMotorHat.BACKWARD);
motorBackLeft.run(AdafruitMotorHat.BACKWARD);
motorBackRight.run(AdafruitMotorHat.FORWARD);
}
private void turnRight() {
Log.d(LOG_TAG, "Turning right.");
motorFrontLeft.run(AdafruitMotorHat.FORWARD);
motorFrontRight.run(AdafruitMotorHat.FORWARD);
motorBackLeft.run(AdafruitMotorHat.BACKWARD);
motorBackRight.run(AdafruitMotorHat.BACKWARD);
}
DC and Stepper Motor Hat Driver
16 Channel Servo HAT Driver
// Servo Hat Address
private static final int SERVO_HAT_I2C_ADDRESS = 0x41;
// Servo Hat
private AdafruitServoHat mServoHat;
// Servos
private AdafruitServo mTiltServo;
private AdafruitServo mPanServo;
https://github.com/RacZo/adafruit-16-channel-servo-hat-driver
16 Channel Servo HAT Driver
// Servo Hat initialization
mServoHat = new AdafruitServoHat(I2C_DEVICE_NAME, SERVO_HAT_I2C_ADDRESS);
// Variables to configure the servos according to their manufacturer specs
double minAngle = 20.0;
double maxAngle = 150.0;
double minPulseDurationRange = 0.7; // ms
double maxPulseDurationRange = 1.50; // ms
int frequency = 40;
// Add the servos to the hat in the order they are connected from index 0 to 15
mPanServo = new AdafruitServo(0, frequency);
mPanServo.setPulseDurationRange(minPulseDurationRange, maxPulseDurationRange);
mPanServo.setAngleRange(minAngle, maxAngle);
mPanServo.setAngle(SERVO_INITIAL_PAN_ANGLE);
mServoHat.addServo(mPanServo);
mTiltServo = new AdafruitServo(1, frequency);
...
mServoHat.addServo(mTiltServo);
…
// Add the servos to the hat in the order they are connected from index 0 to 15
mServoHat.rotateToAngle(mPanServo, 90);
mServoHat.rotateToAngle(mTiltServo, 90);
16 Channel Servo HAT Driver
Companion Android App
● See your pet from
anywhere!
● Remote Control
● Live feed (kind off)
● Motion and loud
sound alerts
● Image history &
management
Tips
Tips
● Draw, sketch or diagram your idea first
● Write down a list of materials and a list of
desirable features
● Research about the technologies such as
APIs, protocols, etc. you’ll need to achieve
the desired features, research about the
parts and materials before purchasing
them; pros/cons matter!
● Use Etcher to push Android Things image
to an SD Card
● Learn to love adb and make a command
cheat sheet
Tips
● Add speech-to-text help you debug stuff
● Run and analyze sample code (GitHub), ask
questions (forums, Stack Overflow), watch
how it is done (YouTube)
● Redundancy (if you can, buy more than 1
board)
● Learn about circuits, voltages and currents
beforehand and be mindful about power
requirements
● Use rechargeable batteries
● Always have a wired USB keyboard,
mouse and an HDMI cable at hand
● Try not to burn your fingers when soldering
headers (It hurts!)
The Road Ahead
Software Improvements
● Real time video & 2-way audio (Web RTC)
● Face detection and feature tracking
(OpenCV)
● Facial recognition (TF)
● Real time image classification (TF)
● Voice control (Google Voice Actions)
tinyLiDAR (HW + SW)
● Indoor mapping and navigation using
● Follow moving targets
● Autonomous patrolling
tinyLIDAR
tinyLIDAR
Questions?
This presentation is available at:
https://goo.gl/EgvWFd
Thank You!
Oscar Salguero
@OscarSalguero

More Related Content

Similar to Sentinel - The First Home Security Robot Powered by Android Things (DroidCon NYC 2017)

Introduction to Internet of Things Hardware
Introduction to Internet of Things HardwareIntroduction to Internet of Things Hardware
Introduction to Internet of Things HardwareDaniel Eichhorn
 
Programming objects with android
Programming objects with androidProgramming objects with android
Programming objects with androidfirenze-gtug
 
Pentesting Android Applications
Pentesting Android ApplicationsPentesting Android Applications
Pentesting Android ApplicationsCláudio André
 
Introduction Flutter for Create Multiplatform Apps
Introduction Flutter for Create Multiplatform AppsIntroduction Flutter for Create Multiplatform Apps
Introduction Flutter for Create Multiplatform AppsYatno Sudar
 
Android Programming made easy
Android Programming made easyAndroid Programming made easy
Android Programming made easyLars Vogel
 
Smartphone++
Smartphone++Smartphone++
Smartphone++mharkus
 
Playing with robots in golang
Playing with robots in golangPlaying with robots in golang
Playing with robots in golangSanket Sudake
 
Embedded Android Workshop at AnDevCon IV
Embedded Android Workshop at AnDevCon IVEmbedded Android Workshop at AnDevCon IV
Embedded Android Workshop at AnDevCon IVOpersys inc.
 
Embedded Android Workshop with Marshmallow
Embedded Android Workshop with MarshmallowEmbedded Android Workshop with Marshmallow
Embedded Android Workshop with MarshmallowOpersys inc.
 
Engineering and Industrial Mobile Application (APP) Development
Engineering and Industrial Mobile Application (APP) DevelopmentEngineering and Industrial Mobile Application (APP) Development
Engineering and Industrial Mobile Application (APP) DevelopmentLiving Online
 
Embedded Android Workshop at AnDevCon V
Embedded Android Workshop at AnDevCon VEmbedded Android Workshop at AnDevCon V
Embedded Android Workshop at AnDevCon VOpersys inc.
 
Autonomous Drone Development with Java and IoT
Autonomous Drone Development with Java and IoTAutonomous Drone Development with Java and IoT
Autonomous Drone Development with Java and IoTjavafxpert
 
Embedded Android Workshop with Lollipop
Embedded Android Workshop with LollipopEmbedded Android Workshop with Lollipop
Embedded Android Workshop with LollipopOpersys inc.
 
DroidCon Paris 2013 - Recap at the Mobile Innovations Dakar Meetup
DroidCon Paris 2013 - Recap at the Mobile Innovations Dakar MeetupDroidCon Paris 2013 - Recap at the Mobile Innovations Dakar Meetup
DroidCon Paris 2013 - Recap at the Mobile Innovations Dakar MeetupChristelle Scharff
 
.Net Gadgeteer
.Net Gadgeteer .Net Gadgeteer
.Net Gadgeteer Wade Zhu
 
The art of android hacking
The art of  android hackingThe art of  android hacking
The art of android hackingAbhinav Mishra
 
The art of android hacking by Abhinav Mishra (0ctac0der)
The art of  android hacking by Abhinav Mishra (0ctac0der)The art of  android hacking by Abhinav Mishra (0ctac0der)
The art of android hacking by Abhinav Mishra (0ctac0der)OWASP Delhi
 
KazHackStan Doing The IoT Penetration Testing - Yogesh Ojha
KazHackStan Doing The IoT Penetration Testing - Yogesh OjhaKazHackStan Doing The IoT Penetration Testing - Yogesh Ojha
KazHackStan Doing The IoT Penetration Testing - Yogesh OjhaYogesh Ojha
 
2019-12-11-OWASP-IoT-Top-10---Introduction-and-Root-Causes.pdf
2019-12-11-OWASP-IoT-Top-10---Introduction-and-Root-Causes.pdf2019-12-11-OWASP-IoT-Top-10---Introduction-and-Root-Causes.pdf
2019-12-11-OWASP-IoT-Top-10---Introduction-and-Root-Causes.pdfdino715195
 

Similar to Sentinel - The First Home Security Robot Powered by Android Things (DroidCon NYC 2017) (20)

Introduction to Internet of Things Hardware
Introduction to Internet of Things HardwareIntroduction to Internet of Things Hardware
Introduction to Internet of Things Hardware
 
Programming objects with android
Programming objects with androidProgramming objects with android
Programming objects with android
 
Pentesting Android Applications
Pentesting Android ApplicationsPentesting Android Applications
Pentesting Android Applications
 
Modular remote
Modular remoteModular remote
Modular remote
 
Introduction Flutter for Create Multiplatform Apps
Introduction Flutter for Create Multiplatform AppsIntroduction Flutter for Create Multiplatform Apps
Introduction Flutter for Create Multiplatform Apps
 
Android Programming made easy
Android Programming made easyAndroid Programming made easy
Android Programming made easy
 
Smartphone++
Smartphone++Smartphone++
Smartphone++
 
Playing with robots in golang
Playing with robots in golangPlaying with robots in golang
Playing with robots in golang
 
Embedded Android Workshop at AnDevCon IV
Embedded Android Workshop at AnDevCon IVEmbedded Android Workshop at AnDevCon IV
Embedded Android Workshop at AnDevCon IV
 
Embedded Android Workshop with Marshmallow
Embedded Android Workshop with MarshmallowEmbedded Android Workshop with Marshmallow
Embedded Android Workshop with Marshmallow
 
Engineering and Industrial Mobile Application (APP) Development
Engineering and Industrial Mobile Application (APP) DevelopmentEngineering and Industrial Mobile Application (APP) Development
Engineering and Industrial Mobile Application (APP) Development
 
Embedded Android Workshop at AnDevCon V
Embedded Android Workshop at AnDevCon VEmbedded Android Workshop at AnDevCon V
Embedded Android Workshop at AnDevCon V
 
Autonomous Drone Development with Java and IoT
Autonomous Drone Development with Java and IoTAutonomous Drone Development with Java and IoT
Autonomous Drone Development with Java and IoT
 
Embedded Android Workshop with Lollipop
Embedded Android Workshop with LollipopEmbedded Android Workshop with Lollipop
Embedded Android Workshop with Lollipop
 
DroidCon Paris 2013 - Recap at the Mobile Innovations Dakar Meetup
DroidCon Paris 2013 - Recap at the Mobile Innovations Dakar MeetupDroidCon Paris 2013 - Recap at the Mobile Innovations Dakar Meetup
DroidCon Paris 2013 - Recap at the Mobile Innovations Dakar Meetup
 
.Net Gadgeteer
.Net Gadgeteer .Net Gadgeteer
.Net Gadgeteer
 
The art of android hacking
The art of  android hackingThe art of  android hacking
The art of android hacking
 
The art of android hacking by Abhinav Mishra (0ctac0der)
The art of  android hacking by Abhinav Mishra (0ctac0der)The art of  android hacking by Abhinav Mishra (0ctac0der)
The art of android hacking by Abhinav Mishra (0ctac0der)
 
KazHackStan Doing The IoT Penetration Testing - Yogesh Ojha
KazHackStan Doing The IoT Penetration Testing - Yogesh OjhaKazHackStan Doing The IoT Penetration Testing - Yogesh Ojha
KazHackStan Doing The IoT Penetration Testing - Yogesh Ojha
 
2019-12-11-OWASP-IoT-Top-10---Introduction-and-Root-Causes.pdf
2019-12-11-OWASP-IoT-Top-10---Introduction-and-Root-Causes.pdf2019-12-11-OWASP-IoT-Top-10---Introduction-and-Root-Causes.pdf
2019-12-11-OWASP-IoT-Top-10---Introduction-and-Root-Causes.pdf
 

Recently uploaded

A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 

Recently uploaded (20)

A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 

Sentinel - The First Home Security Robot Powered by Android Things (DroidCon NYC 2017)

  • 1. Sentinel The First Home Security Robot Powered by Android Things™ https://www.hackster.io/oscarsalguero/sentinel-8234b3 Oscar Salguero @OscarSalguero
  • 2. Agenda ● Demo ● Motivation ● Hardware ● Software ● Roadmap ● Tips
  • 7. ● Home security cameras are expensive ● Most surveillance services have crazy high monthly fees ● Gotta have a camera on each room ● IP cameras are hackable ● Setup is complicated ● Can’t see anything from a WAN without DDNS ● OEM and 3rd party remote viewing apps are unreliable Motivation
  • 8. ● Don’t talk to other smart home/IoT hardware ● Still use email to send you alerts ● Alert! A leaf moved! (notifications are irrelevant) ● No face detection nor facial recognition ● No image classification ● Can’t find your pet if it walked out of frame Motivation
  • 9. ● Pets move from room to room or go outside ● Entertainment…? Throw a tennis ball to Fido from anywhere! ● Check if your pets have food or water ● Keep an eye on the kids ● See if a delivery arrived Motivation
  • 12. Raspberry Pi 3, 32GB SD Card with Android Things ™ https://www.adafruit.com/product/3292
  • 13. Adafruit DC and Stepper Motor HAT for RPi https://www.adafruit.com/product/2348
  • 14. Adafruit 16-Channel PWM Servo HAT for RPi https://www.adafruit.com/product/2327
  • 17. 3D Printed Camera Mount https://goo.gl/hMTwSb
  • 18. 8Bitdo NES30 Pro Bluetooth Controller http://www.8bitdo.com/n30pro-f30pro/
  • 20. ● Stereo speakers ● USB Mic ● 30,000 mah Power bank ● Couple of plastic expansion plates ● USB and barrel jack cables, wires ● Standoffs, nuts, screws, etc. Other Stuff...
  • 22. Android... Android Everywhere! ● Android Studio 3.0 Beta ● Android Things ™ Developer Preview ● Antonio Zugaldia’s Android Robocar Project (Adafruit PWM and Motor Hat Java Library) http://androidrobocar.com
  • 24. DC and Stepper Motor Hat Driver // I2C Bus Name public static final String I2C_DEVICE_NAME = "I2C1"; // Motor Hat Address private static final int MOTOR_HAT_I2C_ADDRESS = 0x60; // Motor Hat private AdafruitMotorHat mMotorHat; // Motors private AdafruitDcMotor motorFrontLeft, motorFrontRight, motorBackLeft, motorBackRight; https://github.com/zugaldia/android-robocar
  • 25. DC and Stepper Motor Hat Driver mMotorHat = new AdafruitMotorHat(I2C_DEVICE_NAME, MOTOR_HAT_I2C_ADDRESS); motorFrontLeft = mMotorHat.getMotor(1); motorBackLeft = mMotorHat.getMotor(2); motorFrontRight = mMotorHat.getMotor(3); motorBackRight = mMotorHat.getMotor(4);
  • 26. private void moveForward() { Log.d(LOG_TAG, "Moving forward."); motorFrontLeft.run(AdafruitMotorHat.FORWARD); motorFrontRight.run(AdafruitMotorHat.BACKWARD); motorBackLeft.run(AdafruitMotorHat.BACKWARD); motorBackRight.run(AdafruitMotorHat.FORWARD); } private void turnRight() { Log.d(LOG_TAG, "Turning right."); motorFrontLeft.run(AdafruitMotorHat.FORWARD); motorFrontRight.run(AdafruitMotorHat.FORWARD); motorBackLeft.run(AdafruitMotorHat.BACKWARD); motorBackRight.run(AdafruitMotorHat.BACKWARD); } DC and Stepper Motor Hat Driver
  • 27. 16 Channel Servo HAT Driver // Servo Hat Address private static final int SERVO_HAT_I2C_ADDRESS = 0x41; // Servo Hat private AdafruitServoHat mServoHat; // Servos private AdafruitServo mTiltServo; private AdafruitServo mPanServo; https://github.com/RacZo/adafruit-16-channel-servo-hat-driver
  • 28. 16 Channel Servo HAT Driver // Servo Hat initialization mServoHat = new AdafruitServoHat(I2C_DEVICE_NAME, SERVO_HAT_I2C_ADDRESS); // Variables to configure the servos according to their manufacturer specs double minAngle = 20.0; double maxAngle = 150.0; double minPulseDurationRange = 0.7; // ms double maxPulseDurationRange = 1.50; // ms int frequency = 40;
  • 29. // Add the servos to the hat in the order they are connected from index 0 to 15 mPanServo = new AdafruitServo(0, frequency); mPanServo.setPulseDurationRange(minPulseDurationRange, maxPulseDurationRange); mPanServo.setAngleRange(minAngle, maxAngle); mPanServo.setAngle(SERVO_INITIAL_PAN_ANGLE); mServoHat.addServo(mPanServo); mTiltServo = new AdafruitServo(1, frequency); ... mServoHat.addServo(mTiltServo); … // Add the servos to the hat in the order they are connected from index 0 to 15 mServoHat.rotateToAngle(mPanServo, 90); mServoHat.rotateToAngle(mTiltServo, 90); 16 Channel Servo HAT Driver
  • 30. Companion Android App ● See your pet from anywhere! ● Remote Control ● Live feed (kind off) ● Motion and loud sound alerts ● Image history & management
  • 31. Tips
  • 32. Tips ● Draw, sketch or diagram your idea first ● Write down a list of materials and a list of desirable features ● Research about the technologies such as APIs, protocols, etc. you’ll need to achieve the desired features, research about the parts and materials before purchasing them; pros/cons matter! ● Use Etcher to push Android Things image to an SD Card ● Learn to love adb and make a command cheat sheet
  • 33. Tips ● Add speech-to-text help you debug stuff ● Run and analyze sample code (GitHub), ask questions (forums, Stack Overflow), watch how it is done (YouTube) ● Redundancy (if you can, buy more than 1 board) ● Learn about circuits, voltages and currents beforehand and be mindful about power requirements ● Use rechargeable batteries ● Always have a wired USB keyboard, mouse and an HDMI cable at hand ● Try not to burn your fingers when soldering headers (It hurts!)
  • 34. The Road Ahead Software Improvements ● Real time video & 2-way audio (Web RTC) ● Face detection and feature tracking (OpenCV) ● Facial recognition (TF) ● Real time image classification (TF) ● Voice control (Google Voice Actions) tinyLiDAR (HW + SW) ● Indoor mapping and navigation using ● Follow moving targets ● Autonomous patrolling
  • 37. Questions? This presentation is available at: https://goo.gl/EgvWFd