Circuitpython-Essentials.Pdf

Total Page:16

File Type:pdf, Size:1020Kb

Circuitpython-Essentials.Pdf CircuitPython Essentials Created by Kattni Rembor Last updated on 2021-09-27 12:10:49 PM EDT Guide Contents Guide Contents 2 CircuitPython Essentials 5 CircuitPython Pins and Modules 6 CircuitPython Pins 6 import board 6 I2C, SPI, and UART 7 What Are All the Available Names? 8 Microcontroller Pin Names 9 CircuitPython Built-In Modules 10 CircuitPython Built-Ins 11 Thing That Are Built In and Work 11 Flow Control 11 Math 11 Tuples, Lists, Arrays, and Dictionaries 11 Classes, Objects and Functions 11 Lambdas 11 Random Numbers 12 CircuitPython Digital In & Out 13 Find the pins! 14 Read the Docs 16 CircuitPython Analog In 17 Creating the analog input 17 get_voltage Helper 17 Main Loop 17 Changing It Up 18 Wire it up 18 Reading Analog Pin Values 21 CircuitPython Analog Out 22 Creating an analog output 22 Setting the analog output 22 Main Loop 22 Find the pin 23 CircuitPython Audio Out 27 Play a Tone 27 Play a Wave File 29 Wire It Up 31 CircuitPython MP3 Audio 36 CircuitPython PWM 38 PWM with Fixed Frequency 38 Create a PWM Output 39 Main Loop 39 PWM Output with Variable Frequency 40 Wire it up 41 Where's My PWM? 45 CircuitPython Servo 47 Servo Wiring 47 Standard Servo Code 50 Continuous Servo Code 50 CircuitPython Cap Touch 52 Create the Touch Input 52 © Adafruit Industries https://learn.adafruit.com/circuitpython-essentials Page 2 of 117 Main Loop 52 Find the Pin(s) 53 CircuitPython Internal RGB LED 57 Create the LED 58 Brightness 58 Main Loop 58 Making Rainbows (Because Who Doesn't Love 'Em!) 59 Circuit Playground Express Rainbow 60 CircuitPython NeoPixel 62 Wiring It Up 62 The Code 63 Create the LED 64 NeoPixel Helpers 65 Main Loop 65 NeoPixel RGBW 65 Read the Docs 67 CircuitPython DotStar 68 Wire It Up 68 The Code 69 Create the LED 71 DotStar Helpers 72 Main Loop 72 Is it SPI? 73 Read the Docs 73 CircuitPython UART Serial 75 The Code 76 Wire It Up 77 Where's my UART? 80 Trinket M0: Create UART before I2C 81 CircuitPython I2C 83 Wire It Up 83 Find Your Sensor 86 I2C Sensor Data 87 Where's my I2C? 88 CircuitPython HID Keyboard and Mouse 90 CircuitPython Keyboard Emulator 90 Create the Objects and Variables 92 The Main Loop 92 CircuitPython Mouse Emulator 93 Create the Objects and Variables 95 CircuitPython HID Mouse Helpers 95 Main Loop 96 CircuitPython Storage 97 Logging the Temperature 99 CircuitPython CPU Temp 102 CircuitPython Expectations 103 Always Run the Latest Version of CircuitPython and Libraries 103 I have to continue using CircuitPython 3.x or 2.x, where can I find compatible libraries? 103 Switching Between CircuitPython and Arduino 103 The Difference Between Express And Non-Express Boards 104 Non-Express Boards: Gemma, Trinket, and QT Py 104 Small Disk Space 104 © Adafruit Industries https://learn.adafruit.com/circuitpython-essentials Page 3 of 117 No Audio or NVM 104 Differences Between CircuitPython and MicroPython 104 Differences Between CircuitPython and Python 105 Python Libraries 105 Integers in CircuitPython 105 Floating Point Numbers and Digits of Precision for Floats in CircuitPython 105 Differences between MicroPython and Python 105 CircuitPython Resetting 106 Soft Reset 106 Hard Reset 106 Reset Into Specific Mode 107 More Info 107 CircuitPython Libraries and Drivers 108 CircuitPython Libraries 109 Adafruit CircuitPython Libraries 109 Drivers: 109 Helpers: 114 © Adafruit Industries https://learn.adafruit.com/circuitpython-essentials Page 4 of 117 CircuitPython Essentials You've gone through the Welcome to CircuitPython guide (https://adafru.it/cpy-welcome). You've already gotten everything setup, and you've gotten CircuitPython running. Great! Now what? CircuitPython Essentials! There are a number of core modules built into CircuitPython and commonly used libraries available. This guide will introduce you to these and show you an example of how to use each one. Each section will present you with a piece of code designed to work with different boards, and explain how to use the code with each board. These examples work with any board designed for CircuitPython, including Circuit Playground Express, Trinket M0, Gemma M0, QT Py, ItsyBitsy M0 Express, ItsyBitsy M4 Express, Feather M0 Express, Feather M4 Express, Metro M4 Express, Metro M0 Express, Trellis M4 Express, and Grand Central M4 Express. Some examples require external components, such as switches or sensors. You'll find wiring diagrams where applicable to show you how to wire up the necessary components to work with each example. Let's get started learning the CircuitPython Essentials! © Adafruit Industries https://learn.adafruit.com/circuitpython-essentials Page 5 of 117 CircuitPython Pins and Modules CircuitPython is designed to run on microcontrollers and allows you to interface with all kinds of sensors, inputs and other hardware peripherals. There are tons of guides showing how to wire up a circuit, and use CircuitPython to, for example, read data from a sensor, or detect a button press. Most CircuitPython code includes hardware setup which requires various modules, such as board or digitalio . You import these modules and then use them in your code. How does CircuitPython know to look for hardware in the specific place you connected it, and where do these modules come from? This page explains both. You'll learn how CircuitPython finds the pins on your microcontroller board, including how to find the available pins for your board and what each pin is named. You'll also learn about the modules built into CircuitPython, including how to find all the modules available for your board. CircuitPython Pins When using hardware peripherals with a CircuitPython compatible microcontroller, you'll almost certainly be utilising pins. This section will cover how to access your board's pins using CircuitPython, how to discover what pins and board-specific objects are available in CircuitPython for your board, how to use the board-specific objects, and how to determine all available pin names for a given pin on your board. import board When you're using any kind of hardware peripherals wired up to your microcontroller board, the import list in your code will include import board . The board module is built into CircuitPython, and is used to provide access to a series of board-specific objects, including pins. Take a look at your microcontroller board. You'll notice that next to the pins are pin labels. You can always access a pin by its pin label. However, there are almost always multiple names for a given pin. To see all the available board-specific objects and pins for your board, enter the REPL ( >>> ) and run the following commands: import board dir(board) Here is the output for the QT Py. The following pins have labels on the physical QT Py board: A0, A1, A2, A3, SDA, SCL, TX, RX, SCK, MISO, and MOSI. You see that there are many more entries available in board than the labels on the QT Py. © Adafruit Industries https://learn.adafruit.com/circuitpython-essentials Page 6 of 117 You can use the pin names on the physical board, regardless of whether they seem to be specific to a certain protocol. For example, you do not have to use the SDA pin for I2C - you can use it for a button or LED. On the flip side, there may be multiple names for one pin. For example, on the QT Py, pin A0 is labeled on the physical board silkscreen, but it is available in CircuitPython as both A0 and D0 . For more information on finding all the names for a given pin, see the What Are All the Available Pin Names? (https://adafru.it/QkA) section below. The results of dir(board) for CircuitPython compatible boards will look similar to the results for the QT Py in terms of the pin names, e.g. A0, D0, etc. However, some boards, for example, the Metro ESP32-S2, have different styled pin names. Here is the output for the Metro ESP32-S2. Note that most of the pins are named in an IO# style, such as IO1 and IO2. Those pins on the physical board are labeled only with a number, so an easy way to know how to access them in CircuitPython, is to run those commands in the REPL and find the pin naming scheme. If your code is failing to run because it can't find a pin name you provided, verify that you have the proper pin name by running these commands in the REPL. I2C, SPI, and UART You'll also see there are often (but not always!) three special board-specific objects included: I2C , SPI , and UART - each one is for the default pin-set used for each of the three common protocol busses they are named for. These are called singletons. What's a singleton? When you create an object in CircuitPython, you are instantiating ('creating') it. Instantiating an object means you are creating an instance of the object with the unique values that are provided, or "passed", to it. For example, When you instantiate an I2C object using the busio module, it expects two pins: clock and data, typically SCL and SDA. It often looks like this: i2c = busio.I2C(board.SCL, board.SDA) © Adafruit Industries https://learn.adafruit.com/circuitpython-essentials Page 7 of 117 Then, you pass the I2C object to a driver for the hardware you're using. For example, if you were using the TSL2591 light sensor and its CircuitPython library, the next line of code would be: tsl2591 = adafruit_tsl2591.TSL2591(i2c) However, CircuitPython makes this simpler by including the I2C singleton in the board module.
Recommended publications
  • Bridge Linking Engineering and Society
    Fall 2017 OPEN SOURCE HARDWARE The BRIDGE LINKING ENGINEERING AND SOCIETY Hardware: The Next Step toward Open Source Everything Alicia M. Gibb Freedom Reigns in Desktop 3D Printing Ben Malouf and Harris Kenny Reevaluating Intellectual Property Law in a 3D Printing Era Lucas S. Osborn Impacts of Open Source Hardware in Science and Engineering Joshua M. Pearce The Maker Movement and Engineering AnnMarie Thomas and Deb Besser 3D Printing for Low-Resource Settings Matthew P. Rogge, Melissa A. Menke, and William Hoyle The mission of the National Academy of Engineering is to advance the well-being of the nation by promoting a vibrant engineering profession and by marshalling the expertise and insights of eminent engineers to provide independent advice to the federal government on matters involving engineering and technology. The BRIDGE NATIONAL ACADEMY OF ENGINEERING Gordon R. England, Chair C. D. Mote, Jr., President Corale L. Brierley, Vice President Julia M. Phillips, Home Secretary Ruth A. David, Foreign Secretary Martin B. Sherwin, Treasurer Editor in Chief: Ronald M. Latanision Managing Editor: Cameron H. Fletcher Production Assistant: Penelope Gibbs The Bridge (ISSN 0737-6278) is published quarterly by the National Aca d emy of Engineering, 2101 Constitution Avenue NW, Washington, DC 20418. Periodicals postage paid at Washington, DC. Vol. 47, No. 3, Fall 2017 Postmaster: Send address changes to The Bridge, 2101 Constitution Avenue NW, Washington, DC 20418. Papers are presented in The Bridge on the basis of general interest and time- liness. They reflect the views of the authors and not necessarily the position of the National Academy of Engineering.
    [Show full text]
  • Circuitpython Documentation Release 0.0.0
    CircuitPython Documentation Release 0.0.0 Damien P. George, Paul Sokolovsky, and contributors Jun 26, 2020 API and Usage 1 Adafruit CircuitPython 3 1.1 Status...................................................3 1.2 Supported Boards............................................3 1.2.1 Designed for CircuitPython...................................3 1.2.2 Other..............................................4 1.3 Download.................................................4 1.4 Documentation..............................................4 1.5 Contributing...............................................4 1.6 Differences from MicroPython......................................4 1.6.1 Behavior.............................................5 1.6.2 API...............................................5 1.6.3 Modules.............................................5 1.6.4 atmel-samd21 features.....................................5 1.7 Project Structure.............................................5 1.7.1 Core...............................................6 1.7.2 Ports...............................................6 1.8 Full Table of Contents..........................................7 1.8.1 Core Modules..........................................7 1.8.2 Supported Ports......................................... 47 1.8.3 Troubleshooting......................................... 56 1.8.4 Additional Adafruit Libraries and Drivers on GitHub..................... 57 1.8.5 Design Guide.......................................... 59 1.8.6 Architecture..........................................
    [Show full text]
  • Atmega32u4 Breakout Created by Lady Ada
    Atmega32u4 Breakout Created by lady ada Last updated on 2021-07-12 01:27:14 PM EDT Guide Contents Guide Contents 2 Intro 3 About the Atmega32u4 Breakout board+ 3 Why not use a Teensy 3 Assembly 5 Design 7 Design Specifications 7 Microcontroller 7 Power 7 Pinout 7 USB Development 8 Using with AVRDude 9 AVR109 Bootloader & AVRdude 9 Arduino IDE Setup 11 https://adafruit.github.io/arduino-board-index/package_adafruit_index.json 12 Using with Arduino 14 Using it with Teensyduino 15 Download 18 Download 18 Schematic 18 Fabrication Print 18 © Adafruit Industries https://learn.adafruit.com/atmega32u4-breakout Page 2 of 20 Intro About the Atmega32u4 Breakout board+ We like the AVR 8-bit family and were excited to see Atmel upgrade the series with a USB core. Having USB built in allows the chip to act like any USB device. For example, we can program the chip to 'pretend' it's a USB joystick, or a keyboard, or a flash drive! Another nice bonus of having USB built in is that instead of having an FTDI chip or cable (like an Arduino), we can emulate the serial port directly in the chip. This costs some Flash space and RAM space but that's the trade-off. The only bad news about this chip is that it is surface mount only (SMT), which means that it is not easy to solder the way the larger DIP chips are. For that reason, we made a breakout board. The board comes with some extras like a fuse, a 16mhz crystal, USB connector and a button to start the bootloader.
    [Show full text]
  • Bfree: Enabling Battery-Free Sensor Prototyping with Python
    BFree: Enabling Battery-free Sensor Prototyping with Python VITO KORTBEEK, Delft University of Technology, The Netherlands ABU BAKAR, Northwestern University, USA STEFANY CRUZ, Northwestern University, USA KASIM SINAN YILDIRIM, University of Trento, Italy PRZEMYSŁAW PAWEŁCZAK, Delft University of Technology, The Netherlands JOSIAH HESTER, Northwestern University, USA Building and programming tiny battery-free energy harvesting embedded computer systems is hard for the average maker because of the lack of tools, hard to comprehend programming models, and frequent power failures. With the high ecologic cost of equipping the next trillion embedded devices with batteries, it is critical to equip the makers, hobbyists, and novice embedded systems programmers with easy-to-use tools supporting battery-free energy harvesting application development. This way, makers can create untethered embedded systems that are not plugged into the wall, the desktop, or even a battery, providing numerous new applications and allowing for a more sustainable vision of ubiquitous computing. In this paper, we present BFree, a system that makes it possible for makers, hobbyists, and novice embedded programmers to develop battery-free applications using Python programming language and widely available hobbyist maker platforms. BFree provides energy harvesting hardware and a power failure resilient version of Python, with durable libraries that enable common coding practice and off the shelf sensors. We develop demonstration applications, benchmark BFree against battery-powered
    [Show full text]
  • Circuitpython Onewire Protocol Between Boards
    Circuitpython Onewire Protocol Between Boards Andrzej besprinkled differently if devilish Raj mongrelised or anthologizes. Spotless Paten metallising andcreepingly. blankly? Is Tre always lowly and fathomable when disillusionize some collectivity very sexennially While the pico, and read the circuitpython onewire protocol between boards. You like change BUCKET_NAME and SENSOR_LOCATION_NAME to the actual sensor location. Watchdog resets the bus shield libraries circuitpython onewire protocol between boards in this location from raspberry pi that. The Binho Nova brings Multi-Protocol USB Host Adapters into the 21st Century. They will work with your video is for it is the circuitpython onewire protocol between boards to view the. Snek GPIO function, temperature, engineering and mechanical use. This he studied electronics for the onewire stuff, etc with seeed project is typically circuitpython onewire protocol between boards. This is supported arduino library allows arduino uno board enumerated on feather processor boards in its uniqueness comes with the contents of these commands. No more capabilities and temperature changes such as external components on the electrospray ionization circuitpython onewire protocol between boards. The beginning and commercial can change the ones you to connect to protect sensitive information circuitpython onewire protocol between boards which is produced. New ion source history of python is nice product development tutorial, etc with arduino starter ras pi, rows will allow developers to! Visit the Windows IoT Dev Center to choose your open board or walk. See circuitpython onewire protocol between boards. We are also using a Seeed Grove shield for this tutorial. Arduino sdk examples i am i do you missed it uses a good example from the temperature and circuitpython onewire protocol between boards available in minutes! Library to determine size of a printed variable.
    [Show full text]
  • Adafruit IO Basics: Color Created by Justin Cooper
    Adafruit IO Basics: Color Created by Justin Cooper Last updated on 2020-08-26 12:06:05 PM EDT Overview This guide is part of a series of guides that cover the basics of using Adafruit IO. It will show you how to send color data from Adafruit IO to a RGB LED. If you haven't worked your way through the Adafruit IO feed and dashboard basics guides, you should do that before continuing with this guide so you have a basic understanding of Adafruit IO. Adafruit IO Basics: Feeds Adafruit IO Basics: Dashboards You should go through the setup guides associated with your selected set of hardware, and make sure you have internet connectivity with the device before continuing. The following links will take you to the guides for your selected platform. Adafruit Feather HUZZAH ESP8266 Setup Guide If you have went through all of the prerequisites for your selected hardware, you are now ready to move on to the Adafruit IO setup steps that are common between all of the hardware choices for this project. Let's get started! © Adafruit Industries https://learn.adafruit.com/adafruit-io-basics-color Page 3 of 30 Adafruit IO Setup The first thing you will need to do is to login to Adafruit IO and visit the Settings page. Click the VIEW AIO KEY button to retrieve your key. A window will pop up with your Adafruit IO. Keep a copy of this in a safe place. We'll need it later. Creating the Color Feed Next, you will need to create a feed called Color.
    [Show full text]
  • Adafruit ATECC608 Breakout Created by Kattni Rembor
    Adafruit ATECC608 Breakout Created by Kattni Rembor Last updated on 2019-09-17 09:12:37 PM UTC Overview You've got secrets, and you want to keep them safe? Most microcontrollers are not designed to protect against snoopers, but a crypto-authentication chip can be used to lock away private keys securely. Once the private key is saved inside, it can't be read out, all you can do is send it challenge-response queries. That means that even if someone gets hold of your hardware and can read back the firmware, they won't be able to extract the secret! The ATECC608 is the latest crypto-auth chip from Microchip, and it uses I2C to send/receive commands. Once you 'lock' the chip with your details, you can use it for ECDH and AES-128 encrypt/decrypt/signing. There's also hardware support for random number generation, and SHA-256/HMAC hash functions to greatly speed up a slower micro's cryptography commands. © Adafruit Industries https://learn.adafruit.com/adafruit-atecc608-breakout Page 3 of 19 We're starting to see these low-cost secure element chips in various products, so that a less expensive chip can be used to drive peripherals, without worrying about security. This chip does not have a public datasheet, but it is compatible with the ATECC508 earlier version which does, so please refer to that complete datasheet (https://adafru.it/FIg) as well as the ATECC608 summary sheet (https://adafru.it/FIh). The good news is that, despite not having complete documentation, there is some software support.
    [Show full text]
  • How to Choose a Microcontroller Created by Mike Stone
    How to Choose a Microcontroller Created by mike stone Last updated on 2021-03-16 09:01:47 PM EDT Guide Contents Guide Contents 2 Overview 4 Which Microcontroller is the Best? 4 How to Make a Bad Choice 5 How to Make a Good Choice 6 Sketching out the features you might want 6 A list of design considerations 6 Kinds of Microcontrollers 8 8-bit Microcontrollers 8 32-bit Microcontrollers 9 More About Peripherals with 32-Bit Chips 9 System On Chip Devices (SOC) 9 The microcontrollers in Adafruit products 11 8-bit Microcontrollers: 11 The ATtiny85 11 The ATmega328P 11 The ATmega32u4 12 32-bit Microcontrollers: 13 The SAMD21G 13 The SAMD21E 14 The SAMD51 15 System-On-a-Chip (SOCs) 16 The STM32F205 16 The nRF52832 16 The ESP8266 17 The ESP32 18 Simple Boards 20 Simple is Good 20 Where do I Start? 21 I want to learn microcontrollers, but don't want to buy a lot of extra stuff 21 Resources 22 Arduino 328 Compatibles 24 I want a microcontroller that is Arduino-Compatible 24 I want to build an Arduino-compatible microcontroller into a project 25 I want to build a battery-powered device 26 Next Step - 32u4 Boards 29 The Feather 32u4 Basic: 29 The Feather 32u4 Adalogger: 30 The ItsyBitsy 32u4: 30 Intermediate Boards 33 Branching Out 33 32-bit Boards 34 The Feather M0 Basic: 34 The Feather M0 Adalogger: 34 The ItsyBitsy M0: 35 The Metro M0: 36 CircuitPython Boards 37 The Circuit Playground Express: 37 The Metro M0 Express: 38 The Feather M0 Express: 39 © Adafruit Industries https://learn.adafruit.com/how-to-choose-a-microcontroller Page 2 of 54 The Trinket
    [Show full text]
  • Adafruit SCD-40 and SCD-41 Created by Kattni Rembor
    Adafruit SCD-40 and SCD-41 Created by Kattni Rembor Last updated on 2021-09-15 03:29:06 PM EDT Guide Contents Guide Contents 2 Overview 3 Pinouts 7 Power Pins 7 I2C Logic Pins 7 Jumpers 7 Python & CircuitPython 9 CircuitPython Microcontroller Wiring 9 Python Computer Wiring 9 Python Installation of SCD4x Library 10 CircuitPython Usage 11 Python Usage 11 Example Code: 11 Python Docs 14 Arduino 15 I2C Wiring 15 Library Installation 15 Load Example 16 Downloads 20 Files 20 Schematic and Fab Print 20 © Adafruit Industries https://learn.adafruit.com/adafruit-scd-40-and-scd-41 Page 2 of 22 Overview Take a deep breath in...now slowly breathe out. Mmm isn't it wonderful? All that air around us, which we bring into our lungs, extracts oxygen from and then breathes out carbon dioxide. CO2 is essential for life on this planet we call Earth - we and plants take turns using and emitting CO2 in an elegant symbiosis. But it's important to keep that CO2 balanced - you don't want too much around, not good for humans and not good for our planet. © Adafruit Industries https://learn.adafruit.com/adafruit-scd-40-and-scd-41 Page 3 of 22 The SCD-40 and SCD-41 are photoacoustic 'true' CO2 sensors that will tell you the CO2 PPM (parts-per- million) composition of ambient air. Unlike the SGP30, this sensor isn't approximating it from VOC gas concentration (https://adafru.it/PF7) - they really are measuring the CO2 concentration ! That means they're bigger and more expensive, but they are the real thing.
    [Show full text]
  • Circuitpython on Linux and Raspberry Pi Created by Lady Ada
    CircuitPython on Linux and Raspberry Pi Created by lady ada Last updated on 2021-07-29 02:06:31 PM EDT Guide Contents Guide Contents 2 Overview 4 Why CircuitPython? 4 CircuitPython on Microcontrollers 4 CircuitPython & RasPi 6 CircuitPython Libraries on Linux & Raspberry Pi 6 Wait, isn't there already something that does this - GPIO Zero? 7 What about other Linux SBCs? 7 Installing CircuitPython Libraries on Raspberry Pi 8 Prerequisite Pi Setup! 8 Update Your Pi and Python 8 Check I2C and SPI 10 Enabling Second SPI 10 Blinka Test 11 Digital I/O 12 Parts Used 12 Wiring 13 Blinky Time! 14 Button It Up 15 I2C Sensors & Devices 16 Parts Used 16 Wiring 17 Install the CircuitPython BME280 Library 18 Run that code! 19 I2C Clock Stretching 22 SPI Sensors & Devices 24 Reassigning the SPI Chip Enable Lines 25 Using the Second SPI Port 25 Parts Used 26 Wiring 27 Install the CircuitPython MAX31855 Library 28 Run that code! 29 UART / Serial 32 The Easy Way - An External USB-Serial Converter 32 The Hard Way - Using Built-in UART 34 Disabling Console & Enabling Serial 34 Install the CircuitPython GPS Library 36 Run that code! 37 PWM Outputs & Servos 40 Update Adafruit Blinka 40 Supported Pins 40 PWM - LEDs 40 Servo Control 41 pulseio Servo Control 42 adafruit_motor Servo Control 43 © Adafruit Industries https://learn.adafruit.com/circuitpython-on-raspberrypi-linux Page 2 of 61 More To Come! 44 CircuitPython & OrangePi 45 FAQ & Troubleshooting 46 Update Blinka/Platform Libraries 46 Getting an error message about "board" not found or "board" has no attribute 46 Mixed SPI mode devices 47 Why am I getting AttributeError: 'SpiDev' object has no attribute 'writebytes2'? 48 No Pullup/Pulldown support on some linux boards or MCP2221 49 Getting OSError: read error with MCP2221 50 Using FT232H with other FTDI devices.
    [Show full text]
  • Development of a Low-Cost Wearable Prevention System for Msds Using Imu Systems And
    DEVELOPMENT OF A LOW-COST WEARABLE PREVENTION SYSTEM FOR MSDS USING IMU SYSTEMS AND ELECTRICALLY CONDUCTIVE MATERIALS MANUFACTURING COST WEARABLE PREVENTION WEARABLE FORSYSTEM MSDS COST VIA ADDITIVE MANUFACTURING - MEMORY submitted for the Degree of Doctor of Philosophy of the University of Navarra by Chuan Cao DEVELOPMENT DEVELOPMENT OF LOW A under the supervision of USING IMU SYSTEMS USING IMU SYSTEMS AND ELECTRICALLY CONDUCTIVE VIA ADDITIVE MATERIALS María Isabel Rodríguez and Aitor Cazón Martín Donostia-San Sebastián, May 2020 Chuan Cao Chuan UNIVERSITY OF NAVARRA SCHOOL OF ENGINEERING DONOSTIA-SAN SEBASTIÁN DEVELOPMENT OF A LOW-COST WEARABLE PREVENTION SYSTEM FOR MSDS USING IMU SYSTEMS AND ELECTRICALLY CONDUCTIVE MATERIALS VIA ADDITIVE MANUFACTURING DISSERTATION submitted for the Degree of Doctor of Philosophy of the University of Navarra by CHUAN CAO under the supervision of MARÍA ISABEL RODRÍGUEZ and AITOR CAZÓN MARTÍN Donostia-San Sebastián, May 2020 Acknowledgement There is an ancient poem in China: "Hai nei cun zhi ji, tian ya ruo bi lin.", which means "A bosom friend afar brings distance near." During the three years of studying here, I have met many kind and lovely people and received countless help. Your meticulous care has made me feel like a hometown in this strange land, and also helped me to learn and experience a lot in this brand-new cultural environment. Here I want to express my gratitude with a little space. First of all, I appreciate that the University of Navarra - Tecnun gave me this opportunity to do my PhD here in such a beautiful city. Thanks to all the people who work here, your hard work has made each of us extraordinary.
    [Show full text]
  • 3D Printed Stand for Macropad RP2040 Created by Ruiz Brothers
    3D Printed Stand for MacroPad RP2040 Created by Ruiz Brothers Last updated on 2021-07-14 10:25:59 PM EDT Guide Contents Guide Contents 2 Overview 3 Easy Assembly 3 Parts 4 3D Printing 5 Slicing Parts 5 Design Source Files 5 Angles 6 © Adafruit Industries https://learn.adafruit.com/3d-printed-stand-for-macropad-rp2040 Page 2 of 7 Overview Make a stand for your MacroPad RP2040! This features a hinged kick stand that allows your to prop up your MacroPad RP2040. It's a print-in-place design that can be 3D printed without any support material. Easy Assembly Use M3 x 6mm screws to secure the MacroPad RP2040 to the mounting holes on the base of the stand. © Adafruit Industries https://learn.adafruit.com/3d-printed-stand-for-macropad-rp2040 Page 3 of 7 Parts Adafruit MACROPAD RP2040 Bare Bones - 3x4 Keys + Encoder + OLED Strap yourself in, we're launching in T-minus 10 seconds...Destination? A new Class M planet called MACROPAD! M here, stands for Microcontroller because this 3x4 keyboard... Out of Stock Out of Stock Adafruit MacroPad RP2040 Enclosure + Hardware Add-on Pack Dress up your Adafruit Macropad with PaintYourDragon's fabulous decorative silkscreen enclosure and hardware kit. You get the two custom PCBs that are cut to act as a protective... Out of Stock Out of Stock Your browser does not support the video tag. Adafruit MacroPad RP2040 Starter Kit - 3x4 Keys + Encoder + OLED Strap yourself in, we're launching in T-minus 10 seconds...Destination? A new Class M planet called MACROPAD! M here stands for Microcontroller because this 3x4 keyboard..
    [Show full text]