{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# ME 30 HW/Lab #1" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "__FirstName LastName__ LabSection_No." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "2018-07-06" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Description and Summary: \n", "This is the ME 30 Jupyter Notebook homework/lab template. Clone it for your assignments. Add/Delete cells as needed. The cells below are included for reference only. Use the lines below to summarize the assignment. \n", "\n", "> What was done...\n", "\n", ">How it was done...\n", "\n", "> What was learned...\n", "***" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Imports and notebook setup" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "application/json": { "Software versions": [ { "module": "Python", "version": "3.6.5 64bit [MSC v.1900 64 bit (AMD64)]" }, { "module": "IPython", "version": "6.4.0" }, { "module": "OS", "version": "Windows 10 10.0.17134 SP0" }, { "module": "numpy", "version": "1.14.3" }, { "module": "scipy", "version": "1.1.0" }, { "module": "matplotlib", "version": "2.2.2" } ] }, "text/html": [ "
SoftwareVersion
Python3.6.5 64bit [MSC v.1900 64 bit (AMD64)]
IPython6.4.0
OSWindows 10 10.0.17134 SP0
numpy1.14.3
scipy1.1.0
matplotlib2.2.2
Thu Jun 14 22:23:23 2018 Pacific Daylight Time
" ], "text/latex": [ "\\begin{tabular}{|l|l|}\\hline\n", "{\\bf Software} & {\\bf Version} \\\\ \\hline\\hline\n", "Python & 3.6.5 64bit [MSC v.1900 64 bit (AMD64)] \\\\ \\hline\n", "IPython & 6.4.0 \\\\ \\hline\n", "OS & Windows 10 10.0.17134 SP0 \\\\ \\hline\n", "numpy & 1.14.3 \\\\ \\hline\n", "scipy & 1.1.0 \\\\ \\hline\n", "matplotlib & 2.2.2 \\\\ \\hline\n", "\\hline \\multicolumn{2}{|l|}{Thu Jun 14 22:23:23 2018 Pacific Daylight Time} \\\\ \\hline\n", "\\end{tabular}\n" ], "text/plain": [ "Software versions\n", "Python 3.6.5 64bit [MSC v.1900 64 bit (AMD64)]\n", "IPython 6.4.0\n", "OS Windows 10 10.0.17134 SP0\n", "numpy 1.14.3\n", "scipy 1.1.0\n", "matplotlib 2.2.2\n", "Thu Jun 14 22:23:23 2018 Pacific Daylight Time" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Library imports go at the top of the notebook by convention\n", "%matplotlib inline\n", "from matplotlib import pyplot as plt\n", "# Plot settings (uncomment in case you want to change)\n", "# WIDE_PLOT = (10, 6)\n", "# plt.rcParams['figure.figsize']= WIDE_PLOT\n", "\n", "import numpy as np\n", "import os, sys\n", "\n", "# Add imports for pymata\n", "\n", "# Can view version installation after installing version_information:\n", "# pip install version_information\n", "%load_ext version_information\n", "%version_information numpy, scipy, matplotlib" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "***\n", "## Problem 1: Example of plotting and 'inline' plot\n", "Use numpy to assemble values for plotting three cycles of a sine wave. " ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "x = np.linspace(0, 5. * np.pi, 1000)\n", "y = np.sin(x)" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.plot(x, y)\n", "plt.plot(x, y + 2)\n", "plt.grid(True)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "***\n", "## Problem 2: Run Blink5 program\n", "Make sure that PyFirmataPlus is set up properly and can run from the notebook.\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "#\n", "# Version of blink5 that does not use the Arduino-style setup()/loop() organization.\n", "# Blink all five LEDs on the Uno and YouKnow shield (the Uno's built-in\n", "# LED on pin 13, and the YouKnow's on PIN_LED[0..3])\n", "#\n", "# Written by Eric B. Wertz (eric@edushields.com)\n", "# v1.0 12-Jan-2018 Initial revision\n", "#\n", "# put youknow.py in either: 1) the directory where this notebook resides, or\n", "# 2) C:\\ProgramData\\Anaconda3\\Lib\\site-packages\n", "\n", "from pymata_aio.pymata3 import PyMata3\n", "from youknow import Led, PIN_LED0, PIN_LED1, PIN_LED2, PIN_LED3\n", "\n", "if __name__ == \"__main__\":\n", " PIN_LED_BUILTIN = 13\n", "\n", " board = PyMata3()\n", " leds = ( Led(board, PIN_LED0),\n", " Led(board, PIN_LED1),\n", " Led(board, PIN_LED2),\n", " Led(board, PIN_LED3),\n", " Led(board, PIN_LED_BUILTIN) )\n", "\n", " while True:\n", " for led in leds:\n", " led.on()\n", "\n", " board.sleep(0.5)\n", "\n", " for led in leds:\n", " led.off()\n", "\n", " board.sleep(0.5)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "***\n", "## Problem n: Title\n", "Description." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "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.6.5" } }, "nbformat": 4, "nbformat_minor": 2 }