Johnny-Five adalah kerangka pemrograman Open Source, berbasis Firma Protocol, IoT dan Robotika, yang dikembangkan oleh Komunitas Nodebots. Program Johnny-Five dapat ditulis untuk Arduino (semua model), Electric Imp, Beagle Bone, Intel Galileo & Edison, Linino One, Pinoccio, pcDuino3, Raspberry Pi, Particle/Spark Core & Photon, Tessel 2, TI Launchpad dan banyak lagi!
Johnny-Five telah berkembang dari proyek yang penuh gairah menjadi alat untuk menginspirasi pembelajaran dan kreativitas bagi orang-orang dari segala usia, latar belakang, dan dari seluruh dunia.
Hanya tertarik mempelajari dan membangun hal-hal menakjubkan? Anda mungkin ingin memulai dengan situs web resmi Johnny-Five.
Jika Anda ingin menemukan dokumentasi API, ada di sini.
Perlu mencari tahu platform apa yang akan digunakan untuk sebuah proyek? Kami menaruh barang itu di sini.
Butuh inspirasi untuk NodeBot Anda berikutnya? Lihat contohnya.
Ingin tetap mendapatkan informasi terkini tentang proyek di komunitas? Lihat ini.
Butuh pembaruan dan pengumuman komunitas NodeBots atau proyek Johnny-Five? Inilah yang Anda cari.
Johnny-Five tidak berusaha menyediakan "semua hal", namun berfokus pada penyediaan API yang kuat, teruji realitas, dan sangat dapat disusun yang berperilaku konsisten di semua platform perangkat keras yang didukung. Johnny-Five ingin menjadi perangkat kontrol dasar untuk proyek perangkat keras, memberi Anda kebebasan untuk membangun, mengembangkan, dan bereksperimen dengan beragam pustaka JavaScript pilihan Anda sendiri. Johnny-Five berpasangan dengan nyaman dengan:
Pustaka aplikasi populer seperti Express.js dan Socket.io.
Rekan proyek perangkat keras seperti ar-drone, Aerogel dan Spheron
Pengontrol permainan Bluetooth seperti XBox Controller dan DualShock
Kerangka kerja IoT, seperti Octoblu
...Dan itu hanya sedikit dari sekian banyak kemungkinan yang bisa dijelajahi. Lihatlah proyek-proyek menarik ini: node-pulsesensor, footballbot-workshop-ui, nodebotui, dublin-disco, node-slot-car-bot, servo-calibrator, node-ardx, nodebot-workshop, phone-home, purple-unicorn, webduino, leapduino, bengkel lasercat, simplesense, lima-redbot, robotnik, blender
Mengapa JavaScript? NodeBots: Bangkitnya Robotika JavaScript
Program "Hello World" yang ada di mana-mana pada mikrokontroler dan dunia SoC adalah "blink an LED". Kode berikut menunjukkan bagaimana hal ini dilakukan dengan menggunakan kerangka Johnny-Five.
const { Papan, Led } = require("johnny-five");const board = new Board();board.on("ready", () => { // Buat Led pada pin 13 const led = Led baru(13); // Berkedip setiap setengah detik led.berkedip(500);});
Catatan: Node akan crash jika Anda mencoba menjalankan johnny-five di node REPL, tetapi instance board akan membuat REPL kontekstualnya sendiri. Masukkan skrip Anda ke dalam file.
Johnny-Five telah diuji pada berbagai Papan yang kompatibel dengan Arduino.
Untuk proyek berbasis non-Arduino, tersedia sejumlah Plugin IO khusus platform. Plugin IO memungkinkan kode Johnny-Five untuk berkomunikasi dengan perangkat keras berbasis non-Arduino dalam bahasa apa pun yang digunakan platform!
Dokumentasi untuk Johnny-Five API dapat ditemukan di sini dan contoh programnya di sini.
Butuh bantuan? Ajukan pertanyaan di Forum Komunitas NodeBots. Jika Anda hanya memiliki pertanyaan singkat atau tertarik dengan diskusi desain yang sedang berlangsung, bergabunglah dengan kami di Obrolan Johnny-Five Gitter.
Untuk contoh langkah demi langkah, termasuk primer elektronik, lihat Panduan Eksperimen Arduino untuk NodeJS oleh @AnnaGerber
Berikut adalah daftar prasyarat untuk Linux, OSX atau Windows.
Lihat panduan bluetooth jika Anda ingin mengontrol robot Anda dari jarak jauh.
Kit Awal yang Direkomendasikan: Kit Penemu Sparkfun
Unduh Arduino IDE
Hubungkan mikrokontroler Arduino atau Arduino Anda yang kompatibel melalui USB
Buka Arduino IDE, pilih: File > Contoh > Firma > StandardFirmataPlus
StandardFirmataPlus tersedia dalam Firma v2.5.0 atau lebih tinggi
Klik tombol "Unggah".
Jika upload berhasil, board sudah siap dan Anda dapat menutup Arduino IDE.
Untuk proyek non-Arduino, setiap repo Plugin IO akan menyediakan instruksi pengaturan khusus platformnya sendiri.
git clone git://github.com/rwaldron/johnny-five.git && cd johnny-five instalasi npm
Instal modul dengan:
npm instal johnny-lima
Agar Anda dapat memulai dan menjalankannya dengan cepat, kami menyediakan berbagai contoh penggunaan setiap komponen Johnny-Five. Satu hal yang sangat membuat kami bersemangat adalah banyaknya koleksi diagram Fritzing yang dapat Anda temukan di seluruh situs. Bagian terbesar dalam mengerjakan proyek Johnny-Five adalah menangani perangkat keras sebenarnya, dan kami menyertakannya sebagai bagian dari dokumentasi karena kami menyadari bahwa instruksi tentang cara menulis kode untuk mengontrol servo tidaklah cukup tanpa instruksi tentang cara menghubungkan servo. servo!
Untuk menavigasi contoh secara interaktif, kunjungi halaman contoh Johnny-Five di situs web resmi. Jika Anda ingin menautkan langsung ke contoh di repo ini, Anda dapat menggunakan salah satu tautan berikut.
Saat ini ada 362 contoh program dengan kode dan diagram!
Papan - Inisialisasi Dasar
Board - Pembersihan di acara 'keluar'
Papan - Banyak dalam satu program
Papan - Tentukan Interval Pengambilan Sampel
Papan - Tentukan port
Properti Data Khusus
Pin
REPL
DIPIMPIN
LED - Berkedip
LED - Urutan demo
LED - Memudar
LED - Panggilan balik memudar
LED - Memudar dengan animasi
LED - PCA9685
LED - Pulsa
LED - Pulsa dengan animasi
LED - Penggeser
LED - Modul Servo Tessel
LED - Serangkaian LED
LED - Mengontrol serangkaian LED
LED - RGB (Anoda Umum)
LED - RGB (Anoda Umum) PCA9685
LED - Intensitas RGB
LED - Pelangi
LED - Pelangi BerkedipM
LED - Jam Digital
LED - Jam Digital, Layar Ganda
LED - Jam Digital, HT16K33
LED - Menggambar Demo Karakter Matriks
LED - Menghitung Karakter & Simbol Matriks
LED - Matriks
LED - Demo Matriks
LED - Matriks HT16K33
LED - Matriks HT16K33 16x8
servo
Servo - Berkelanjutan
Servo - Berkendara
Servo - Multi-Putaran
Servo - PCA9685
Servo - Prompt
Servo - Kontrol penggeser
Servo - Modul Servo Tessel
Servo - Serangkaian servo
GPS - Penembusan GPS Utama Adafruit
GPS - GPS bawaan
GPS - Serial Perangkat Keras
GPS - Sparkfun GP-20U7
Servo - Animasi
Servo - Animasi Kaki
Warna - EVShield EV3 (Kode)
Warna - EVShield EV3 (Mentah)
Warna - EVShield NXT (Kode)
Warna - ISL29125
Motor
Motor - 3 pin
Motor - Breakout Penggerak Motor DC Adafruit DRV8871
Motor - Rem
Motor - Saat Ini
Motor - Terarah
Motor - EVShield EV3
Motor - EVShield NXT
Motor - Aktifkan Pin
Motor - GROVE_I2C_MOTOR_DRIVER
Motor - H-Jembatan
Motor - LUDUS
Motornya - PCA9685
Motor - Pelarian Pengemudi Motor Ganda Pololu VNH5019
Motor - Blok Edison H-bridge Ganda Sparkfun
Motor - Sparkfun TB6612FNG
Motor - l298 Pelarian
Motor - Jembatan H Ganda
Stepper adalah pengemudi
Stepper - Empat Kawat
Stepper - Sapu
ESC - Dua arah
ESC - ESC yang dikontrol dengan menekan tombol
ESC - PCA9685
Tombol
Tombol - bemper
Tombol - EVShield EV3
Tombol - EVShield NXT
Tombol - Opsi
Tombol - Tarik
Tombol - Koleksi dengan AT42QT1070
Mengalihkan
Sakelar - Pintu Magnetik
Sakelar - Miringkan SW-200D
Beralih Beralih
Papan tombol - Ransel Nano 3x4 I2C
Papan tombol - Ransel Nano 4x4 I2C
Papan tombol - VKEY
Papan tombol - Iklan Waveshare
Panel Sentuh - Grove QTouch
Panel Sentuh - MPR121
Panel Sentuh - MPR121, Sensitivitas
Panel Sentuh - MPR121QR2_SHIELD
Panel Sentuh - MPR121_KEYPAD
Panel Sentuh - MPR121_SHIELD
Menyampaikan
Relai - Koleksi
Relai Pada Pin Analog
Daftar Pergeseran
Shift Register - Pengontrol Tujuh Segmen Anoda Umum
Shift Register - Common Anode Tujuh segmen, Dirantai
Shift Register - Pengontrol Tujuh Segmen
Shift Register - Tujuh segmen, Dirantai
Gerakan IR
Kedekatan IR
Reflektansi IR
Array Reflektansi IR
Kedekatan
Kedekatan - EVShield EV3 (IR)
Kedekatan - EVShield EV3 (IR)
Kedekatan - EVShield EV3 (Ultrasonik)
Kedekatan - EVShield EV3 (Ultrasonik)
Kedekatan - GP2Y0A710K0F
Kedekatan - HC-SR04
Kedekatan - HC-SR04 (Analog)
Kedekatan - Ransel HC-SR04 I2C
Kedekatan - LIDAR-Lite
Kedekatan - MB1000
Kedekatan - MB1003
Kedekatan - MB1010
Kedekatan - MB1230
Kedekatan - SRF10
Gerakan
Gerakan - GP2Y0A60SZLF
Gerakan - GP2Y0D805Z0F
Gerakan - GP2Y0D810Z0F
Gerakan - GP2Y0D810Z0F
tuas kendali
Joystick - Esplora
Joystick - Kontrol Geser + Miring
Joystick - Perisai Sparkfun
Grove - Pratinjau Warna LCD RGB
LCD
LCD - Menghitung karakter
LCD - I2C
LCD-I2C PCF8574
LCD - Pelari I2C
LCD - Pelari 16x2
LCD - Pelari 20x4
LCD - Tessel 2 16x2
Tessel 2 + Grove - Pratinjau Warna LCD RGB
Tessel 2 + Grove - Layar LCD RGB
Kompas - Temukan utara
Kompas - HMC5883L
Kompas - HMC6352
Kompas - Pencatat
Kompas - MAG3110
Kompas - MAG3110 di Tessel 2
Kompas / Magnetometer
piezo
IMU - BNO055
IMU - BNO055 (Orientasi)
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
Akselerometer
Akselerometer - ADXL335
Akselerometer - ADXL345
Akselerometer - LIS3DH
Akselerometer - MMA7361
Akselerometer - MMA8452
Akselerometer - MPU6050
Akselerometer - Geser + Miringkan
Altimeter - BMP085
Altimeter - BMP180
Altimeter - MPL3115A2
Altimeter - MS5611
Barometernya adalah BMP085
Barometernya adalah BMP180
Barometernya adalah MPL115A2
Barometernya adalah MPL3115A2
Barometernya - MS5611
gyro
Gyro - Analog LPR5150AL
Gyro - I2C MPU6050
Higrometer - DHT11_I2C_NANO_BACKPACK
Higrometer - DHT21_I2C_NANO_BACKPACK
Higrometer - DHT22_I2C_NANO_BACKPACK
Higrometer - HIH6130
Higrometer - HTU21D
Higrometer - SHT31D
Higrometer - SI7021
Higrometer - TH02
Sensor
Sensornya adalah gelombang mikro digital
Sensor - Sensor fleksibel
Sensor - Resistor sensitif gaya
Sensor - Mikrofon
Sensor - Fotoresistor
Sensor - Potensiometer
Sensor - Potensiometer geser
Termometer - BMP085
Termometer - BMP180
Termometer - DHT11_I2C_NANO_BACKPACK
Termometer - DHT21_I2C_NANO_BACKPACK
Termometer - DHT22_I2C_NANO_BACKPACK
Termometer - DS18B20
Termometer - DS18B20 Ganda
Termometer - HIH6130
Termometer - HTU21D
Termometer - LM335
Termometer - LM35
Termometer - MAX31850
Termometer - MCP9808
Termometer - MPL115A2
Termometer - MPL3115A2
Termometer - MPU6050
Termometer - MS5611
Termometer - SHT31D
Termometer - SI7020
Termometer - SI7021
Termometer - TH02
Termometer - TMP102
Termometer - TMP36
Ekspander - 74HC595
Expander - CD74HC4067, Breakout Input Analog 16 Saluran
Ekspander - LIS3DH
Ekspander - MCP23008
Ekspander - MCP23017
Ekspander - MUXSHIELD2, Sensor Analog
Ekspander - MUXSHIELD2, Input dan Output Digital
Ekspander - PCA9685
Ekspander - PCF8574
Ekspander - PCF8575
Ekspander - PCF8591
Pelindung Cuaca Foton: Kelembapan
Tombol - EVShield EV3
Tombol - EVShield NXT
Warna - EVShield EV3 (Kode)
Warna - EVShield EV3 (Mentah)
Warna - EVShield NXT (Kode)
Ringan - BH1750
Ringan - EVShield EV3 (Ambien)
Cahaya - EVShield EV3 (Terpantul)
Cahaya - EVShield NXT (Ambien)
Cahaya - EVShield NXT (Tercermin)
Ringan - TSL2561
Motor - EVShield EV3
Motor - EVShield NXT
Kedekatan - EVShield EV3 (IR)
Kedekatan - EVShield EV3 (Ultrasonik)
Intel Edison + Grove - Akselerometer (ADXL345)
Intel Edison + Grove - Akselerometer (MMA7660)
Intel Edison + Grove - Sensor kualitas udara
Intel Edison + Grove - Barometer (BMP180)
Intel Edison + Grove - Tombol
Intel Edison + Grove - Kompas (HMC588L)
Intel Edison + Grove - Sensor Api
Intel Edison + Grove - Gas (MQ2)
Intel Edison + Grove - Kelembaban & Suhu (TH02)
Intel Edison + Grove - Pengemudi Motor I2C
Intel Edison + Grove - Joystick
Intel Edison + Grove-LED
Intel Edison + Grove - Sensor Cahaya (TSL2561)
Intel Edison + Grove - Sensor Kelembaban
Intel Edison + Grove - Q Sentuh
Intel Edison + Grove - LCD RGB
Intel Edison + Grove - Pratinjau Warna LCD RGB
Intel Edison + Grove - Tampilan suhu LCD RGB
Intel Edison + Grove - Relai
Intel Edison + Grove - Potensiometer Putar
Intel Edison + Grove - Servo
Intel Edison + Grove - Sentuh
Hutan - Tombol
Hutan - Joystick
Hutan - LED
Grove - Motor (Pengemudi I2C)
Hutan - LCD RGB
Grove - Tampilan suhu LCD RGB
Hutan - Potensiometer Putar
Hutan - Servo
Hutan - Sentuh
Penyihir Mikro V2 - Akselerometer
Penyihir Mikro V2 - Motor
Penyihir Mikro V2 - Servo
TinkerKit - Akselerometer
TinkerKit - Berkedip
TinkerKit - Tombol
TinkerKit - Kombo
TinkerKit - Servo berkelanjutan
TinkerKit - Gyro
TinkerKit - Joystick
TinkerKit - Potensiometer linier
TinkerKit - Potensiometer putar
TinkerKit - Suhu
TinkerKit - Miringkan
TinkerKit - Sentuh
Pengontrol Wii Klasik
Wii Nunchuck
Serangga
Pengontrol Lengan Robot Kinect
Kawat Perjalanan Laser
Pengikut Garis
Lynxmotion Biped BRAT
robot robot
navigator
Nodebot
Heksapoda Phoenix
Radar
Cakar Robot
Kumis
Contoh plugin
Led Berkedip pada Imp Listrik
Led Berkedip pada Papan Intel Edison Arduino
Led Berkedip pada Papan Mini Intel Edison
Led Berkedip pada Intel Galileo Gen 2
Led Berkedip di Raspberry Pi
Led Berkedip pada Spark Core
Led Berkedip di pcDuino3
Semua kontribusi harus mematuhi Panduan Gaya Idiomatic.js, dengan mempertahankan gaya pengkodean yang ada. Tambahkan pengujian unit untuk fungsionalitas baru atau yang diubah. Lint dan uji kode Anda menggunakan grunt.
Hak Cipta (c) 2012, 2013, 2014 Rick Waldron [email protected] Berlisensi di bawah lisensi MIT. Hak Cipta (c) 2014, 2015 Kontributor Johnny-Five Berlisensi di bawah lisensi MIT.