You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

167 lines
9.4 KiB
Markdown

<h1 align="center">
<img src="https://user-images.githubusercontent.com/45159366/104068298-878e9480-51b9-11eb-8ce3-3aecaddb6015.png">
<br />
Arduino Guide
</h1>
#### A guide covering Arduino devices such as the Arduino Uno and Arduino Nano. Along with the tools, applications and libraries that will make you a better and more efficient developer with Arduino devices. Also, learn about cool projects that you can build with your Arduino device.
3 years ago
**Note: You can easily convert this markdown file to a PDF in [VSCode](https://code.visualstudio.com/) using this handy extension [Markdown PDF](https://marketplace.visualstudio.com/items?itemName=yzane.markdown-pdf).**
# Table of Contents
1. [Models of Arduino boards](https://github.com/mikeroyal/Arduino-Guide/blob/main/README.md#models-of-arduino-boards)
2. [Arduino Learning Resources](https://github.com/mikeroyal/Arduino-Guide/blob/main/README.md#arduino-learning-resources)
3. [Arduino Tools](https://github.com/mikeroyal/Arduino-Guide/blob/main/README.md#arduino-tools)
4. [Operating Systems for Arduino](https://github.com/mikeroyal/Arduino-Guide/blob/main/README.md#operating-systems-for-arduino)
3 years ago
<p align="center">
<img src="https://user-images.githubusercontent.com/45159366/111917911-9dcd9200-8a3f-11eb-8463-9c21514b4792.png">
</p>
# Models of Arduino boards
[Back to the Top](https://github.com/mikeroyal/arduino-Guide/blob/main/README.md#table-of-contents)
[Checkout the Arduino Starter Kit](https://store.arduino.cc/usa/arduino-starter-kit)
<img src="https://user-images.githubusercontent.com/45159366/104068309-8a898500-51b9-11eb-9265-beb5a28e649b.jpg">
[Checkout the Arduino Uno](https://store.arduino.cc/usa/arduino-uno-rev3)
<img src="https://user-images.githubusercontent.com/45159366/104068324-8eb5a280-51b9-11eb-942c-390f5b29b259.jpg">
**Arduino Uno Hardware Specs**
- Microcontroller ATmega328P
- Operating Voltage 5V
- Input Voltage (recommended) 7-12V
- Input Voltage (limit) 6-20V
- Digital I/O Pins 14 (of which 6 provide PWM output)
- Flash Memory 32 KB (ATmega328P) of which 0.5 KB used by bootloader
- SRAM 2 KB (ATmega328P)
- EEPROM 1 KB (ATmega328P)
- Clock Speed 16 MHz
[Checkout the Arduino Nano](https://store.arduino.cc/usa/arduino-nano)
<img src="https://user-images.githubusercontent.com/45159366/104068320-8d847580-51b9-11eb-960d-8faa3ef525fc.jpg">
**Arduino Nano Hardware Specs**
- Microcontroller ATmega328
- Architecture AVR
- Operating Voltage 5 V
- Flash Memory 32 KB of which 2 KB used by bootloader
- SRAM 2 KB
- Clock Speed 16 MHz
- Input Voltage 7-12 V
- Digital I/O Pins 22 (6 of which are PWM)
3 years ago
3 years ago
## Arduino Learning Resources
[Back to the Top](https://github.com/mikeroyal/arduino-Guide/blob/main/README.md#table-of-contents)
3 years ago
[Arduino](https://www.arduino.cc/) is an open source electronic prototyping platform enabling users to create interactive electronic objects.
3 years ago
[Arduino Reference Manual](https://www.arduino.cc/reference/)
3 years ago
[Getting Started with Arduino](https://create.arduino.cc/getting-started)
3 years ago
[Arduino Education](https://www.arduino.cc/education)
3 years ago
[Arduino Store](https://store.arduino.cc/)
3 years ago
[Arduino Forum](https://forum.arduino.cc/)
3 years ago
[Arduino Courses on Udemy](https://www.udemy.com/topic/arduino/)
[Arduino Courses on Coursera](https://www.coursera.org/courses?query=arduino)
3 years ago
[Online Arduino Classes on Skillshare](https://www.skillshare.com/browse/arduino)
3 years ago
[Introduction to Arduino course on Pluralsight](https://www.pluralsight.com/courses/arduino-introduction)
[Arduino Training Courses on NobleProg](https://www.nobleprog.com/arduino-training)
[Arduino with Python course from Real Python](https://realpython.com/arduino-python/)
[200+ Arduino Projects on Instructables](https://www.instructables.com/Arduino-42/)
3 years ago
3 years ago
## Arduino Tools
[Back to the Top](https://github.com/mikeroyal/arduino-Guide/blob/main/README.md#table-of-contents)
3 years ago
[Arduino CLI](https://github.com/arduino/arduino-cli) is an all-in-one solution that provides builder, Boards/Library Manager, uploader, discovery and many other tools needed to use any Arduino compatible board and platforms.
[Arduino IDE](https://www.arduino.cc/en/software) is an open source integrated development environment(IDE) for the Arduino computing platforms based on easy-to-use hardware and software.
[Arduino Pro IDE](https://github.com/arduino/arduino-pro-ide) is a professional version of the Arduino IDE that brings more features for advanced users and developers. The project is currently in the experimently version.
[VSCode Arduino](https://github.com/Microsoft/vscode-arduino) is a VSCode extension for Arduino. The Arduino extension makes it easy to develop, build, deploy and debug your Arduino sketches in Visual Studio Code, with a rich set of functionalities.
[Gobot](https://gobot.io/) is a framework using the [Golang](https://golang.org/) programming language for robotics, physical computing, and the Internet of Things(IoT).
[Tasmota](https://tasmota.github.io/docs) is an alternative firmware for [ESP8266](https://en.wikipedia.org/wiki/ESP8266) based devices with easy configuration using webUI, OTA updates, automation using timers or rules, expandability and entirely local control over MQTT, HTTP, Serial or KNX.
[Blynk](https://www.blynk.cc/) is a C++ library for embedded hardware. It works with over 400 hardware models such as Arduino, ESP8266, Raspberry Pi, Intel Edison/Galileo, LinkIt ONE, Particle Core/Photon, ARM mbed, etc.
[Arduino Thread](https://github.com/ivanseidel/ArduinoThread) is a library tha makes it simple to run Threads on Arduino.
[PlatformIO](https://platformio.org/) is a professional collaborative platform for embedded development with no vendor lock-in. It provides support for multiplatforms and frameworks such as IoT, Arduino, CMSIS, ESP-IDF, FreeRTOS, libOpenCM3, mbed OS, Pulp OS, SPL, STM32Cube, Zephyr RTOS, ARM, AVR, Espressif (ESP8266/ESP32), FPGA, MCS-51 (8051), MSP430, Nordic (nRF51/nRF52), NXP i.MX RT, PIC32, RISC-V.
[PlatformIO for VSCode](https://marketplace.visualstudio.com/items?itemName=platformio.platformio-ide) is a plugin that provides support for the PlatformIO IDE on VSCode.
[Tock](https://www.tockos.org/) is an embedded operating system designed for running multiple concurrent, mutually distrustful applications on Cortex-M and RISC-V based embedded platforms. Tock's design centers around protection, both from potentially malicious applications and from device drivers.
[TinyGo](https://tinygo.org/) is a Go compiler(based on LLVM) intended for use in small places such as microcontrollers, WebAssembly (Wasm), and command-line tools.
[LLVM](https://github.com/llvm/) is a library that has collection of modular/reusable compiler and toolchain components (assemblers, compilers, debuggers, etc.). With these components LLVM can be used as a compiler framework, providing a front-end(parser and lexer) and a back-end (code that converts LLVM's representation to actual machine code).
[Chipyard](https://chipyard.readthedocs.io/en/latest/) is an open source framework for agile development of Chisel-based systems-on-chip. It will allow you to leverage the Chisel HDL, Rocket Chip SoC generator, and other [Berkeley](https://berkeley.edu/) projects to produce a RISC-V SoC with everything from MMIO-mapped peripherals to custom accelerators.
[The Eclipse Embedded CDT](https://github.com/eclipse-embed-cdt/eclipse-plugins) is a collection of plug-ins for Arm & RISC-V C/C++ developers.
[Unicorn](https://github.com/unicorn-engine/unicorn) is a lightweight, multi-platform, multi-architecture CPU emulator framework(ARM, AArch64, M68K, Mips, Sparc, X86) based on [QEMU](https://www.qemu.org/).
[Keystone](https://github.com/keystone-engine/keystone) is a lightweight multi-platform, multi-architecture(Arm, Arm64, Hexagon, Mips, PowerPC, Sparc, SystemZ & X86) assembler framework.
3 years ago
# Operating Systems for Arduino
[Back to the Top](https://github.com/mikeroyal/arduino-Guide/blob/main/README.md#table-of-contents)
[HeliOS](https://www.arduino.cc/reference/en/libraries/helios/) is an embedded operating system that is free for anyone to use. While called an operating system for simplicity, HeliOS is better described as a multitasking kernel for embedded systems.
[FreeRTOS](https://freertos.org/) is a market-leading real-time operating system (RTOS) for microcontrollers and small microprocessors.
[Simba](https://simba-os.readthedocs.io/en/latest/getting-started.html) is a small OS for an Embedded Programming Platform like Arduino. It aims to make embedded programming easy and portable.
[Trampoline](https://github.com/TrampolineRTOS/) is a static RTOS for small embedded systems.
[DuinOS](https://github.com/DuinOS/DuinOS) is Framework (a wrapper) for use the FreeRTOSwith Arduino.
[VxWorks](https://www.windriver.com/products/vxworks) is an industry-leading real-time operating systems (RTOS) for building embedded devices and systems for more than 30 years.
[LynxOS](https://www.lynx.com/products/lynxos-posix-real-time-operating-system-rtos) is a native POSIX, hard real-time partitioning operating system developed by Lynx Software Technologies.
3 years ago
## Contribute
- [x] If would you like to contribute to this guide simply make a [Pull Request](https://github.com/mikeroyal/Arduino-Guide/pulls).
## License
[Back to the Top](https://github.com/mikeroyal/Arduino-Guide/blob/master/README.md#table-of-contents)
Distributed under the [Creative Commons Attribution 4.0 International (CC BY 4.0) Public License](https://creativecommons.org/licenses/by/4.0/).