All Projects → googlecreativelab → Paper Signals

googlecreativelab / Paper Signals

Licence: apache-2.0
Build your own voice controlled object.

Labels

Projects that are alternatives of or similar to Paper Signals

Arduino Homekit Esp8266
Native Apple HomeKit accessory implementation for the ESP8266 Arduino core.
Stars: ✭ 545 (-22.7%)
Mutual labels:  arduino
Cartreader
A shield for the Arduino Mega that can back up video game cartridges.
Stars: ✭ 590 (-16.31%)
Mutual labels:  arduino
Xod
XOD IDE
Stars: ✭ 639 (-9.36%)
Mutual labels:  arduino
Minicore
Arduino hardware package for ATmega8, ATmega48, ATmega88, ATmega168, ATmega328 and ATmega328PB
Stars: ✭ 546 (-22.55%)
Mutual labels:  arduino
Universal Arduino Telegram Bot
Use Telegram on your Arduino (ESP8266 or Wifi-101 boards)
Stars: ✭ 569 (-19.29%)
Mutual labels:  arduino
Orsserialport
Serial port library for Objective-C and Swift macOS apps
Stars: ✭ 609 (-13.62%)
Mutual labels:  arduino
Guislice
GUIslice drag & drop embedded GUI in C for touchscreen TFT on Arduino, Raspberry Pi, ARM, ESP8266 / ESP32 / M5stack using Adafruit-GFX / TFT_eSPI / UTFT / SDL
Stars: ✭ 534 (-24.26%)
Mutual labels:  arduino
Brutal
Payload for teensy like a rubber ducky but the syntax is different. this Human interfaes device ( HID attacks ). Penetration With Teensy . Brutal is a toolkit to quickly create various payload,powershell attack , virus attack and launch listener for a Human Interface Device ( Payload Teensy )
Stars: ✭ 678 (-3.83%)
Mutual labels:  arduino
Arduinojson
📟 JSON library for Arduino and embedded C++. Simple and efficient.
Stars: ✭ 5,456 (+673.9%)
Mutual labels:  arduino
Gxepd
A simple E-Paper display library with common base class and separate IO class for Arduino.
Stars: ✭ 617 (-12.48%)
Mutual labels:  arduino
Esp Dash
A blazing fast library to create a functional dashboard for ESP8266 and ESP32
Stars: ✭ 548 (-22.27%)
Mutual labels:  arduino
Async Mqtt Client
📶 An Arduino for ESP8266 asynchronous MQTT client implementation
Stars: ✭ 555 (-21.28%)
Mutual labels:  arduino
Sonoff Mqtt Ota Arduino
Provide ESP8266 based itead Sonoff with Web, MQTT and OTA firmware using Arduino IDE - Now EOL
Stars: ✭ 617 (-12.48%)
Mutual labels:  arduino
Platformio Core
PlatformIO is a professional collaborative platform for embedded development 👽 A place where Developers and Teams have true Freedom! No more vendor lock-in!
Stars: ✭ 5,539 (+685.67%)
Mutual labels:  arduino
Haswitchplate
LCD touchscreen for Home Automation
Stars: ✭ 666 (-5.53%)
Mutual labels:  arduino
Esphome Core
🚨 No longer used 🚨 - The C++ framework behind ESPHome
Stars: ✭ 545 (-22.7%)
Mutual labels:  arduino
Wrmhl
⚡️ Super fast communication beetwen Unity3D and Arduino. Create Interactive experiences in a minute ⏱
Stars: ✭ 601 (-14.75%)
Mutual labels:  arduino
Arduino Mqtt
MQTT library for Arduino
Stars: ✭ 685 (-2.84%)
Mutual labels:  arduino
Splitflap
DIY split-flap display
Stars: ✭ 670 (-4.96%)
Mutual labels:  arduino
Taskscheduler
Cooperative multitasking for Arduino, ESPx and STM32 microcontrollers
Stars: ✭ 613 (-13.05%)
Mutual labels:  arduino

Paper Signals

Paper Signals is a Voice Experiment that lets you make little voice controlled objects that track simple things, like weather. You can build any of the example Paper Signals we have on g.co/papersignals, or use this repo to make your own Custom Signal.

PaperSignals

This is an experiment, not an official Google product. We will do our best to support and maintain this experiment but your mileage may vary.

Technology

Paper Signals is built on Actions on Google, the platform that allows you to make things for the Google Assistant and the Google Home. It uses Dialogflow to handle understanding what the user says, Firebase Cloud Functions and Firebase Database for backend code and storing data, and Arduino for programming the electronics.

This repo contains the Arduino files used to make API calls and move servos. This lets users set up their own individual signals using the same Firebase and Actions backend that our pre-made examples use.

Instructions for how to set up one of the pre-made, example signals can be found at g.co/papersignals (including a more detailed explanation for setting up the electronics). Below in this README, we include instructions on how to make a Custom Signal and set up a Custom Intent.

Custom Intents

Custom Intents allow you to program your Paper Signal to track anything with a few lines of code and voice commands. Creating and programming a custom intent can be done in 4 steps.

  1. Open the Paper Signals code in Arduino and use the tabs to open the APICalls.h file.

  2. Give your custom intent a name and replace the text “YOUR_CUSTOM_INTENT_NAME” with your custom intent’s name! Setting Custom Intent Name

  3. Use the tabs on the top of the Arduino Software to open the APICalls.cpp file.

  4. Find the function called CustomExecution() Find CustomExecution()

  5. Any code written in this function will run when you ask Paper Signals to run your custom intent. The variable CustomIntentData is a string that represents any parameter you gave your custom intent.

  6. To run your custom intent, open Paper Signals and say “Talk to Paper Signals”, then “Create a new Signal called Custom Signal.” Once you have that created, say “set my Custom Signal to a custom intent named

    • Example: “Set my Custom Signal to a custom intent named power.” In this example, Custom Signal is the signal name and Power is the custom intent name.
  7. To set a parameter for your custom intent to use, say: “Set the custom Parameter for Custom Signal to

    • Example: set the custom parameter for Custom Signal to Fast. In this example, Custom Signal’s custom intent is going to use Fast as a custom Parameter

Programming Your Custom Intent Functions

You will usually want to move servos and check online APIs with your custom intents, so there are 2 chunks of very useful code to understand.

  • Getting API Data

    • The code below shows the standard Paper Signals boilerplate for grabbing data from a remote API. This particular examples shows how we get rocket launch times as a string!API Boilerplate
  • Moving Servos

    • Paper Signals has a function for moving a servo with default settings. The position argument of this function takes an angle between 0 and 180 (This is the angle that the servo will move to), and speed takes an integer. Speed is actually the amount of time spent on each single angle of the servo. So a lower speed value will make the servo move faster. define MoveServoToPosition()
    • The example below moves the servo to 20 degrees, spending 10ms on each degree between the angle the servo is started at and the destination. Use MoveServoToPosition()

Contributors

Made by Isaac Blankensmith, Dylan Fashbaugh, Jacob Keith, and James DeVito with Smooth Technology and friends at the Google Creative Lab.

Other Contributors

License

Copyright 2017 Google Inc. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Final Thoughts

We encourage open sourcing projects as a way of learning from each other. Please respect our and other creators’ rights, including copyright and trademark rights when present, when sharing these works and creating derivative work. If you want more info on Google's policy, you can find that here.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].