Connected Hardware for Software Engineers 101 Pance Cavkovski, Netcetera.

Slides:



Advertisements
Similar presentations
Intel Do-It-Yourself Challenge Intel Galileo and Edison Paul Guermonprez Intel Software.
Advertisements

ARM development environment Modified Content Philips LPC2106 ARM chip ARM target board PSPad customised development environment Troubleshooting.
1. 2 FRC 2010 Driver Station Doug Norman & Stephanie Brierty National Instruments January 8, 2010 Thanks to Joe Ross – Team 330.
And cheap, yes! River Falls, WI October 30, 2010 Saint Cloud State University, MN.
Intel® XDK for IoT – Integration Point #1
Travis Reed Todd Hummel Kwan-Truc. Concept USB 1.1 SPI b.
IO Controller Module Arbitrates IO from the CCP Physically separable from CCP –Can be used as independent data logger or used in future projects. Implemented.
Microprocessor or Microcontroller Not just a case of “you say tomarto and I say tomayto” M. Smith, ECE University of Calgary, Canada.
Department of Electrical & Computer Engineering Preliminary Design Review Team: Lucas Root Telin Kim Brandon Thorpe Michael Shusta Advisor: Professor Tessier.
Teaching Kids to Program Things with Java and the Raspberry Pi Ian Utting & Fabio Hedayioglu.
Today’s Agenda New Hardware Setup of RoboRIO
UFCFX5-15-3Mobile Device Development Android Development Environments and Windows.
Welcome to Workshop 88’s Tiny85 Class Please download Tiny core libs from: (for Arduino 1.0, not 1.5!) Unzip and.
Part 1 Using the ARM board And start working with C Tutorial 5 and 6
Intro to Arduino Zero to Virtual Prototyping in Seven Hours
Silicon Labs ToolStick Development Platform
Little arduino microcontrollers Meghan Jimenez 12 February 2014.
DPNM Lab., POSTECH 1/29 CS490K - Internet of Things (IoT) Jonghwan Hyun DPNM Lab. Department of Computer Science and Engineering, POSTECH
© Copyright Xilinx 2004 All Rights Reserved 9 November, 2004 XUP Virtex-II Pro Development System.
RC CAR CONTROLLER BASED ON INTEL GALILEO SOC PLATFORM Nadav Shiloach Sagi Sabag Supervisor: Idan Shmuel Spring 2014 One Semester Project PROJECT’S ENDING.
Department of Electrical Engineering Electronics Computers Communications Technion Israel Institute of Technology High Speed Digital Systems Lab. High.
1 The Affordable Internet of Things (How to Connect More for Less)
Daniel Pickem and Rowland O’Flaherty 12/04/2012 Mechatronics (ME 6405) Student Lecture On Arduinos *Some slides courtesy of Eoin Brazil
The New FTC Platform (Connecting your legacy hardware)
Minimal Movement Interactive Entertainment Unit Michael Lorenzo, Ryan Kelly, Chase Francis, Ernie Wilson Faculty Advisor: Prof. Neal Anderson Department.
Arduino. What is it? A open-source software suite and single-board microcontroller. Allows easy and affordable prototyping of microcontroller applications.
Implementation of an Economical Web Server for Home Automation System Based on IR, Bluetooth and Ethernet Technology Dr.-Ing. Chao-Huang Wei Department.
Application Block Diagram III. SOFTWARE PLATFORM Figure above shows a network protocol stack for a computer that connects to an Ethernet network and.
Smart Parking System PREPARED BY : GHADEER AQRAA AND MARAH JABER.
Sun Small Programmable Object Technology (Sun SPOT)‏
Lecture 7: Overview Microprocessors / microcontrollers.
ECE445 – SPRING CSW Corey S Wilner – Cypress FAE January 26, 2016 UIUC ECE445 Project Ideas.
1 KaaShivInfoTech Presents Intel XDK For Inplant Training / Internship, please download the "Inplant training registration form" from our website
ARDUINO OVERVIEW Bob Wilton – KF5TPQ. ARDUINO UNO.
Final Presentation Smart-Home Smart-Switch using Arduino
Microcontrollers JULES CALELLA. Microcontrollers vs Microprocessors  Microprocessors – do not contain RAM, ROM, I/O  Microcontrollers – The whole package.
Raspberry Pi Project Control Your Home Lights with a Raspberry Pi.
SEPTEMBER 8, 2015 Computer Hardware 1-1. HARDWARE TERMS CPU — Central Processing Unit RAM — Random-Access Memory  “random-access” means the CPU can read.
丁建文 國立高雄應用科大資管系副教授 兼任計網中心軟體發展組組長 跨平台行動應用軟體開發技術 : HTML5 & Mobile JavaScript Framework 暨南大學.
Microcontroller basics
Embedded Linux By Gus Wirth. What makes it embedded? ● Rather nebulous, line has blurred over the years ● Limited purpose ● Small resources compared to.
Maj Jeffrey Falkinburg Room 2E46E
Engineering Innovation Center
Mobile Device Development
Operating System Overview
Michael Rahaim, PhD Candidate Multimedia Communications Lab
Class 1: Building a Raspberry Pi LED Flasher
IoT Milos Hampl.
Welcome to Arduino A Microcontroller.
Vinculum II Development Modules
Chapter A - The Raspberry Pi Computer
From Things to the Internet: Teaching Kids to Code Java on the Raspberry Pi Ian Utting & Fabio Hedayioglu.
Remote Sensor Interface for IoT
Dino Light Spencer Dennis, William Gowell, Zack Teasdale
Arduino Part 1 Topics: Microcontrollers Programming Basics
Offline software installation
Arduino and Design of Embedded Applications
Arduino and Grove LET’S START.
Future Designs, Inc. Your Development Partner
"You don't need anyone's permission to make something great
Building an Internet of Things Device
KaaShivInfoTech Presents
NS Training Hardware.
Single Board Computers and Dev Boards
Arduino Board.
Arduino म्हणजे काय?.
Remote Sensor Interface for IoT
Arduino and Grove LET’S START.
Introduction to arduino
02 | Getting Started with Arduino
Presentation transcript:

