Johnny-Five ist ein auf dem Firmata-Protokoll basierendes Open-Source-Programmierframework für IoT und Robotik, das von der Nodebots-Community entwickelt wurde. Johnny-Five-Programme können für Arduino (alle Modelle), Electric Imp, Beagle Bone, Intel Galileo & Edison, Linino One, Pinoccio, pcDuino3, Raspberry Pi, Particle/Spark Core & Photon, Tessel 2, TI Launchpad und mehr geschrieben werden!
Johnny-Five hat sich von einem Leidenschaftsprojekt zu einem Werkzeug entwickelt, das Menschen aller Altersgruppen, Hintergründe und aus der ganzen Welt zum Lernen und zur Kreativität anregt.
Einfach nur daran interessiert, tolle Dinge zu lernen und zu bauen? Vielleicht möchten Sie mit der offiziellen Johnny-Five-Website beginnen.
Wenn Sie die API-Dokumentation finden möchten, finden Sie sie hier.
Müssen Sie herausfinden, welche Plattform Sie für ein Projekt verwenden sollten? Wir haben das Zeug hierher gebracht.
Brauchen Sie Inspiration für Ihren nächsten NodeBot? Schauen Sie sich die Beispiele an.
Möchten Sie über Projekte in der Community auf dem Laufenden bleiben? Schauen Sie sich das an.
Benötigen Sie Aktualisierungen und Ankündigungen der NodeBots-Community oder des Johnny-Five-Projekts? Das ist es, wonach Sie suchen.
Johnny-Five versucht nicht, „alles“ bereitzustellen, sondern konzentriert sich stattdessen auf die Bereitstellung robuster, realitätsgeprüfter, hochgradig zusammensetzbarer APIs, die sich auf allen unterstützten Hardwareplattformen konsistent verhalten. Johnny-Five möchte ein Basis-Steuerungskit für Hardware-Projekte sein, das Ihnen die Freiheit gibt, verschiedene JavaScript-Bibliotheken Ihrer Wahl zu erstellen, zu erweitern und damit zu experimentieren. Johnny-Five paart bequem mit:
Beliebte Anwendungsbibliotheken wie Express.js und Socket.io.
Andere Hardware-Projekte wie ar-drone, Aerogel und Spheron
Bluetooth-Gamecontroller wie XBox Controller und DualShock
IoT-Frameworks wie Octoblu
...Und das sind nur einige der vielen erforschbaren Möglichkeiten. Schauen Sie sich diese spannenden Projekte an: Node-Pulsesensor, Footballbot-Workshop-UI, Nodebotui, Dublin-Disco, Node-Slot-Car-Bot, Servo-Kalibrierer, Node-Ardx, Nodebot-Workshop, Phone-Home, Purple-Unicorn, webduino, leapduino, lasercat-workshop, simplesense, five-redbot, robotnik, the-blender
Warum JavaScript? NodeBots: Der Aufstieg der JavaScript-Robotik
Das allgegenwärtige „Hello World“-Programm der Mikrocontroller- und SoC-Welt ist „eine LED blinken lassen“. Der folgende Code zeigt, wie dies mit dem Johnny-Five-Framework geschieht.
const { Board, Led } = require("johnny-five");const board = new Board();board.on("ready", () => { // Erstelle eine LED an Pin 13 const led = neue Led(13); // Blinkt jede halbe Sekunde led.blink(500);});
Hinweis: Der Knoten stürzt ab, wenn Sie versuchen, Johnny-Five in der Knoten-REPL auszuführen, aber Board-Instanzen erstellen ihre eigene kontextbezogene REPL. Legen Sie Ihr Skript in eine Datei.
Johnny-Five wurde auf verschiedenen Arduino-kompatiblen Boards getestet.
Für nicht auf Arduino basierende Projekte stehen eine Reihe plattformspezifischer IO-Plugins zur Verfügung. IO-Plugins ermöglichen es Johnny-Five-Code, mit jeder nicht auf Arduino basierenden Hardware in jeder Sprache zu kommunizieren, die die Plattform spricht!
Dokumentation zur Johnny-Five-API finden Sie hier und Beispielprogramme hier.
Brauchen Sie Hilfe? Stellen Sie eine Frage im NodeBots-Community-Forum. Wenn Sie nur eine kurze Frage haben oder an laufenden Designdiskussionen interessiert sind, nehmen Sie am Johnny-Five Gitter Chat teil.
Schritt-für-Schritt-Beispiele, einschließlich einer Einführung in die Elektronik, finden Sie im Arduino Experimenter's Guide für NodeJS von @AnnaGerber
Hier finden Sie eine Liste der Voraussetzungen für Linux, OSX oder Windows.
Schauen Sie sich die Bluetooth-Anleitung an, wenn Sie Ihren Roboter fernsteuern möchten.
Empfohlenes Startset: Sparkfun Erfinder-Set
Laden Sie die Arduino IDE herunter
Schließen Sie Ihren Arduino oder Arduino-kompatiblen Mikrocontroller über USB an
Öffnen Sie die Arduino-IDE und wählen Sie: Datei > Beispiele > Firmata > StandardFirmataPlus
StandardFirmataPlus ist in Firmata v2.5.0 oder höher verfügbar
Klicken Sie auf die Schaltfläche „Hochladen“.
Wenn der Upload erfolgreich war, ist das Board nun vorbereitet und Sie können die Arduino IDE schließen.
Für Nicht-Arduino-Projekte stellt das Repo jedes IO-Plugins seine eigenen plattformspezifischen Einrichtungsanweisungen bereit.
Git-Klon git://github.com/rwaldron/johnny-fünf.git && cd johnny-fünf npm installieren
Installieren Sie das Modul mit:
npm installiere Johnny-Five
Damit Sie schnell loslegen können, stellen wir verschiedene Beispiele für die Verwendung jeder Johnny-Five-Komponente zur Verfügung. Was uns besonders begeistert, ist die umfangreiche Sammlung von Fritzing-Diagrammen, die Sie auf der gesamten Website finden. Ein großer Teil jedes Johnny-Five-Projekts ist der Umgang mit der eigentlichen Hardware, und wir haben diese in die Dokumentation aufgenommen, weil wir erkannt haben, dass Anweisungen zum Schreiben von Code zur Steuerung eines Servos ohne Anweisungen zum Anschließen eines Servos nicht ausreichen Servo!
Um interaktiv durch die Beispiele zu navigieren, besuchen Sie die Johnny-Five-Beispielseite auf der offiziellen Website. Wenn Sie direkt auf die Beispiele in diesem Repo verlinken möchten, können Sie einen der folgenden Links verwenden.
Derzeit gibt es 362 Beispielprogramme mit Code und Diagrammen!
Board – Grundinitialisierung
Board – Aufräumen im „Exit“-Ereignis
Board – Mehrere in einem Programm
Board – Sampling-Intervall angeben
Board - Port angeben
Benutzerdefinierte Dateneigenschaften
Stift
ERSATZ
LED
LED – blinkt
LED – Demosequenz
LED – Verblassen
LED – Rückruf ausblenden
LED – Überblendung mit Animation
LED – PCA9685
LED - Impuls
LED - Puls mit Animation
LED - Schieber
LED – Tessel-Servomodul
LEDs – Eine Reihe von LEDs
LEDs – Steuerung einer Reihe von LEDs
LED – RGB (gemeinsame Anode)
LED – RGB (gemeinsame Anode) PCA9685
LED – RGB-Intensität
LED - Regenbogen
LED - Rainbow BlinkM
LED - Digitaluhr
LED – Digitaluhr, zwei Displays
LED - Digitaluhr, HT16K33
LED – Demo zum Zeichnen von Matrixzeichen
LED – Zählen Sie Matrixzeichen und -symbole auf
LED-Matrix
LED – Matrix-Demo
LED - Matrix HT16K33
LED - Matrix HT16K33 16x8
Servo
Servo – Kontinuierlich
Servo - Antrieb
Servo - Multiturn
Servo - PCA9685
Servo - Eingabeaufforderung
Servo – Schieberegler
Servo - Tessel-Servomodul
Servos – Eine Reihe von Servos
GPS – Adafruit Ultimate GPS Breakout
GPS – Standard-GPS
GPS – Hardware-Seriell
GPS - Sparkfun GP-20U7
Servo - Animation
Servo – Beinanimation
Farbe – EVShield EV3 (Code)
Farbe – EVShield EV3 (Roh)
Farbe – EVShield NXT (Code)
Farbe – ISL29125
Motor
Motor - 3-polig
Motor – Adafruit DRV8871 DC-Motortreiber-Breakout
Motor - Bremse
Motor - Strom
Motor - Richtungsgesteuert
Motor - EVShield EV3
Motor - EVShield NXT
Motor – Pin aktivieren
Motor – GROVE_I2C_MOTOR_DRIVER
Motor - H-Brücke
Motor - LUDUS
Motor - PCA9685
Motor – Pololu VNH5019 Dual Motor Driver Breakout
Motor – Sparkfun Dual H-Brücke Edison Block
Motor - Sparkfun TB6612FNG
Motor - l298 Breakout
Motoren – Duale H-Brücke
Stepper - Fahrer
Stepper – Vierdraht
Stepper – Sweep
ESC – Bidirektional
ESC – Tastendruckgesteuerte ESCs
Regler – PCA9685
Taste
Knopf – Stoßstange
Schaltfläche - EVShield EV3
Schaltfläche – EVShield NXT
Schaltfläche – Optionen
Knopf – Pullup
Knöpfe – Kollektion mit AT42QT1070
Schalten
Schalter - Magnetische Tür
Schalter - Neigung SW-200D
Kippschalter
Tastatur – 3x4 I2C Nano Rucksack
Tastatur – 4x4 I2C Nano Rucksack
Tastatur – VKEY
Tastatur – Waveshare AD
Touchpad – Grove QTouch
Touchpad - MPR121
Touchpad - MPR121, Empfindlichkeit
Touchpad – MPR121QR2_SHIELD
Touchpad – MPR121_KEYPAD
Touchpad – MPR121_SHIELD
Relais
Staffel - Sammlung
Relais am analogen Pin
Schieberegister
Schieberegister – Sieben-Segment-Controller mit gemeinsamer Anode
Schieberegister – Gemeinsame Anode Sieben Segmente, verkettet
Schieberegister – Sieben-Segment-Controller
Schieberegister – Sieben Segmente, verkettet
IR-Bewegung
IR-Nähe
IR-Reflexionsgrad
IR-Reflexionsarray
Nähe
Nähe – EVShield EV3 (IR)
Nähe – EVShield EV3 (IR)
Nähe – EVShield EV3 (Ultraschall)
Nähe – EVShield EV3 (Ultraschall)
Nähe - GP2Y0A710K0F
Nähe – HC-SR04
Nähe – HC-SR04 (Analog)
Proximity – HC-SR04 I2C Rucksack
Nähe – LIDAR-Lite
Nähe – MB1000
Nähe – MB1003
Nähe – MB1010
Nähe – MB1230
Nähe – SRF10
Bewegung
Bewegung - GP2Y0A60SZLF
Bewegung - GP2Y0D805Z0F
Bewegung - GP2Y0D810Z0F
Bewegung - GP2Y0D810Z0F
Joystick
Joystick - Esplora
Joystick – Schwenk- und Neigungssteuerung
Joystick – Sparkfun-Schild
Grove – RGB-LCD-Farbvorschau
LCD
LCD – Zeichen aufzählen
LCD - I2C
LCD - I2C PCF8574
LCD - I2C-Läufer
LCD - Läufer 16x2
LCD - Läufer 20x4
LCD - Tessel 2 16x2
Tessel 2 + Grove – RGB-LCD-Farbvorschau
Tessel 2 + Grove – RGB-LCD-Display
Kompass – Finden Sie den Norden
Kompass - HMC5883L
Kompass - HMC6352
Kompass - Logger
Kompass - MAG3110
Kompass – MAG3110 auf Tessel 2
Kompass / Magnetometer
Piezo
IMU - BNO055
IMU - BNO055 (Ausrichtung)
IMU - LSM303C
IMU - MPU6050
Multi - BME280
Multi - BMP085
Multi - BMP180
Mehrfarbig – DHT11_I2C_NANO_BACKPACK
Mehrfarbig – DHT21_I2C_NANO_BACKPACK
Multi - DHT22_I2C_NANO_BACKPACK
Mehrfarbig – HIH6130
Multi - HTU21D
Multi - MPL115A2
Multi - MPL3115A2
Multi - MS5611
Multi - SHT31D
Multi - SI7020
Multi - SI7021
Mehrfarbig – TH02
Beschleunigungsmesser
Beschleunigungsmesser – ADXL335
Beschleunigungsmesser – ADXL345
Beschleunigungsmesser - LIS3DH
Beschleunigungsmesser – MMA7361
Beschleunigungsmesser – MMA8452
Beschleunigungsmesser – MPU6050
Beschleunigungsmesser – Schwenken + Neigen
Höhenmesser - BMP085
Höhenmesser - BMP180
Höhenmesser - MPL3115A2
Höhenmesser - MS5611
Barometer - BMP085
Barometer - BMP180
Barometer - MPL115A2
Barometer - MPL3115A2
Barometer - MS5611
Kreisel
Gyro - Analog LPR5150AL
Kreisel - I2C MPU6050
Hygrometer - DHT11_I2C_NANO_BACKPACK
Hygrometer - DHT21_I2C_NANO_BACKPACK
Hygrometer - DHT22_I2C_NANO_BACKPACK
Hygrometer - HIH6130
Hygrometer - HTU21D
Hygrometer - SHT31D
Hygrometer - SI7021
Hygrometer - TH02
Sensor
Sensor - Digitale Mikrowelle
Sensor – Flex-Sensor
Sensor – Kraftempfindlicher Widerstand
Sensor - Mikrofon
Sensor - Fotowiderstand
Sensor - Potentiometer
Sensor - Schiebepotentiometer
Thermometer - BMP085
Thermometer - BMP180
Thermometer - DHT11_I2C_NANO_BACKPACK
Thermometer - DHT21_I2C_NANO_BACKPACK
Thermometer - DHT22_I2C_NANO_BACKPACK
Thermometer - DS18B20
Thermometer - Dual DS18B20
Thermometer - HIH6130
Thermometer - HTU21D
Thermometer - LM335
Thermometer - LM35
Thermometer - MAX31850
Thermometer - MCP9808
Thermometer - MPL115A2
Thermometer - MPL3115A2
Thermometer - MPU6050
Thermometer - MS5611
Thermometer - SHT31D
Thermometer - SI7020
Thermometer - SI7021
Thermometer - TH02
Thermometer - TMP102
Thermometer - TMP36
Expander – 74HC595
Expander – CD74HC4067, 16-Kanal-Analogeingangs-Breakout
Expander – LIS3DH
Expander – MCP23008
Expander – MCP23017
Expander - MUXSHIELD2, Analogsensoren
Expander – MUXSHIELD2, digitaler Ein- und Ausgang
Expander – PCA9685
Expander - PCF8574
Expander - PCF8575
Expander - PCF8591
Photonen-Wetterschild: Feuchtigkeit
Schaltfläche - EVShield EV3
Schaltfläche – EVShield NXT
Farbe – EVShield EV3 (Code)
Farbe – EVShield EV3 (Roh)
Farbe – EVShield NXT (Code)
Licht – BH1750
Licht – EVShield EV3 (Umgebung)
Licht – EVShield EV3 (reflektiert)
Licht – EVShield NXT (Umgebung)
Licht – EVShield NXT (reflektiert)
Licht – TSL2561
Motor - EVShield EV3
Motor - EVShield NXT
Nähe – EVShield EV3 (IR)
Nähe – EVShield EV3 (Ultraschall)
Intel Edison + Grove – Beschleunigungsmesser (ADXL345)
Intel Edison + Grove – Beschleunigungsmesser (MMA7660)
Intel Edison + Grove – Luftqualitätssensor
Intel Edison + Grove - Barometer (BMP180)
Intel Edison + Grove - Knopf
Intel Edison + Grove – Kompass (HMC588L)
Intel Edison + Grove – Flammensensor
Intel Edison + Grove – Gas (MQ2)
Intel Edison + Grove – Luftfeuchtigkeit und Temperatur (TH02)
Intel Edison + Grove – I2C-Motortreiber
Intel Edison + Grove – Joystick
Intel Edison + Grove - LED
Intel Edison + Grove – Lichtsensor (TSL2561)
Intel Edison + Grove – Feuchtigkeitssensor
Intel Edison + Grove – Q Touch
Intel Edison + Grove – RGB-LCD
Intel Edison + Grove – RGB-LCD-Farbvorschau
Intel Edison + Grove – RGB-LCD-Temperaturanzeige
Intel Edison + Grove – Relais
Intel Edison + Grove – Drehpotentiometer
Intel Edison + Grove – Servo
Intel Edison + Grove – Touch
Grove - Knopf
Grove – Joystick
Grove - LED
Grove - Motor (I2C-Treiber)
Grove - RGB-LCD
Grove - RGB-LCD-Temperaturanzeige
Grove - Drehpotentiometer
Grove - Servo
Hain – Berühren
Micro Magician V2 – Beschleunigungsmesser
Micro Magician V2 - Motor
Micro Magician V2 - Servo
TinkerKit - Beschleunigungsmesser
TinkerKit - Blink
TinkerKit - Schaltfläche
TinkerKit – Kombi
TinkerKit – Kontinuierliches Servo
TinkerKit - Gyro
TinkerKit - Joystick
TinkerKit - Lineares Potentiometer
TinkerKit - Drehpotentiometer
TinkerKit - Temperatur
TinkerKit - Neigung
TinkerKit - Berühren
Wii Classic-Controller
Wii-Nunchuck
Insekt
Kinect-Roboterarm-Controller
Laser-Stolperdraht
Linienfolger
Lynxmotion Zweibeiniger Göre
Motobot
Navigator
Nodebot
Phönix-Hexapod
Radar
Roboterklaue
Schnurrhaar
Beispiel-Plugin
LED blinkt bei elektrischem Imp
LED-Blinken auf dem Intel Edison Arduino Board
LED-Blinken auf dem Intel Edison Mini-Board
LED-Blinken auf Intel Galileo Gen 2
LED-Blinken auf Raspberry Pi
LED blinkt am Spark Core
LED blinkt auf pcDuino3
Alle Beiträge müssen dem Idiomatic.js Style Guide entsprechen und den bestehenden Codierungsstil beibehalten. Fügen Sie Komponententests für jede neue oder geänderte Funktionalität hinzu. Flusen und testen Sie Ihren Code mit Grunzen.
Copyright (c) 2012, 2013, 2014 Rick Waldron [email protected] Lizenziert unter der MIT-Lizenz. Copyright (c) 2014, 2015 The Johnny-Five Contributors, lizenziert unter der MIT-Lizenz.