{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Arduino Analog Example\n",
    "\n",
    "This example shows how to read out analog values on Arduino analog pins. Users can either wire the test pins, or use the PYNQ shield. \n",
    "\n",
    "For this notebook, a PYNQ Arduino shield is used. The grove joystick is connected to group A1, while a grove potentiometer is connected to group A4 on this shield."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "# Make sure the base overlay is loaded\n",
    "from pynq import Overlay\n",
    "Overlay(\"base.bit\").download()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 1. Instantiate individual analog controller\n",
    "In this example, connect the grove joystick to group A1."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "from pynq.iop import Arduino_Analog\n",
    "from pynq.iop import ARDUINO\n",
    "from pynq.iop import ARDUINO_GROVE_A1\n",
    "from pynq.iop import ARDUINO_GROVE_A4\n",
    "\n",
    "analog1 = Arduino_Analog(ARDUINO,ARDUINO_GROVE_A1)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 2. Read voltage value out\n",
    "\n",
    "Read out the individual analog voltage values. The voltage (volts) is in the range of [0.0, 3.3]."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[0.6403, 0.6848]"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "analog1.read()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 3. Read raw value out\n",
    "\n",
    "Read out the individual raw values. Since the XADC is 16-bit, the raw value is in the range of [0, 65535]."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "12601"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "analog1.read_raw()[0]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 4. Logging multiple sample values\n",
    "\n",
    "### Step 1: Starting logging once every 100 milliseconds\n",
    "Once the interval is set, users can change the analog values.\n",
    "\n",
    "For example, if the grove potentiometer is used, move the slider back and forth slowly.\n",
    "If the joy stick is used, rotate the joy stick slowly."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "from time import sleep\n",
    "\n",
    "analog1.set_log_interval_ms(100)\n",
    "analog1.start_log()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": true
   },
   "source": [
    "### Step 2: Get the log\n",
    "Stop and get the log whenever is done.\n",
    "\n",
    "The log is a nested list, where each list inside log records the samples for one channel."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "log1 = analog1.get_log()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Step 3. Plot values over time\n",
    "The voltage values can be logged and displayed."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\nPL+UyL5Puq8k/SzaGCEiCUSvXOcDByT5BdFimNk9QA93v7wZ8zAH+IO717kJSjJDV+IicczsB9H+\n3V2Ae4GXWmIAN7PB1W0fZnY8cAWRKpZs5uEUM+sRrU4ZQ6Q6LHTDMoSZgrhIXdcQ6VO9hEhD7E+a\nNztJ5QMvmNk2IvX8/8fdX85yHgYTqSbaCPwMuMDdEzVcS4aoOkVEJMR0JS4iEmJts7kxM9Nlv4hI\nE7h7wvsesn4l3ty3qGb7NWHChGbPg8qsMqvM4S5zfVSdIiISYgriIiIhpiCeYSUlJc2dhaxTmfcP\nKnPLkNUuhmbm2dyeiEhrYGZ4S2nYFBGR9FEQFxEJMQVxEZEQUxAXEQkxBXERkRBTEBcRCTEFcRGR\nEFMQFxEJMQVxEZEQazCIR596/b6ZfWRmC8zsl0nS/cbMlpjZPDMbkv6siohIvAbHE3f3XWY2zN2/\nNrM2wGwzO9HdY09AN7MzgCJ3P9TMTgAeAoZmLtsiIgIpVqe4+9fRyQOin9kYl2QEMDWa9n2gwMx6\npCuTIiKSWEpB3MxyzOwjYA1Q5u4L45L0BlYE3q+KzhMRkQxK9Uq8yt3/F9AHOMXMijObLRERSUWj\nnrHp7lvMbCZwHPB2YNEqoG/gfZ/ovDpKS0tj0yUlJS1yfF4RkeZUVlZGWVlZSmkbHE/czLoDe9x9\ns5l1BP4fMNHd3wykORO4zt3PMrOhwAPuXqdhU+OJi4g0Xn3jiadyJX4Q8KSZGZHql6fc/U0zuwZw\nd5/i7n8xszPN7HNgO3B52nIvIiJJ6ck+IiItnJ7sIyLSSimIi4iEmIK4iEiIKYiLiISYgriISIgp\niIuIhJiCuIhIiCmIi4iEmIK4iEiIKYiLiISYgriISIgpiIuIhJiCuIhIiCmIi4iEmIK4iEiIKYiL\niISYgriISIgpiIuIhJiCuIhIiCmIi4iEmIK4iEiIKYiLiISYgriISIgpiIuIhJiCuIhIiDUYxM2s\nj5nNMrMFZjbfzP4tQZpiM9tkZh9GX3dkJrsiIhLUNoU0lcAN7j7PzPKAuWb2mrsvikv3jrufm/4s\niohIMg1eibv7GnefF53eBnwK9E6Q1NKcNxERaUCj6sTNbAAwBHg/weJ/MbN5ZjbTzL6ZhryJiEgD\nUqlOASBalfIn4ProFXnQXKCfu39tZmcAfwYGpS+bIiKSSEpB3MzaEgngT7n7i/HLg0Hd3f9qZr83\ns67uviE+bWlpaWy6pKSEkpKSJmRbRKT1Kisro6ysLKW05u4NJzKbCqx39xuSLO/h7muj08cDz7n7\ngATpPJXtiYhIDTPD3RO2OzZ4JW5mJwIjgflm9hHgwO1Af8DdfQpwoZldC+wBdgA/SlfmRUQkuZSu\nxNO2MV2Ji4g0Wn1X4rpjU0QkxBTERURCTEFcRCTEFMRFREJMQVxEJMQUxEVEQkxBXEQkxBTERURC\nTEFcRCTEFMRFREJMQVxEJMQUxEVEQkxBXEQkxBTERURCTEFcRCTEFMRFREJMQVxEJMQUxEVEQkxB\nXEQkxBTERURCTEFcRCTEFMRFREJMQVxEJMQUxEVEQkxBXEQkxBoM4mbWx8xmmdkCM5tvZv+WJN1v\nzGyJmc0zsyHpz6qIiMRrm0KaSuAGd59nZnnAXDN7zd0XVScwszOAInc/1MxOAB4ChmYmyyIiUq3B\nK3F3X+Pu86LT24BPgd5xyUYAU6Np3gcKzKxHmvMqIiJxGlUnbmYDgCHA+3GLegMrAu9XUTfQi4hI\nmqUcxKNVKX8Cro9ekYuISDNLpU4cM2tLJIA/5e4vJkiyCugbeN8nOq+O0tLS2HRJSQklJSUpZlVE\nZP9QVlZGWVlZSmnN3RtOZDYVWO/uNyRZfiZwnbufZWZDgQfcvU7Dppl5KtsTEZEaZoa7W8JlDQVV\nMzsReAeYD3j0dTvQH3B3nxJN91vg+8B24HJ3/zDBuhTERUQaaZ+CeJozoiAuItJI9QVx3bEpIhJi\nCuIiIiGmIC4iEmIK4iIiIaYgLiISYgriIiIhpiAuIhJiCuIiIiGmIC4iEmIK4iIiIaYgLiISYgri\nIiIhpiAuIhJiCuIiIiGmIC4iEmIK4iIiIaYgLiISYgriIiIhpiAuIhJiCuIiIiGmIC4iEmIK4iIi\nIaYgLiISYgriIiIhpiAuIhJiDQZxM3vUzNaa2cdJlheb2SYz+zD6uiP92RQRkUTappDmceBBYGo9\nad5x93PTkyUREUlVg1fi7v4esLGBZJae7IiISGOkq078X8xsnpnNNLNvpmmdIiLSgFSqUxoyF+jn\n7l+b2RnAn4FByRKXlpbGpktKSigpKUlDFkREWo+ysjLKyspSSmvu3nAis/7Ay+5+dApplwLHuvuG\nBMs8le2JiEgNM8PdE1Zbp1qdYiSp9zazHoHp44l8MdQJ4CIikn4NVqeY2dNACdDNzJYDE4D2gLv7\n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\nv0Dq+ynZaspMpCrhGOB37n4Mkd5Yt9K6j/PBwM+A/kAvIlfkI2nFZa5HiytjtoL4KqBf4H2f6LxW\nJfpT80/AU+7+YnT22upxZMysJ7CuufKXAScC55rZF8AzwKlm9hSwphWXeSWwwt3/J/r+eSJBvTUf\n5+OA2e6+wd33Av8FfIfWXeZqycq4CugbSNdsMS1bQTx2w5CZtSdyw9BLWdp2Nj0GLHT3XwfmvQSM\njU6PAV6M/1BYufvt7t7P3Q8mckxnufto4GVab5nXAivMbFB01nBgAa34OAOfAUPNrEO08W44kYbs\n1lhmo/avymRlfAm4ONpLZyBwCPBBtjJZi7tn5QV8n8jJsAS4NVvbzWL5TgT2AvOAj4APo2XuCrwR\nLftrQGFz5zVD5S8GXopOt+oyE+mR8vfosX4BKNgPynwzkS+rj4k08LVrbWUGngZWA7uI1P9fDnRJ\nVkYiPVU+J9KJ4fTmyrdu9hERCTE1bIqIhJiCuIhIiCmIi4iEmIK4iEiIKYiLiISYgriISIgpiIuI\nhJiCuIhIiCmIi4iEmIK4iEiIKYiLiISYgriISIgpiIuIhJiCuIhIiCmIi4iEmIK4iEiIKYiLiISY\ngriISIgpiIuIhJiCuIhIiCmIi4iEmIK4iEiIKYiLiISYgriISIgpiIuIhJiCuIhIiCmIi4iEmIK4\niEiIKYiLiISYgriISIgpiIuIhFjb5s5AtnTs2HHNzp07ezR3PkREGqtDhw5rd+zY0TPRMnP3bOen\nWZiZ7y9lFZHWxcxwd0u0TNUpIiIhpiAuIhJiCuIiIiGmIC4iEmIK4vuZa6+9lrvuuiut61y3bh2n\nnHIKBQUF3HzzzVnZZkPOPPNMnnrqqQbTDRw4kFmzZmUhR/If//Ef/OQnP0nrOnfs2MFZZ51Fly5d\nGDlyZFa22ZCrrrqKe+65p8F0J598MlOnTt33Dbr7fvGKFLXl2bZtmw8YMMCffvrp2LytW7d6v379\n/Pnnn2/GnKVu0qRJfsEFFzTb9ktLS3306NFN+uyAAQP8zTffTHOOwmPUqFF++eWX15pXVlbm3bp1\n8zVr1jRTrlL3+OOP+3e+8x2vqqpqlu0/8sgjXlJS0qTPnnTSSf7kk0+mlDYavxLGtv2mn/i+qFi6\nlCfGj6dq1Spyevdm7KRJ9B84MC3rzs3N5eGHH2bUqFGcfvrpdOvWjZtvvpnjjz+e888/Py3byLSK\nigq++c1vNnc2Wp2rr76HxYt31pk/aFAHpky5NS3b+PWvf82RRx7Jm2++yfDhw9m1axdXX301999/\nPz16tPzbKioqKhg8eDBmCXvfZZy7N9u2a2Vif3jRxCvxZV984TcWFfk2cAffBn5jUZEv++KLJq0v\nmcsvv9wvueQSLysr8+7du/u6deuSpt24caOfffbZfuCBB3rXrl397LPP9pUrV7q7+4YNG7xPnz7+\nyiuvuHvkSv+QQw7xp556yt3dx44d6+PHj3d39/Xr1/vZZ5/thYWF3rVrVz/llFOSbnP27Nn+7W9/\n2wsLC/3444/3v/3tb7H1tWvXztu3b+/5+fkJr2qD23R3nzJlih9yyCHerVs3HzFihH/55Zfu7n7d\nddf5jTfeWOuz5557rj/wwAPu7n7PPfd47969PT8/3w877DCfNWuWv/rqq96+fXtv37695+Xl+ZAh\nQ9zdvaSkxB999NFa2zz88MM9Pz/fjzjiCP/oo4/cvfaV+MKFC33gwIE+Y8aMpPshm4qLJ3j0tKv1\nKi6ekNbt/PGPf/SDDz7Yt2/f7rfeequfeeaZSdNWVVX5hRde6D179vQuXbr4sGHD/NNPP3V39127\ndvlRRx3lf/jDH9zdvbKy0ocOHep33323u7vfcccdsav+r7/+2i+99FLv1q2bFxYW+gknnOBfffVV\nwm0uWLDAi4uLvbCw0I8++mifOXOmu7v/4he/8Pbt23u7du08Pz/fp06dWuezwW26u7/wwgt+xBFH\neJcuXXz48OH+2Wefubv73Xff7T/60Y9qffbaa6/1m266yd0jV9wDBgzw/Px8Lyoq8meffdbnz5/v\nHTp08LZt23peXp4feOCB7h75dTNx4sTYep5//nkfMmSId+7c2Q899FB//fXX3b32lfiqVav8yCOP\njJ3r8ajnSrzZg2u2Xk0N4qUjR8YCuAcCeenIkU1aXzIbN270gw46yLt3797gT6yvvvrKX3jhBd+5\nc6dv27bNL7roIj/vvPNiy1977TU/6KCDfN26dX7llVf6RRddFFsWDKi33XabX3vttb53716vrKz0\n9957L+H2NmzY4F26dPHp06f73r17/ZlnnvEuXbr4hg0b6qwzkeDyN99807t37+7z5s3z3bt3+7hx\n42JfHh988IH37t079rn169d7bm6u//Of//TPPvvM+/btG/uJX1FR4V9Ev0gTVacEg/hzzz3nffr0\n8blz57q7e3l5uS9fvtzda4L43LlzvV+/fv6Xv/yl3n2fTdkK4u7uF154oZ977rnevXt3X7VqVdJ0\nVVVV/uSTT/r27dt9165dPm7cOD/uuONiy//xj394165dffHixV5aWuonnXRSrKojGFB/97vf+Xnn\nnee7du3yqqoqnzt3rm/fvr3O9nbv3u0DBw70yZMne2Vlpb/xxhuel5fn5eXlddaZSHD5woULPS8v\nz8vKyryystJ/+ctf+uDBg72ystJXrlzp+fn5vnXr1th2u3Xr5vPnz/ctW7Z4QUFBbJtr1qyJfXE9\n8sgjPmzYsFrbDAbx2bNne2Fhob/11lvu7r5y5UpfvHixu9cE8c8//9wPOeQQf/zxx5OWo74grobN\nBlStWkVu3LxcoGr16rRup7CwkCOOOIIdO3Zw3nnn1Zu2a9eunHfeeRxwwAHk5uZy22238fbbb8eW\nn3baafzwhz9k+PDhvPrqqzz00EMJ19OuXTu+/PJLli5dSps2bTjxxBMTpps5cyaDBg3i0ksvJScn\nh4svvpjDDjuMl19+udHlfPrpp7niiiv41re+Rbt27bj77rv57//+b5YvX863v/1tCgoKePPNNwGY\nMWMGJSUldO/enTZt2rB7924++eQTKisr6devHwNTrNJ69NFHueWWWzjmmGMAOPjgg+nbt29s+Tvv\nvMOIESOYNm0aZ5xxRqPL1Br87ne/Y9asWUyYMIFevXolTWdmXHbZZXTq1In27dtz55138uGHH7Jj\nxw4Ajj76aG699VZGjBjBgw8+yLRp0xJWN7Rr147169ezePFizIxjjjmGTp061Uk3e/Zs9uzZw403\n3kibNm0YPnw4Z5xxBjNmzGh0GZ999llGjBhBcXExbdq04dZbb2Xz5s28//779O7dm6FDh/L8888D\nkXO+T58+HHnkkQDk5OQwf/58du3aRY8ePTjssMNS2uZjjz3G1VdfTUlJCQC9e/fm0EMPjS2fP38+\nw4cP55577mHs2LGNLhOod0qDcnr3ZnvcvO1ATj0nelNMmzaNiooKvvvd73LLLbfE5q9YsYL8/Hzy\n8/Pp3LkzEGmRv+aaaxgwYACFhYUUFxezadOm6l8cQKSF/JNPPmHs2LF06dIl4TZvvvlmioqKOP30\n0znkkEO49957E6ZbvXo1/fv3rzWvf//+rFq1qtHljF9Xbm4u3bp1i61r9OjRTJs2LbZPRo8eDUBR\nUREPPPAApaWl9OjRg0svvZQ1a9aktM0VK1ZQVFSUdPnDDz/MiSeeyMknn9zo8rQW3/jGN+jevXut\nto2qqqrYede5c2fWrFlDVVUVt9xyC0VFRRQWFsYC0vr162OfGzNmDOXl5Zxzzjl1zptqY8eO5bvf\n/S4XXXQRffv25fbbb6eqqqpOutWrV9OvX79a89J17pkZffr0ia3rsssui51706dPj517+fn5PPPM\nM/z2t7+lZ8+enHvuuSxZsiSlbTZ07k2bNo0BAwY0eOFWHwXxBoydNIkJRUWxQL4dmFBUxNhJk9K2\njXXr1nHDDTfwyCOP8NBDD/HHP/6R2bNnA9C3b1+2bt3K1q1b2bJlCwD/+Z//yZIlS/j73//Opk2b\neOeddwBiQbyqqoqrr76aMWPG8Pvf/54vvvgi4Xbz8vKYPHky5eXlvPTSS9x333289dZbddL16tWL\nZcuW1Zq3fPlyevfu3eiy9urVi4qKitj77du389VXX8XWNXr0aF588UU+/vhjFi1axA9+8INY2osv\nvph333039vmf//znAA02LPXt25fy8vKkyx966CGWL1/ODTfc0OjytGY5OTmx827Lli307NmTqVOn\n8uqrr1JWVsamTZv4/PPPAWpdQFx77bWcd955vPLKK3zwwQcJ192uXTvuvPNOFi5cyHvvvccLL7zA\n9OnT66Tr1asXK1asqDUvXeeeu7Ny5crYus4//3zmzp3LwoUL+etf/1qry+L3vvc9Xn/9ddasWUNR\nURH/+q//Cuz7uTdp0iQ6d+7MyJEja+3DxlAQb0D/gQMZ9/rrTB45kgnDhjF55EjGvf562nqnAPz0\npz/l/PPP55RTTqFnz57ce++9XHnllezZsydh+q1bt9KxY0c6d+7Mhg0bKC0trbX8rrvuIicnh8ce\ne4ybbrqJ0aNHJzxBZs6cGTvB8vPzadu2LTk5dU+JM888kyVLljBjxgz27t3Ls88+y6effsrZZ5/d\n6LJecsklPP7443z88cfs2rWL22+/naFDh8autnr37s2xxx7L6NGjueCCCzjggAMAWLx4MW+99Ra7\nd++mffv2dOzYMZbXHj16sGzZsqT/BFdeeSWTJ0/mww8/BKC8vLxWYMjPz+fVV1/lnXfe4bbbbmt0\nmTJl0KAOFBeX1nkNGtSh2fK0detWDjjgALp06cL27du5/fbbay1//PHHWbBgAU888QT33Xcfo0aN\nilW1BL311lssWLAAdycvL4927dolPPe+853v0LZtW+677z4qKyuZNWsWf/3rX7n44osbnfeLLrqI\nl156iXfeeYfKykp+9atf0blzZ0444QQAOnXqxIgRI7jkkks46aST6NkzMmjgmjVreOWVV9ixYwdt\n27YlNze31rm3cuVKKisrE27ziiuu4JFHHuHtt9/G3Vm1alWtq/j27dvz/PPPs3HjRsaOHdu0QJ6s\nsry1vWih/cT//Oc/e+/evX3z5s215g8fPtzvuOOOhJ9ZvXq1l5SUeF5eng8ePNinTJniOTk5vnfv\nXp87d6537do11ui3d+9eP+mkk/yXv/ylu9duZLz//vt9wIABnpeX53379vW77roraT5nz57txx57\nrBcWFvpxxx0X653iHulZk2rDprv7ww8/7EVFRd6tWzc/55xz6jSkPfXUU56Tk+Nvv/12bN7HH3/s\nxx9/vHfu3Dn2uepeLV999ZWfdNJJ3qVLFz/22GPd3X3YsGG1eqc8/PDDPnjwYM/Pz/ejjjrK582b\n5+7uAwcOjPVO2bBhgw8ZMsTvvPPOpGVpzYL7IpmtW7f6Oeec4/n5+T5w4ECfOnWq5+TkeEVFhS9b\ntsy7devmH3zwQSz9hRde6D/5yU/cvXYj47Rp03zQoEGen5/vBx10kN9www1J+3p/8sknfvLJJ3tB\nQYEfddRRsZ5X8etMJFHvlMMPP9y7dOnip556qi9atKhW+rfeesvNzKdPnx6bt3LlSj/llFO8sLAw\n9rnqXi27du3yM88807t27eoHHXSQuyfunXLUUUd5fn6+Dxo0KLaPTz755Fgnhh07dvjw4cP9yiuv\nTFgO6mnY1FC0knFjxozh0EMP5Y477kgp/XvvvceoUaPqVOGINNYvfvELvvrqq6SN+/GWLVvG0Ucf\nzdq1a+nYsWOGc5c6DUUrzaayspLPPvss5Z4ke/bs4YEHHuCqq67KcM6ktXN3Fi5cmPK5V1VVxeTJ\nk7n00ktbVABviIK4ZNRBBx1E165dueCCCxpMu2jRIrp06cLatWu5/vrrs5A7ac2GDBnC+vXrueKK\nKxpMu2XLFgoKCnj33XeZMGFCFnKXPqpOERFp4VSdIiLSSimIi4iEmIK4iEiI7TdD0Xbo0GGtmbX8\nsTVFROJ06NBhbbJl+03DpohIa6TqFBGREFMQFxEJMQVxEZEQUxAXEQkxBXERkRD7/6RGLy/O9a0p\nAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x315bacd0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "%matplotlib inline\n",
    "import matplotlib.pyplot as plt\n",
    "from matplotlib.legend_handler import HandlerLine2D\n",
    "\n",
    "line1, = plt.plot(range(len(log1[0])), log1[0], \n",
    "                  'ro', label=\"X-axis of joystick\")\n",
    "line2, = plt.plot(range(len(log1[1])), log1[1], \n",
    "                  'bs', label=\"Y-axis of joystick\")\n",
    "plt.title('Arduino Analog Voltage Log')\n",
    "plt.axis([0, len(log1[0]), 0.0, 3.3])\n",
    "plt.legend(loc=4,bbox_to_anchor=(1, -0.3),\n",
    "           ncol=2, borderaxespad=0.,\n",
    "           handler_map={line1: HandlerLine2D(numpoints=1),\n",
    "                        line2: HandlerLine2D(numpoints=1)})\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 5. Logging multiple devices\n",
    "We can also repeat the above steps to track multiple analog devices.\n",
    "In this example: \n",
    "    * connect the grove joystick to group A1.\n",
    "    * connect the grove potentiometer to group A4.\n",
    "\n",
    "Both analog devices will be monitored.\n",
    "\n",
    "### Step 1: Starting logging once every 100 milliseconds\n",
    "Once the interval is set, users can change the analog values by:\n",
    "    * rotating the joy stick.\n",
    "    * moving the slider back and forth."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "analog2 = Arduino_Analog(ARDUINO,[0,1,4])\n",
    "analog2.set_log_interval_ms(100)\n",
    "analog2.start_log()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Step 2: Get the log\n",
    "Stop and get the log whenever is done.\n",
    "\n",
    "The log is a nested list, where each list inside log records the samples for one channel."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "log2 = analog2.get_log()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Step 3. Plot values over time\n",
    "The voltage values can be logged and displayed."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\nuKWqjJ803lMYiRoiAVvL1YuqBnV7keRyuer+R1Vld3s0vCRevH693pmTo/tBFXQ/6J05OVq8fn29\ntleVG264Qa+99lotKCjQNm3a6LZt26pcd9euXTp48GBt27atZmRk6ODBg3XTpk2qqrpz507t3Lmz\nvvvuu6rqlPS7deumL7/8sqqqjhkzRidMmKCqqtu3b9fBgwdrWlqaZmRkaP/+/avc55IlS/Tss8/W\ntLQ0Peecc/Tf//63d3uJiYnarFkzTU1NDViq9d2nquq0adO0W7du2rp1ax0yZIh+//33qqr6m9/8\nRu+8885Kf3vFFVfoE088oaqqU6ZM0U6dOmlqaqr26NFD58+frx988IE2a9ZMmzVrpikpKdqrVy9V\nPb40NW3aND311FM1NTVVTzvtNP3qq69UtXJJfNWqVZqdna2vvfZalechEt545w1N7Z+qb859MyTb\nz8rK0smTJ2vPnj01IyNDb7zxRj18+LCqVv1e9e/fX0VEk5OTNTU1VWfPnq2qqvPmzdNevXppWlqa\nnn/++fr1119X2s/UqVP1zDPP1LS0NL366qv18OHDWlZWps2bN9cmTZpoSkqKpqam6vfff6/5+fk6\natQo79+/8847etppp2l6eroOGDBAV69eXWnbjz76qJ5xxhmampqqY8eO1a1bt+oll1yiLVu21Isu\nukh3797tXf/TTz/V8847T9PS0rRXr15aUFCgqqoPPPCANmnSRJs3b66pqal66623qqrq6tWr9aKL\nLtKMjAzt0aOH93hVnc/3LbfcopdeeqmmpKRU+cuOakriEU+QsfCobxLPHznSm8DVJ5HnjxxZr+1V\nZdeuXdqhQwdt06aNvvTSS9Wuu2PHDn3rrbf00KFDun//fh0+fLgOHTrUu/zDDz/UDh066LZt2/Sm\nm27S4cOHe5f5JtT77rtPb7nlFq2oqNDy8nJdvHhxwP3t3LlT09PTddasWVpRUaGvvvqqpqen686d\nO4/bZiC+yz/55BNt06aNLl++XI8cOaK33nqr98vjiy++0E6dOnn/bvv27ZqcnKw//PCDrl27VjMz\nM3XLli2qqlpSUqLr3V+kgapTfJP47NmztXPnzrp06VJVVS0sLNQNGzao6rEkvnTpUu3SpYu+//77\n1Z77cHO5XNp3WF9lItp3WF91uVxB30dWVpaeccYZWlpaqrt27dLzzz9fJ0yYoPPnz6/yvVJ1qlPW\n+xRmli1bpieeeKJ++eWX6nK5dMaMGZqVlaVHjhzx7qdv3766ZcsW3bVrl5566qn67LPPqqpTnZKZ\nmVkpLt/3de3atZqcnKyffPKJlpeX65///Gft1q2bHj161Lvtc889V3/44QfdvHmznnjiidq7d2/9\n73//q4cPH9aBAwfq73//e1VV3bRpk7Zu3Vo/+OADVVX9+OOPtXXr1rp9+3ZVPb4AUFZWppmZmfrS\nSy+py+XS5cuXa5s2bbxfImPGjNG0tDT99NNPVVW9X4D+qkviVp0SQq7SUpL95iUDrs2bg7qftLQ0\nTjvtNA4ePMjQoUOrXTcjI4OhQ4dywgknkJyczH333cfChQu9yy+66CJ+8YtfMGjQID744AOeeeaZ\ngNtJTEzk+++/p6ioiCZNmnD++ecHXO+9996je/fujBgxgoSEBK655hp69OjBvHnz6nycr7zyCmPH\njuVHP/oRiYmJTJ48mU8//ZQNGzZw9tln06pVKz755BMAXnvtNfLy8mjTpg1NmjThyJEjfPPNN5SX\nl9OlSxeys7Nrtc/nn3+ee+65h969ewNw0kknkZmZ6V2+aNEihgwZwsyZM7nkkkvqfEyhNGfeHFak\nrgCBFSkreOvdt0Kyn1tvvZWOHTuSlpbGAw88wCuvvMKsWbOqfK88nNzk+Pvf/86vfvUr+vTpg4gw\nevRoTjjhBD777DPvOrfddhvt2rUjLS2Nyy+/nOXLl9cqvtmzZzN48GAGDhxIkyZNuOuuuzh48CD/\n/ve/Kx1DmzZt6NChAxdeeCH9+vXjzDPPpFmzZgwdOpSvvvoKgFmzZnHZZZdx8cUXAzBo0CD69OnD\n+++/H3Df7777LtnZ2Vx33XWICD/60Y+46qqreOONN7zrDBkyhH79+gHQrFmzWh2TL0viIZTQqRNl\nfvPKgISOHYO6n5kzZ1JSUsJPfvIT7rnnHu/8jRs3kpqaSmpqKi1btgTg4MGD/PKXvyQrK4u0tDRy\nc3PZvXt3pX+om2++mW+++YYxY8aQnp4ecJ933303OTk5/PSnP6Vbt2786U9/Crje5s2b6dq1a6V5\nXbt2pbS0tM7H6b+t5ORkWrdu7d3W6NGjmTlzpvecjB49GoCcnByeeOIJ8vPzadeuHSNGjGDLli21\n2ufGjRvJycmpcvmzzz7L+eefz4UXXljn4wklVWXqy1M50OUAAAe6HuDRGY9Wep+DpXPnzt7nXbt2\nZfPmzXz//ffVvlf+SkpK+Mtf/kJGRgYZGRmkp6ezadMmNvsUeNq1O9Z9UYsWLdi/f3+t4vP/3IgI\nmZmZlWLx3Xbz5s2Pe+3ZV0lJCbNnz64U55IlS6r8PJWUlPDZZ59VWv+VV15h69at3nV8CwX1YUk8\nhMY8/DATc3K8ibwMmJiTw5iHHw7aPrZt28Ydd9zBc889xzPPPMMbb7zBkiVLAOfDsW/fPvbt28fe\nvXsB+Mtf/sK3337Ll19+ye7du1m0aBFwrFTkcrkYN24c119/PU8//TTr168PuN+UlBSmTp1KYWEh\nc+fO5bHHHmPBggXHrdexY0eKi4srzduwYQOdOnWq87F27NiRkpIS7+uysjJ27Njh3dbo0aN55513\n+Prrr1mzZg0///nPvetec801/Otf//L+/b333gvUfIEtMzOTwsLCKpc/88wzbNiwgTvuuKPOxxNK\nvqVwIKSl8Y0bN3qfe95b//fd8175JnxfmZmZPPDAA+zcuZOdO3eya9cu9u/fz9VXX13j/mt6D/0/\nN56Yq4qlOpmZmVx33XWV4ty3b5+3eax/LJmZmeTl5VVaf+/evfz1r3+tdfw1sSQeQl2zs7n1o4+Y\nOnIkEwcMYOrIkdz60Ud0reVP+dr47W9/y5VXXkn//v1p3749f/rTn7jppps4evRowPX37dtH8+bN\nadmyJTt37iQ/P7/S8kceeYSEhAReeOEF7rrrLkaPHh2w9Pbee+95k1tqaipNmzYlIeH4j9Oll17K\nt99+y2uvvUZFRQWvv/46q1evZvDgwXU+1muvvZYXX3yRr7/+msOHD3P//ffTr18/unTpAkCnTp04\n66yzGD16NFdddRUnnHACAOvWrWPBggUcOXKEZs2a0bx5c2+s7dq1o7i4uMoS6k033cTUqVNZtmwZ\nAIWFhZWSVmpqKh988AGLFi3ivvvuq/MxhcqS/yyhT0UfcotyvY8+rj4s/nJx0Pf11FNPUVpays6d\nO3nkkUe45ppruOaaa5g+ffpx75Wn1Nm+fftKBYSbb76ZZ555hi+++AJwkv77779PWZn/b9njtWvX\njh07dngLKv6GDx/Oe++9x4IFCygvL2fq1KkkJSVx7rnn1vlYR40axbx58/jwww9xuVwcOnSIhQsX\nen8xtGvXrtJxDR48mHXr1jFz5kzKy8s5evQo//nPf1i7dm2d912lqirL7dHwC5uh9vbbb2unTp10\nz549leYPGjRIH3zwwYB/s3nzZs3Ly9OUlBQ95ZRTdNq0aZqQkKAVFRW6dOlSzcjI8F5wqqio0Asu\nuED/+Mc/qmrli4yPP/64ZmVlaUpKimZmZuojjzxSZZxLlizRs846S9PS0rRPnz7e1imqTsua2l7Y\nVFV99tlnNScnR1u3bq2XX365lpaWVlr/5Zdf1oSEBF24cKF33tdff63nnHOOtmzZ0vt3npYSO3bs\n0AsuuEDT09P1rLPOUlXVAQMGVLo49eyzz+opp5yiqampesYZZ+jy5ctVVTU7O9vbmmDnzp3aq1cv\nfeihh6o8lniUlZWlU6ZM0Z49e2p6errecMMNevDgQVWt/r169tlntUOHDpqenq5vvPGGqqr+85//\n1LPPPlvT09O1Y8eOOnz4cN2/f7+qVj7XqsdfkB47dqy2bt1a09PTva1TfJe//fbb2rNnT01LS9O8\nvDxdtWqVd5n/tkePHq2TJk3yvn7uuef0oosu8r7+4osvNDc3VzMyMvTEE0/UwYMH68aNG1XVabnS\nvXt3zcjI0Ntuu01VVdetW6eXXXaZtm3bVtu0aaODBg3S//73v6pa84V9D6q5sGld0daCdUUbOddf\nfz0nn3wyDz74YK3WX7x4MaNGjTquCseERnZ2Ns8//zwDBw6MdChxzbqiNTGpvLyctWvX1rolydGj\nR3niiSe4+eabQxyZMdHDkriJWh06dCAjI4OrrrqqxnXXrFlDeno6W7du5bbbbgtDdAaCe+elqR+r\nTqkFq04xxkSSVacYY0ycsiRujDExzJK4McbEMEvixhgTwyyJG2NMDLMkbmrlD3/4A7/+9a+Dus2D\nBw9y2WWXkZ6ezsiRI8Oyz5rcfPPNTJkypcb1LrzwQmbMmBGGiIypXtNIB2Dqb/To0SQmJvLCCy94\n5y1cuJCrrrqKlStXVuqJraFqe8dkXbz++uvs3r2bnTt3BmxvHIp9+nr++eeZOXNmpY67/v73v4d0\nn8YEmyXxEBo3bgrr1h06bn737klMmza+wdv/3//9X04//XQ++eQTBg0axOHDhxk3bhyPP/54UBN4\nqJSUlHDKKadE7IYR1fgZ1ss0YlV1qmKPhneAlZs7Uf0G9lFw5gfLG2+8oSeddJKWlZXp+PHj9dJL\nL61yXZfLpcOGDdP27dsfN0zV4cOH9YwzztC//e1vqqpaXl6u/fr108mTJ6uq6oMPPqg33HCDqqoe\nOHBAR4wYoa1bt9a0tDTt27ev7tixI+A+V65cqbm5uZqWlqZnnnmmvvfee6rqDGXVrFkzTUxM1NTU\nVOw8/jcAAAYsSURBVJ0xY8Zxf+u7T1XVt956yzvE1qBBg3Tt2rWqqjp58mS9+uqrK/3tLbfconfd\ndZeqOh0YZWVlaWpqqubk5Ojrr7+uK1as0KSkJG3atKmmpKRo27ZtVVV11KhRlTo/mjNnjvbq1Utb\ntmypJ598sn700UeqqnrBBRd4R1EqLS3V008/3TsUnDHBhg3PFr9JXFV12LBhesUVV2ibNm2O69XP\nl8vl0pdeeknLysr08OHDeuutt2qfPn28y//73/9qRkaGrlu3TvPz8/WCCy7wDunlm1CfeuopHTp0\nqB4+fFhdLpcuXbpUy8rKjtvfkSNHNDs7W6dOnarl5eX68ccfa0pKineUc/8k7c93+apVqzQlJUUL\nCgq0vLxc//jHP+opp5yi5eXlumnTJk1NTdV9+/Z599u6dWtdsWKF7t27V1u1auXd55YtW7xfXM89\n95wOGDCg0j59k/iSJUs0LS1NFyxYoKrO0Fzr1q1T1WNJ/LvvvtNu3brpiy++WOVxGNNQ1SVxu7AZ\nB5566inmz5/PxIkT6VjNqEEiwnXXXUeLFi1o1qwZDz30EMuWLePgwYMAnHnmmYwfP54hQ4bw5JNP\nMnPmzIDVDYmJiWzfvp1169YhIvTu3ZsWLVoct96SJUs4evQod955J02aNGHQoEFccsklvPbaa3U+\nxtdff50hQ4aQm5tLkyZNGD9+PHv27OHzzz+nU6dO9OvXjzlz5gBOX+edO3fm9NNPByAhIYEVK1Zw\n+PBh2rVrR48ePWq1zxdeeIFx48aRl5cHOP2Vn3zyyd7lK1asYNCgQUyZMoUxY8bU+ZiMCQZL4nHg\nxBNPpE2bNvTs2dM7z+VyeYdla9myJVu2bMHlcnHPPfeQk5NDWlqaNyFt377d+3fXX389hYWFXH75\n5ccNq+YxZswYfvKTnzB8+HAyMzO5//77cblcx623efNm74ANHsEamk1E6Ny5s3db1113nXdotlmz\nZnmHZktNTeXVV1/lr3/9K+3bt+eKK67g22+/rdU+axqabebMmWRlZdU4rqkxoWRJPE4lJCR4h2Xb\nu3cv7du3Z8aMGXzwwQcUFBSwe/duvvvuO6DygLW33HILQ4cO5d133/WOsuIvMTGRhx56iFWrVrF4\n8WLeeustZs2addx6HTt2rDQKDgRvaDZVZdOmTd5tXXnllSxdupRVq1bxj3/8o1KTxYsvvpiPPvqI\nLVu2kJOTw69+9Sug4UOzPfzww7Rs2ZKRI0dWOofGhJMl8RDq3j2J3Nz84x7duydFJJ59+/Zxwgkn\nkJ6eTllZGffff3+l5S+++CIrV65k+vTpPPbYY4waNcpb1eJrwYIFrFy5ElUlJSWFxMTEgEOznXfe\neTRt2pTHHnuM8vJy5s+fzz/+8Q+uueaaOsc+fPhw5s6dy6JFiygvL+fPf/4zLVu2pG/fvoAzcO6Q\nIUO49tprueCCC2jfvj0AW7Zs4d133+XgwYM0bdqU5OTkSkOzbdq0ifLy8oD7HDt2LM899xwLFy5E\nVSktLa1Uim/WrBlz5sxh165djBkzxhK5iYyqKsvt0fALm+HkP8RUIPv27dPLL79cU1NTNTs7W2fM\nmKEJCQlaUlKixcXF2rp1a/3iiy+86w8bNkx//etfq2rli4wzZ87U7t27a2pqqnbo0EHvuOMO7wVQ\nf998841eeOGF2qpVKz3jjDP03Xff9S6ry4VNVad1yqmnnqrp6ek6cOBAXbNmTaX1FyxYoCKis2bN\n8s7btGmT9u/fX9PS0rx/52nVcvjwYb300ks1IyNDO3TooKqBW6ecccYZmpqaqt27d/ee4wsvvNDb\nOuXgwYM6aNAgvemmm6o8FmMaAhuerWGsP/HIeOCBB9ixYwfPPPNMrdYvLi7mzDPPZOvWrTRv3jzE\n0RkTPtafuIk5qsqqVatqPTSby+Vi6tSpjBgxwhK4aVTsjk0TlXr16kXLli0ZO3Zsjevu3buXTp06\ncdJJJ/HBBx+EITpjoodVp9SCVacYYyLJqlOMMSZOWRI3xpgYZkncGGNimF3YrIWkpKStIhL9fbsa\nY+JSUlLS1qqW2YVNY4yJYVadYowxMcySuDHGxDBL4sYYE8MsiRtjTAyzJG6MMTHs/wPKac8FamBB\n/wAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x30cc76d0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "%matplotlib inline\n",
    "import matplotlib.pyplot as plt\n",
    "from matplotlib.legend_handler import HandlerLine2D\n",
    "\n",
    "line1, = plt.plot(range(len(log2[0])), log2[0], \n",
    "                  'ro', label=\"X-axis of joystick\")\n",
    "line2, = plt.plot(range(len(log2[1])), log2[1], \n",
    "                  'bs', label=\"Y-axis of joystick\")\n",
    "line3, = plt.plot(range(len(log2[2])), log2[2], \n",
    "                  'g^', label=\"potentiometer\")\n",
    "plt.title('Arduino Analog Voltage Log')\n",
    "plt.axis([0, len(log2[0]), 0.0, 3.3])\n",
    "plt.legend(loc=4,bbox_to_anchor=(1, -0.3),\n",
    "           ncol=2, borderaxespad=0.,\n",
    "           handler_map={line1: HandlerLine2D(numpoints=1),\n",
    "                        line2: HandlerLine2D(numpoints=1),\n",
    "                        line3: HandlerLine2D(numpoints=1)})\n",
    "plt.show()"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.4.3+"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 1
}
