Johnny-Five est un cadre de programmation Open Source, basé sur le protocole Firmata, IoT et robotique, développé par la communauté Nodebots. Les programmes Johnny-Five peuvent être écrits pour Arduino (tous les modèles), Electric Imp, Beagle Bone, Intel Galileo & Edison, Linino One, Pinoccio, pcDuino3, Raspberry Pi, Particle/Spark Core & Photon, Tessel 2, TI Launchpad et plus encore !
Johnny-Five est passé d'un projet passionné à un outil inspirant l'apprentissage et la créativité pour les personnes de tous âges, de tous horizons et du monde entier.
Vous souhaitez simplement apprendre et construire des choses géniales ? Vous voudrez peut-être commencer par le site officiel de Johnny-Five.
Si vous souhaitez retrouver la documentation de l'API, c'est ici.
Besoin de savoir quelle plateforme utiliser pour un projet ? Nous mettons ce truc ici.
Besoin d'inspiration pour votre prochain NodeBot ? Consultez les exemples.
Vous souhaitez rester au courant des projets de la communauté ? Vérifiez ceci.
Besoin de mises à jour et d'annonces de la communauté NodeBots ou du projet Johnny-Five ? C'est ce que vous recherchez.
Johnny-Five ne tente pas de fournir « tout », mais se concentre plutôt sur la fourniture d'API robustes, testées dans la réalité et hautement composables, qui se comportent de manière cohérente sur toutes les plates-formes matérielles prises en charge. Johnny-Five veut être un kit de contrôle de base pour les projets matériels, vous donnant la liberté de créer, développer et expérimenter diverses bibliothèques JavaScript de votre choix. Johnny-Five se couple confortablement avec :
Bibliothèques d'applications populaires telles que Express.js et Socket.io.
Autres projets matériels comme ar-drone, Aerogel et Spheron
Contrôleurs de jeu Bluetooth comme XBox Controller et DualShock
Frameworks IoT, tels que Octoblu
...Et ce ne sont là que quelques-unes des nombreuses possibilités explorables. Découvrez ces projets passionnants : node-pulsesensor, footballbot-workshop-ui, nodebotui, dublin-disco, node-slot-car-bot, servo-calibrator, node-ardx, nodebot-workshop, phone-home, purple-unicorn, webduino, leapduino, lasercat-workshop, simplesense, five-redbot, robotnik, the-blender
Pourquoi Javascript ? NodeBots : l'essor de la robotique JavaScript
Le programme "Hello World" omniprésent dans le monde des microcontrôleurs et des SoC est "faire clignoter une LED". Le code suivant montre comment cela est réalisé à l'aide du framework Johnny-Five.
const { Tableau, Led } = require("johnny-five");const board = new Board();board.on("ready", () => { // Crée une Led sur la broche 13 const led = nouvelle Led(13); // Clignote toutes les demi-secondes led.blink(500);});
Remarque : le nœud plantera si vous essayez d'exécuter johnny-five dans le REPL du nœud, mais les instances de la carte créeront leur propre REPL contextuel. Mettez votre script dans un fichier.
Johnny-Five a été testé sur une variété de cartes compatibles Arduino.
Pour les projets non basés sur Arduino, un certain nombre de plugins IO spécifiques à la plate-forme sont disponibles. Les plugins IO permettent au code Johnny-Five de communiquer avec n'importe quel matériel non basé sur Arduino, quelle que soit la langue parlée par la plate-forme !
La documentation de l'API Johnny-Five peut être trouvée ici et des exemples de programmes ici.
Besoin d'aide ? Posez une question sur le forum communautaire NodeBots. Si vous avez juste une petite question ou si vous êtes intéressé par des discussions de conception en cours, rejoignez-nous dans le Johnny-Five Gitter Chat.
Pour des exemples étape par étape, y compris une introduction à l'électronique, consultez le Guide de l'expérimentateur Arduino pour NodeJS par @AnnaGerber
Voici une liste de prérequis pour Linux, OSX ou Windows.
Consultez le guide Bluetooth si vous souhaitez contrôler votre robot à distance.
Kit de démarrage recommandé : Kit de l'inventeur Sparkfun
Télécharger l'IDE Arduino
Branchez votre microcontrôleur Arduino ou compatible Arduino via USB
Ouvrez l'IDE Arduino, sélectionnez : Fichier > Exemples > Firmata > StandardFirmataPlus
StandardFirmataPlus est disponible dans Firmata v2.5.0 ou version ultérieure
Cliquez sur le bouton "Télécharger".
Si le téléchargement a réussi, la carte est maintenant préparée et vous pouvez fermer l'IDE Arduino.
Pour les projets non Arduino, le référentiel de chaque plugin IO fournira ses propres instructions de configuration spécifiques à la plate-forme.
git clone git://github.com/rwaldron/johnny-five.git && cd johnny-five installation npm
Installez le module avec :
npm installer johnny-five
Pour vous permettre d'être opérationnel rapidement, nous fournissons une variété d'exemples d'utilisation de chaque composant Johnny-Five. Une chose qui nous intéresse particulièrement est la vaste collection de diagrammes de Fritzing que vous trouverez sur tout le site. Une grande partie de la réalisation d'un projet Johnny-Five consiste à gérer le matériel lui-même, et nous les avons inclus dans la documentation car nous avons réalisé que les instructions sur la façon d'écrire du code pour contrôler un servo sont insuffisantes sans instructions sur la façon de connecter un servo. servo!
Pour parcourir les exemples de manière interactive, visitez la page des exemples de Johnny-Five sur le site officiel. Si vous souhaitez créer un lien direct vers les exemples de ce référentiel, vous pouvez utiliser l'un des liens suivants.
Il existe actuellement 362 exemples de programmes avec code et diagrammes !
Carte - Initialisation de base
Tableau - Nettoyage lors de l'événement 'exit'
Tableau - Plusieurs dans un seul programme
Tableau – Spécifier l'intervalle d'échantillonnage
Carte - Spécifier le port
Propriétés des données personnalisées
Épingle
REPL
DIRIGÉ
LED - Clignotant
LED - Séquence de démonstration
LED - Fondu
LED - Rappel de fondu
LED - Fondu avec animation
LED-PCA9685
LED - Impulsion
LED - Impulsion avec animation
LED - Curseur
LED - Module servo Tessel
LED - Un ensemble de LED
LED - Contrôler un ensemble de LED
LED - RVB (anode commune)
LED - RVB (anode commune) PCA9685
LED - Intensité RVB
LED - Arc-en-ciel
LED - Arc-en-ciel BlinkM
LED - Horloge numérique
LED - Horloge numérique, double affichage
LED - Horloge numérique, HT16K33
LED - Démo de dessin de personnages matriciels
LED - Énumérer les caractères et symboles matriciels
LED - Matrice
LED - Démo matricielle
LED - Matrice HT16K33
LED - Matrice HT16K33 16x8
Servomoteur
Servo - Continu
Servo-entraînement
Servo - Multitours
Servomoteur - PCA9685
Servo-Invite
Servo - Contrôle du curseur
Servo - Module servo Tessel
Servos - Une gamme de servos
GPS - Adafruit Ultimate GPS Breakout
GPS - GPS par défaut
GPS - Série matérielle
GPS-Sparkfun GP-20U7
Servo-Animation
Servo - Animation des jambes
Couleur - EVShield EV3 (Code)
Couleur - EVShield EV3 (brut)
Couleur - EVShield NXT (Code)
Couleur - ISL29125
Moteur
Moteur - 3 broches
Moteur - Breakout de pilote de moteur à courant continu Adafruit DRV8871
Moteur - Frein
Moteur - Courant
Moteur - Directionnel
Moteur - EVShield EV3
Moteur - EVShield NXT
Moteur - Activer la broche
Moteur - GROVE_I2C_MOTOR_DRIVER
Moteur - Pont en H
Moteur - LUDUS
Moteur - PCA9685
Moteur - Pololu VNH5019 Double pilote de moteur
Moteur - Bloc Edison Sparkfun à double pont en H
Moteur - Sparkfun TB6612FNG
Moteur-l298 Breakout
Moteurs - Double pont en H
Stepper - Pilote
Stepper - Quatre fils
Stepper - Balayage
ESC - Bidirectionnel
ESC - ESC contrôlés par pression sur une touche
ESC-PCA9685
Bouton
Bouton - Pare-chocs
Bouton - EVShield EV3
Bouton - EVShield NXT
Bouton - Options
Bouton - Pullup
Boutons - Collection avec AT42QT1070
Changer
Interrupteur - Porte Magnétique
Commutateur - Inclinaison SW-200D
Interrupteur à bascule
Clavier - Sac à dos Nano I2C 3x4
Clavier - Sac à dos Nano 4x4 I2C
Clavier - VKEY
Clavier - Waveshare AD
Pavé tactile - Grove QTouch
Pavé tactile - MPR121
Pavé tactile - MPR121, sensibilité
Pavé tactile - MPR121QR2_SHIELD
Pavé tactile - MPR121_KEYPAD
Pavé tactile - MPR121_SHIELD
Relais
Relais - Collecte
Relais sur broche analogique
Registre à décalage
Registre à décalage - Contrôleur à sept segments d'anode commune
Registre à décalage - Anode commune sept segments, enchaînés
Registre à décalage - Contrôleur à sept segments
Registre à décalage - Sept segments, enchaînés
Mouvement IR
Proximité IR
Réflectance IR
Réseau de réflectance IR
Proximité
Proximité - EVShield EV3 (IR)
Proximité - EVShield EV3 (IR)
Proximité - EVShield EV3 (ultrasons)
Proximité - EVShield EV3 (ultrasons)
Proximité - GP2Y0A710K0F
Proximité - HC-SR04
Proximité - HC-SR04 (Analogique)
Proximité - Sac à dos HC-SR04 I2C
Proximité - LIDAR-Lite
Proximité - MB1000
Proximité - MB1003
Proximité - MB1010
Proximité - MB1230
Proximité - SRF10
Mouvement
Mouvement-GP2Y0A60SZLF
Mouvement-GP2Y0D805Z0F
Mouvement-GP2Y0D810Z0F
Mouvement-GP2Y0D810Z0F
Manette
Manette de jeu - Esplora
Joystick - Contrôle Pan + Tilt
Manette - Bouclier Sparkfun
Grove - Aperçu des couleurs LCD RVB
Écran LCD
LCD - Énumérer les caractères
LCD-I2C
Écran LCD-I2C PCF8574
LCD-Coureur I2C
LCD - Coureur 16x2
LCD - Coureur 20x4
LCD - Tessel 2 16x2
Tessel 2 + Grove - Aperçu des couleurs LCD RVB
Tessel 2 + Grove - Écran LCD RVB
Boussole - Trouver le nord
Boussole - HMC5883L
Boussole - HMC6352
Boussole - Enregistreur
Boussole - MAG3110
Boussole - MAG3110 sur Tessel 2
Boussole / Magnétomètre
Piézo
IMU-BNO055
IMU - BNO055 (Orientation)
IMU-LSM303C
IMU-MPU6050
Multi-BME280
Multi-BMP085
Multi-BMP180
Multi-DHT11_I2C_NANO_BACKPACK
Multi-DHT21_I2C_NANO_BACKPACK
Multi-DHT22_I2C_NANO_BACKPACK
Multi-HIH6130
Multi-HTU21D
Multi-MPL115A2
Multi-MPL3115A2
Multi-MS5611
Multi-SHT31D
Multi-SI7020
Multi-SI7021
Multi-TH02
Accéléromètre
Accéléromètre - ADXL335
Accéléromètre - ADXL345
Accéléromètre - LIS3DH
Accéléromètre - MMA7361
Accéléromètre - MMA8452
Accéléromètre - MPU6050
Accéléromètre - Pan + Tilt
Altimètre - BMP085
Altimètre - BMP180
Altimètre - MPL3115A2
Altimètre - MS5611
Baromètre - BMP085
Baromètre - BMP180
Baromètre - MPL115A2
Baromètre - MPL3115A2
Baromètre - MS5611
Gyro
Gyroscope - Analogique LPR5150AL
Gyroscope-I2C MPU6050
Hygromètre - DHT11_I2C_NANO_BACKPACK
Hygromètre - DHT21_I2C_NANO_BACKPACK
Hygromètre - DHT22_I2C_NANO_BACKPACK
Hygromètre - HIH6130
Hygromètre - HTU21D
Hygromètre - SHT31D
Hygromètre - SI7021
Hygromètre - TH02
Capteur
Capteur - Micro-ondes numérique
Capteur - Capteur flexible
Capteur - Résistance sensible à la force
Capteur - Microphone
Capteur - Photorésistance
Capteur - Potentiomètre
Capteur - Potentiomètre à glissière
Thermomètre - BMP085
Thermomètre - BMP180
Thermomètre - DHT11_I2C_NANO_BACKPACK
Thermomètre - DHT21_I2C_NANO_BACKPACK
Thermomètre - DHT22_I2C_NANO_BACKPACK
Thermomètre - DS18B20
Thermomètre - Double DS18B20
Thermomètre - HIH6130
Thermomètre - HTU21D
Thermomètre - LM335
Thermomètre - LM35
Thermomètre - MAX31850
Thermomètre - MCP9808
Thermomètre - MPL115A2
Thermomètre - MPL3115A2
Thermomètre - MPU6050
Thermomètre - MS5611
Thermomètre - SHT31D
Thermomètre - SI7020
Thermomètre - SI7021
Thermomètre - TH02
Thermomètre - TMP102
Thermomètre - TMP36
Extenseur - 74HC595
Expanseur - CD74HC4067, dérivation d'entrée analogique 16 canaux
Extenseur - LIS3DH
Extenseur - MCP23008
Extenseur - MCP23017
Expanseur - MUXSHIELD2, capteurs analogiques
Expanseur - MUXSHIELD2, entrée et sortie numériques
Extenseur - PCA9685
Extenseur - PCF8574
Extenseur - PCF8575
Extenseur - PCF8591
Bouclier météo photonique : humidité
Bouton - EVShield EV3
Bouton - EVShield NXT
Couleur - EVShield EV3 (Code)
Couleur - EVShield EV3 (brut)
Couleur - EVShield NXT (Code)
Lumière - BH1750
Lumière - EVShield EV3 (ambiante)
Lumière - EVShield EV3 (réfléchie)
Lumière - EVShield NXT (ambiante)
Lumière - EVShield NXT (réfléchie)
Lumière-TSL2561
Moteur - EVShield EV3
Moteur - EVShield NXT
Proximité - EVShield EV3 (IR)
Proximité - EVShield EV3 (ultrasons)
Intel Edison + Grove - Accéléromètre (ADXL345)
Intel Edison + Grove - Accéléromètre (MMA7660)
Intel Edison + Grove - Capteur de qualité de l'air
Intel Edison + Grove - Baromètre (BMP180)
Intel Edison + Grove - Bouton
Intel Edison + Grove - Boussole (HMC588L)
Intel Edison + Grove - Capteur de flamme
Intel Edison + Grove - Gaz (MQ2)
Intel Edison + Grove - Humidité et température (TH02)
Intel Edison + Grove - Pilote de moteur I2C
Intel Edison + Grove - Manette de jeu
Intel Edison + Grove - LED
Intel Edison + Grove - Capteur de lumière (TSL2561)
Intel Edison + Grove - Capteur d'humidité
Intel Edison + Grove-Q Touch
Intel Edison + Grove - LCD RVB
Intel Edison + Grove - Aperçu des couleurs LCD RVB
Intel Edison + Grove - Affichage de la température LCD RVB
Intel Edison + Grove - Relais
Intel Edison + Grove - Potentiomètre rotatif
Intel Edison + Grove-Servo
Intel Edison + Grove - Tactile
Bosquet - Bouton
Grove - Manette de jeu
Bosquet - LED
Grove - Moteur (pilote I2C)
Grove - LCD RVB
Grove - Affichage de la température LCD RVB
Grove - Potentiomètre rotatif
Grove-Servo
Bosquet - Toucher
Micro Magician V2 - Accéléromètre
Micro Magicien V2 - Moteur
Micro Magicien V2 - Servo
TinkerKit - Accéléromètre
TinkerKit - Clignoter
TinkerKit - Bouton
Kit de bricolage - Combo
TinkerKit - Servo continu
TinkerKit - Gyroscope
TinkerKit - Manette de jeu
TinkerKit - Potentiomètre linéaire
TinkerKit - Potentiomètre rotatif
TinkerKit - Température
TinkerKit - Inclinaison
TinkerKit - Tactile
Manette Wii Classique
Nunchaku Wii
Bogue
Contrôleur de bras robotique Kinect
Fil de déclenchement laser
Suiveur de ligne
Lynxmotion Bipède BRAT
Motobot
Navigateur
Bot de nœud
Hexapode Phénix
Radar
Griffe robotique
Moustaches
Exemple de plugin
Led clignote sur un diablotin électrique
Led clignote sur la carte Intel Edison Arduino
Led clignote sur la mini-carte Intel Edison
Led clignote sur Intel Galileo Gen 2
Led clignote sur Raspberry Pi
Led clignote sur Spark Core
Led clignote sur pcDuino3
Toutes les contributions doivent respecter le guide de style Idiomatic.js, en conservant le style de codage existant. Ajoutez des tests unitaires pour toute fonctionnalité nouvelle ou modifiée. Lint et testez votre code en utilisant Grunt.
Copyright (c) 2012, 2013, 2014 Rick Waldron [email protected] Sous licence MIT. Copyright (c) 2014, 2015 The Johnny-Five Contributors Sous licence MIT.