Git Product home page Git Product logo

appium-arduino-driver's Introduction

Appium Arduino Driver

This is an Appium driver for the Arduino Micro. It is currently not integrated as a first-party driver in the Appium server, but it can be run in standalone mode. It relies on Johnny Five.

It was designed as a proof-of-concept to show controlling an iPhone running iOS 13 with an Arduino Micro acting as a USB Mouse. (USB Mouse support is new in iOS 13.)

Installation

We assume you have an Arduino Micro with StandardFirmata installed on it. On a computer, ensure Node.js and NPM are installed, then clone this repo somewhere. Inside the repo, run:

npm install

Running the server

node .

Desired capabilities

The app capability should be a JSON string. Here's an example desired capability JSON object:

  {
    "automationName": "arduino'",
    "app": "Angry Birds",
    "newCommandTimeout": 3600
  }

Supported Appium/Webdriver protocol commands

Only 6 commands in the extensive Webdriver spec are available in this driver:

  • New Session (simply pass in the desired capability with a value as described above). This will set up access to the board and initial states.
  • Quit Session. This will reset pins to their initial state.
  • Move To. This is a touch action and expects two parameters, one named "x" and one named "y" corresponding to the relative coordinate you want to move the mouse to.
  • Touch press: This is a touch action that simulates a left button mouse down movement.
  • Touch release: This is a touch action that simulates a left button mouse up movement.
  • Wait: This is command run locally on the Arduino. It expects one integer parameter named "ms", representing the number of milliseconds to wait.

Sample projects

[@hugs] AppiumConf 2019 demo

This project is a fork of @jlipps's AppiumConf 2019 demo, which uses a Raspberry Pi to automate a homebrew drum machine built with a Circuit Playground.

appium-arduino-driver's People

Contributors

hugs avatar jlipps avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.