Johnny-Five는 Nodebots 커뮤니티에서 개발한 오픈 소스, Firmata 프로토콜 기반, IoT 및 로봇공학 프로그래밍 프레임워크입니다. Johnny-Five 프로그램은 Arduino(모든 모델), Electric Imp, Beagle Bone, Intel Galileo & Edison, Linino One, Pinoccio, pcDuino3, Raspberry Pi, Particle/Spark Core & Photon, Tessel 2, TI Launchpad 등을 위해 작성될 수 있습니다!
Johnny-Five는 열정적인 프로젝트에서 전 세계 모든 연령, 배경의 사람들에게 학습과 창의성을 고취시키는 도구로 성장했습니다.
단지 멋진 것을 배우고 만드는 데 관심이 있으신가요? 공식 Johnny-Five 웹사이트부터 시작해 보세요.
API 문서를 찾고 싶다면 바로 여기 있습니다.
프로젝트에 어떤 플랫폼을 사용할지 파악해야 합니까? 우리는 그 물건을 여기에 넣었습니다.
다음 NodeBot에 대한 영감이 필요하십니까? 예제를 확인해 보세요.
커뮤니티의 프로젝트에 대한 최신 정보를 받고 싶으십니까? 이것을 확인해 보세요.
NodeBots 커뮤니티 또는 Johnny-Five 프로젝트 업데이트 및 공지가 필요하십니까? 이것이 당신이 찾고 있는 것입니다.
Johnny-Five는 "모든 것"을 제공하려고 시도하는 것이 아니라 지원되는 모든 하드웨어 플랫폼에서 일관되게 작동하는 강력하고 현실적으로 테스트되었으며 구성 가능성이 높은 API를 제공하는 데 중점을 둡니다. Johnny-Five는 하드웨어 프로젝트를 위한 기본 제어 키트가 되어 원하는 다양한 JavaScript 라이브러리를 자유롭게 구축, 성장 및 실험할 수 있기를 원합니다. Johnny-Five 커플은 다음과 같이 편안하게 사용할 수 있습니다.
Express.js 및 Socket.io와 같은 인기 있는 애플리케이션 라이브러리입니다.
ar-drone, Airgel 및 Spheron과 같은 동료 하드웨어 프로젝트
XBox Controller 및 DualShock과 같은 Bluetooth 게임 컨트롤러
Octoblue와 같은 IoT 프레임워크
...그리고 이는 탐색 가능한 수많은 가능성 중 극히 일부에 불과합니다. 다음 흥미로운 프로젝트를 확인하세요: node-pulsesensor, footballbot-workshop-ui, nodebotui, dublin-disco, node-slot-car-bot, 서보 교정기, node-ardx, nodebot-workshop, Phone-Home, Purple-unicorn, webduino, Leapduino, lasercat-workshop, simplesense, five-redbot, robotsnik, the-blender
왜 자바스크립트인가? NodeBots: JavaScript 로봇공학의 부상
마이크로컨트롤러와 SoC 세계의 유비쿼터스 "Hello World" 프로그램은 "LED 깜박임"입니다. 다음 코드는 Johnny-Five 프레임워크를 사용하여 이 작업을 수행하는 방법을 보여줍니다.
const { 보드, Led } = require("johnny-five");const 보드 = new Board();board.on("ready", () => { // 13번 핀에 LED를 생성합니다. const led = 새로운 Led(13); // 0.5초마다 깜박임 led.blink(500);});
참고: 노드 REPL에서 johnny-five를 실행하려고 하면 노드가 충돌하지만 보드 인스턴스는 자체 상황별 REPL을 생성합니다. 스크립트를 파일에 넣으십시오.
Johnny-Five는 다양한 Arduino 호환 보드에서 테스트되었습니다.
Arduino 기반이 아닌 프로젝트의 경우 다양한 플랫폼별 IO 플러그인을 사용할 수 있습니다. IO 플러그인을 사용하면 Johnny-Five 코드가 플랫폼에서 사용하는 모든 언어로 Arduino 기반이 아닌 하드웨어와 통신할 수 있습니다!
Johnny-Five API에 대한 문서는 여기에서 찾을 수 있으며 예제 프로그램은 여기에서 찾을 수 있습니다.
도움이 필요하신가요? NodeBots 커뮤니티 포럼에 질문하세요. 간단한 질문이 있거나 지속적인 디자인 토론에 관심이 있다면 Johnny-Five Gitter Chat에 참여하세요.
전자 입문서를 포함한 단계별 예를 보려면 @AnnaGerber가 작성한 NodeJS용 Arduino 실험자 가이드를 확인하세요.
다음은 Linux, OSX 또는 Windows에 대한 전제 조건 목록입니다.
로봇을 원격으로 제어하려면 블루투스 가이드를 확인하세요.
권장 시작 키트: Sparkfun 발명가 키트
아두이노 IDE 다운로드
USB를 통해 Arduino 또는 Arduino 호환 마이크로컨트롤러를 연결하세요.
Arduino IDE를 열고 파일 > 예제 > Firmata > StandardFirmataPlus를 선택합니다.
StandardFirmataPlus는 Firmata v2.5.0 이상에서 사용 가능합니다.
"업로드" 버튼을 클릭하세요.
업로드가 성공했다면 이제 보드가 준비되었으며 Arduino IDE를 닫을 수 있습니다.
Arduino가 아닌 프로젝트의 경우 각 IO 플러그인의 저장소는 자체 플랫폼별 설정 지침을 제공합니다.
자식 클론 git://github.com/rwaldron/johnny-five.git && cd johnny-five npm 설치
다음을 사용하여 모듈을 설치하십시오.
npm 설치 조니 파이브
빠르게 시작하고 실행할 수 있도록 각 Johnny-Five 구성 요소 사용에 대한 다양한 예를 제공합니다. 우리가 특히 기대하는 것 중 하나는 사이트 전체에서 찾을 수 있는 광범위한 Fritzing 다이어그램 컬렉션입니다. Johnny-Five 프로젝트 수행의 가장 큰 부분은 실제 하드웨어를 처리하는 것입니다. 서보를 제어하기 위한 코드 작성 방법에 대한 지침은 연결 방법에 대한 지침 없이는 충분하지 않다는 것을 깨달았기 때문에 이를 문서의 일부로 포함했습니다. 서보 기구!
예제를 대화형으로 탐색하려면 공식 웹사이트의 Johnny-Five 예제 페이지를 방문하세요. 이 리포지토리의 예제에 직접 연결하려면 다음 링크 중 하나를 사용할 수 있습니다.
현재 코드와 다이어그램이 포함된 예제 프로그램이 362개 있습니다!
보드 - 기본 초기화
보드 - 'exit' 이벤트 정리
보드 - 하나의 프로그램에 여러 개 포함
보드 - 샘플링 간격 지정
보드 - 포트 지정
사용자 정의 데이터 속성
핀
REPL
주도의
LED - 깜박임
LED - 데모 시퀀스
LED - 페이드
LED - 페이드 콜백
LED - 애니메이션으로 페이드
LED - PCA9685
LED - 펄스
LED - 애니메이션이 포함된 펄스
LED - 슬라이더
LED - 테셀 서보 모듈
LED - LED 배열
LED - LED 배열 제어
LED - RGB(공통 양극)
LED - RGB(공통 양극) PCA9685
LED - RGB 강도
LED - 무지개
LED - 레인보우 블링크M
LED - 디지털 시계
LED - 디지털 시계, 듀얼 디스플레이
LED - 디지털 시계, HT16K33
LED - 매트릭스 캐릭터 그리기 데모
LED - 매트릭스 문자 및 기호 열거
LED - 매트릭스
LED - 매트릭스 데모
LED - 매트릭스 HT16K33
LED - 매트릭스 HT16K33 16x8
서보 기구
서보 - 연속
서보 - 드라이브
서보 - 다중 회전
서보-PCA9685
서보 - 프롬프트
서보 - 슬라이더 제어
서보 - Tessel 서보 모듈
서보 - 서보의 배열
GPS - Adafruit Ultimate GPS 브레이크아웃
GPS - 기본 GPS
GPS - 하드웨어 시리얼
GPS - 스파크펀 GP-20U7
서보 - 애니메이션
서보 - 다리 애니메이션
색상 - EVShield EV3(코드)
색상 - EVShield EV3(Raw)
색상 - EVShield NXT(코드)
색상 - ISL29125
모터
모터 - 3핀
모터 - Adafruit DRV8871 DC 모터 드라이버 브레이크아웃
모터 - 브레이크
모터 - 전류
모터 - 방향성
모터 - EVShield EV3
모터 - EVShield NXT
모터 - 핀 활성화
모터 - GROVE_I2C_MOTOR_DRIVER
모터 - H-브리지
모터 - 루더스
모터 - PCA9685
모터 - Pololu VNH5019 듀얼 모터 드라이버 브레이크아웃
모터 - Sparkfun 듀얼 H-브리지 Edison 블록
모터 - Sparkfun TB6612FNG
모터 - l298 브레이크아웃
모터 - 듀얼 H 브리지
스테퍼 - 드라이버
스테퍼 - 4선
스테퍼 - 스윕
ESC - 양방향
ESC - 키를 눌러 제어되는 ESC
ESC-PCA9685
단추
버튼 - 범퍼
버튼 - EVShield EV3
버튼 - EVShield NXT
버튼 - 옵션
버튼 - 풀업
버튼 - AT42QT1070 포함 컬렉션
스위치
스위치 - 자석 도어
스위치 - 틸트 SW-200D
토글 스위치
키패드 - 3x4 I2C 나노 백팩
키패드 - 4x4 I2C 나노 백팩
키패드 - VKEY
키패드 - Waveshare AD
터치패드 - Grove QTouch
터치패드 - MPR121
터치패드 - MPR121, 감도
터치패드 - MPR121QR2_SHIELD
터치패드 - MPR121_KEYPAD
터치패드 - MPR121_SHIELD
계전기
릴레이 - 수집
아날로그 핀의 릴레이
시프트 레지스터
시프트 레지스터 - 공통 양극 7세그먼트 컨트롤러
시프트 레지스터 - 공통 양극 7개 세그먼트, 체인 연결
시프트 레지스터 - 7세그먼트 컨트롤러
시프트 레지스터 - 7개 세그먼트, 체인 연결
IR 모션
IR 근접
IR 반사율
IR 반사 어레이
근접성
근접성 - EVShield EV3(IR)
근접성 - EVShield EV3(IR)
근접 - EVShield EV3(초음파)
근접 - EVShield EV3(초음파)
근접성 - GP2Y0A710K0F
근접 - HC-SR04
근접식 - HC-SR04(아날로그)
근접 - HC-SR04 I2C 백팩
근접성 - LIDAR-Lite
근접성 - MB1000
근접 - MB1003
근접 - MB1010
근접 - MB1230
근접성 - SRF10
운동
모션 - GP2Y0A60SZLF
모션 - GP2Y0D805Z0F
모션 - GP2Y0D810Z0F
모션 - GP2Y0D810Z0F
조종간
조이스틱 - 에스플로라
조이스틱 - 팬 + 틸트 제어
조이스틱 - Sparkfun Shield
Grove - RGB LCD 컬러 미리보기
LCD
LCD - 문자 열거
LCD - I2C
LCD - I2C PCF8574
LCD - I2C 러너
LCD - 러너 16x2
LCD - 러너 20x4
LCD - 테셀 2 16x2
Tessel 2 + Grove - RGB LCD 컬러 프리뷰어
Tessel 2 + Grove - RGB LCD 디스플레이
나침반 - 북쪽 찾기
나침반 - HMC5883L
나침반 - HMC6352
나침반 - 로거
나침반 - MAG3110
나침반 - Tessel 2의 MAG3110
나침반 / 자력계
피에조
IMU-BNO055
IMU - BNO055(오리엔테이션)
IMU-LSM303C
IMU-MPU6050
멀티 - BME280
멀티 - BMP085
멀티 - BMP180
멀티 - DHT11_I2C_NANO_BACKPACK
멀티 - DHT21_I2C_NANO_BACKPACK
멀티 - DHT22_I2C_NANO_BACKPACK
멀티 - HIH6130
멀티 - HTU21D
멀티 - MPL115A2
멀티 - MPL3115A2
멀티 - MS5611
멀티 - SHT31D
멀티 - SI7020
멀티 - SI7021
멀티 - TH02
가속도계
가속도계 - ADXL335
가속도계 - ADXL345
가속도계 - LIS3DH
가속도계 - MMA7361
가속도계 - MMA8452
가속도계 - MPU6050
가속도계 - 팬 + 틸트
고도계 - BMP085
고도계 - BMP180
고도계 - MPL3115A2
고도계 - MS5611
기압계 - BMP085
기압계 - BMP180
기압계 - MPL115A2
기압계 - MPL3115A2
기압계 - MS5611
자이로
자이로 - 아날로그 LPR5150AL
자이로 - I2C MPU6050
습도계 - DHT11_I2C_NANO_BACKPACK
습도계 - DHT21_I2C_NANO_BACKPACK
습도계 - DHT22_I2C_NANO_BACKPACK
습도계 - HIH6130
습도계 - HTU21D
습도계 - SHT31D
습도계 - SI7021
습도계 - TH02
감지기
센서 - 디지털 전자레인지
센서 - 플렉스 센서
센서 - 힘 감지 저항기
센서 - 마이크
센서 - 포토레지스터
센서 - 전위차계
센서 - 슬라이드 전위차계
온도계 - BMP085
온도계 - BMP180
온도계 - DHT11_I2C_NANO_BACKPACK
온도계 - DHT21_I2C_NANO_BACKPACK
온도계 - DHT22_I2C_NANO_BACKPACK
온도계 - DS18B20
온도계 - 듀얼 DS18B20
온도계 - HIH6130
온도계 - HTU21D
온도계 - LM335
온도계 - LM35
온도계 - MAX31850
온도계 - MCP9808
온도계 - MPL115A2
온도계 - MPL3115A2
온도계 - MPU6050
온도계 - MS5611
온도계 - SHT31D
온도계 - SI7020
온도계 - SI7021
온도계 - TH02
온도계 - TMP102
온도계 - TMP36
확장기 - 74HC595
확장기 - CD74HC4067, 16채널 아날로그 입력 브레이크아웃
확장기-LIS3DH
확장기 - MCP23008
확장기 - MCP23017
확장기 - MUXSHIELD2, 아날로그 센서
확장기 - MUXSHIELD2, 디지털 입력 및 출력
확장기 - PCA9685
확장기 - PCF8574
확장기 - PCF8575
확장기 - PCF8591
광자 날씨 보호막: 수분
버튼 - EVShield EV3
버튼 - EVShield NXT
색상 - EVShield EV3(코드)
색상 - EVShield EV3(Raw)
색상 - EVShield NXT(코드)
라이트 - BH1750
조명 - EVShield EV3(주변)
라이트 - EVShield EV3(반사)
조명 - EVShield NXT(주변)
빛 - EVShield NXT(반사형)
빛 - TSL2561
모터 - EVShield EV3
모터 - EVShield NXT
근접성 - EVShield EV3(IR)
근접 - EVShield EV3(초음파)
Intel Edison + Grove - 가속도계(ADXL345)
Intel Edison + Grove - 가속도계(MMA7660)
Intel Edison + Grove - 공기질 센서
Intel Edison + Grove - 기압계(BMP180)
Intel Edison + Grove - 버튼
Intel Edison + Grove - 나침반(HMC588L)
Intel Edison + Grove - 불꽃 센서
Intel Edison + Grove - 가스(MQ2)
Intel Edison + Grove - 습도 및 온도(TH02)
Intel Edison + Grove - I2C 모터 드라이버
Intel Edison + Grove - 조이스틱
인텔 에디슨 + 그로브 - LED
Intel Edison + Grove - 광 센서(TSL2561)
Intel Edison + Grove - 수분 센서
인텔 에디슨 + 그로브 - Q 터치
인텔 에디슨 + 그로브 - RGB LCD
Intel Edison + Grove - RGB LCD 컬러 프리뷰어
Intel Edison + Grove - RGB LCD 온도 디스플레이
Intel Edison + Grove - 릴레이
Intel Edison + Grove - 회전식 전위차계
Intel Edison + Grove - 서보
Intel Edison + Grove - 터치
그로브 - 버튼
그로브 - 조이스틱
그로브 - LED
그로브 - 모터(I2C 드라이버)
그로브 - RGB LCD
Grove - RGB LCD 온도 표시
그로브 - 회전식 전위차계
그로브 - 서보
그로브 - 터치
마이크로 매지션 V2 - 가속도계
마이크로 매지션 V2 - 모터
마이크로 매지션 V2 - 서보
TinkerKit - 가속도계
TinkerKit - 깜박임
TinkerKit - 버튼
TinkerKit - 콤보
TinkerKit - 연속 서보
TinkerKit - 자이로
TinkerKit - 조이스틱
TinkerKit - 선형 전위차계
TinkerKit - 회전식 전위차계
TinkerKit - 온도
TinkerKit - 기울이기
TinkerKit - 터치
Wii 클래식 컨트롤러
Wii 넌척
벌레
Kinect 로봇팔 컨트롤러
레이저 트립 와이어
라인 추종자
Lynxmotion Biped BRAT
모토봇
항해자
노드봇
피닉스 헥사포드
레이더
로봇 발톱
수염 결정
예제 플러그인
Electric Imp의 LED 깜박임
Intel Edison Arduino 보드의 Led Blink
Intel Edison 미니 보드의 Led Blink
Intel Galileo Gen 2의 Led Blink
라즈베리 파이의 Led 깜박임
Spark Core의 LED 깜박임
pcDuino3의 LED 깜박임
모든 기여는 기존 코딩 스타일을 유지하여 Idiomatic.js 스타일 가이드를 준수해야 합니다. 새로운 기능이나 변경된 기능에 대한 단위 테스트를 추가합니다. 그런트를 사용하여 코드를 린트하고 테스트합니다.
저작권 (c) 2012, 2013, 2014 Rick Waldron [email protected] MIT 라이센스에 따라 라이센스가 부여되었습니다. 저작권 (c) 2014, 2015 The Johnny-Five Contributors는 MIT 라이선스에 따라 라이선스가 부여되었습니다.