Connected Hardware for Software Engineers 101 Pance Cavkovski, Netcetera

whoami senior software NetceteraNetcetera jug.mk Leaderjug.mk codefu.mk admincodefu.mk hardware & IoT enthusiast and

You can do hardware Yes, yes you can! It’s cheap It’s accessible It’s way easier than before. …and you can buy stuff online.

RaspberryPi Zero 1 GHz ARM CPU 512 MB RAM Hardware video support HDMI/USB GPIO headers! Can run Java and JavaFX! Bundled JDK8 with Raspbian $5

pi4j JNI to wiringpi C library Can export & control GPIO pins as I/O Supports SPI, I2C, UART Managed and unmanaged access Extension packages

Hello World! GpioController gpio = GpioFactory.getInstance(); GpioPinDigitalOutput pin = gpio.provisionDigitalOutputPin( RaspiPin.GPIO_00, "LED", PinState.HIGH); Thread.sleep(5000); pin.low(); gpio.shutdown();

What’s up world? GpioController gpio = GpioFactory.getInstance(); GpioPinDigitalOutput pinOut = gpio.provisionDigitalOutputPin( RaspiPin.GPIO_00, "LED", PinState.HIGH); GpioPinDigitalInput pinIn = gpio.provisionDigitalInputPin( RaspiPin.GPIO_01, PinPullResistance.PULL_DOWN); pinIn.addListener(event -> { if (event.getState().equals(PinState.HIGH)) { pinOut.toggle();}});

Other stuff you can do Abstractions for UART, SPI and I2C Can connect third party modules (e.g.: NFC) But … can’t do any analog I/O directly… Bad fast SPI processing…

Also: Open JFX Step 1: Acquire PiTFT (or a replica if you will…) Step 2: Download and extract OpenJFX binaries * Step 3: Build your project Step 4: Execute with: -Djava.ext.dirs=dir/to/jfx/ext -Dglass.platform=Monocle -Dmonocle.screen.fb=/dev/fb1 -Dprism.order=sw Step 0: Be careful: 320x240 with precautions *) Reliable source:

What about analog? And can I make it simpler? Cheaper? Out of the box connected?

NodeMCU devkit (ESP8266) Development / Prototyping board Arduino like Based on ESP-12(E) Fully programmable

NodeMCU devkit cont.(ESP8266) GPIO, 1 ADC, UART, SPI Built-in Wi-Fi Low-power $5

Coding for ESP8266 Available Arduino port! Download, install boards manager, driver.

Coding for ESP8266 Can be set to work as a Soft AP or Wi-Fi Client Available libraries + examples (Arduino): - (Advanced) WebServer - WebSockets - NeoPixelBus - DHT11 - etc…

E.g.: Wi-fi Light NodeMCU x WS2812 (NeoPixels) Connect to a network Start up Advanced Web Server Show UI and Handle requests Use NeoPixelBus BlogPost + pance.mkpance.mk

Make it configurable Start a Soft AP with web-server for configuration User enters data via a smart phone Store data in EEPROM Device reboots and initializes On error or change: hardware reset button.

Make actual hardware nodes Prototype board 3D case and model Custom PCB + enclosure Product?

How to get started? Get a RaspberryPi2 / RaspberryPi zero / ESP8266 startup kits Visit pij4.com, download it and go through the examples Download the ESP8266 Arduino port and go through the examples Learn the syntax and experiment.

Learn a thing or two for hardware There are a lot of tutorials out there, start with them (e.g. adafruit) Get to know the basics of digital electronics and interfaces Learn what’s behind analog electronics and know the building blocks Use a breadboard and experiment

Actually make something Teach yourself how to design and make a PCB Learn and practice soldering Invest into 3D modeling and maybe printing Checkout Fritzing and Thingiverse.