코코아팹은 누구나 창의적 아이디어를 현실로 만들어 낼 수 있도록
만들고, 공유하고, 배울 수 있는 터전이
되고자 합니다.
아이디와 비밀번호를 잊으셨나요?아이디 / 비밀번호 찾기
코코아팹 회원이 아니신가요? 회원가입
2016-09-08 15:47:15
코코아팹의 잇 제품들만 모아모아 만든 이번 프로젝트는 조이스틱 센서 쉴드와 새로 나온 RC카 키트를 사용하려 합니다.
핸드폰으로 하는것보다 확실히 RC카의 움직임이 부드러워 정교한 조종이 가능합니다.
RC카로 대결한다면 핸드폰으로 조종하는 RC카를 2대 1로 이길 자신이 생기네요
확실히 조이스틱이 들어가다보니 조종하는 재미가 다릅니다.
자 그럼 이 재미있는 프로젝트를 만들어 볼까요?
조이스틱 센서 쉴드 소개 : http://kocoafab.cc/tutorial/view/610
RC카 키트 1 : http://kocoafab.cc/tutorial/view/647
RC카 키트 2 : http://kocoafab.cc/tutorial/view/648
nRF24L01 : http://kocoafab.cc/tutorial/view/578
NO | 부품명 | 수량 | 상세설명 |
1 | RC카 키트 | 1 | 오렌지보드 포함 |
2 | 오렌지보드 | 2 | RC카 키트의 오렌지보드 포함 |
3 | 조이스틱 센서 쉴드 | 1 | |
4 | nRF24L01 | 2 |
오렌지보드는 총 단품팩 1개 + RC카 키트 속 오렌지 보드 = 2개의 오렌지 보드가 필요합니다.
최근에 프리징 프로젝트를 올려주셔서 추가해서 사용하기 너무 좋네요~~~~^^
Fritzing 사용하기 - 소개 및 설치 http://kocoafab.cc/tutorial/view/652
Fritzing 사용하기 - 회로 그려보기 http://kocoafab.cc/tutorial/view/655
위의 그림처럼 하셨나요???
조이스틱 쉴드 잘 끼워주세요~^^ 꼭 매뉴얼 참조하시기 바랍니다.
처음에 잘못 끼워서 망가트릴뻔했네요
다 하셨으면 소스를 업로드 하겠습니다.
TX_조이스틱 센서 쉴드 코드
#include <SPI.h>
#include "nRF24L01.h"
#include "RF24.h"
#define CE_PIN 3
#define CSN_PIN 2
unsigned int joystick[3]={0,};
const uint64_t pipe = 0xE8E8F0F0E1LL;
//입출력핀 선언
unsigned char inputPin[5] = {A2, A3, A4, A5, 8};
RF24 radio(CE_PIN, CSN_PIN);
void setup(void)
{
Serial.begin(9600); //통신속도
radio.begin(); //통신시작
radio.setPALevel(RF24_PA_MIN); // LOW, MAX
radio.openWritingPipe(pipe);
//핀모드 입출력 설정
for(char i = 0; i < 5; i++){
pinMode(inputPin[i], INPUT);
}
// for(int i = 0; i < 1; i++){
// pinMode(outputPin[i], OUTPUT);
// }
}
void loop(void)
{
// radio.stopListening();
//데이터저장
//RED Button
if(digitalRead(8) == LOW)
joystick[2] = 0;
else
joystick[2] = 1;
//x축 데이터 저장
joystick[0] = analogRead(A0);
//y축 데이터 저장
joystick[1] = analogRead(A1);
//시작 주소와 데이터 사이즈 전달
for(int i= 0; i<3;i++){
Serial.print("data");
Serial.print(i);
Serial.print(" : ");
Serial.println(joystick[i]);
}
Serial.println("Send");
joystick[3]++;
radio.write( joystick, sizeof(joystick) );
// Serial.println("complete");
//delay(1000);
}
#include <SPI.h>
#include "nRF24L01.h"
#include "RF24.h"
#define CE_PIN 3
#define CSN_PIN 2
unsigned int joystick[3]={0,};
const uint64_t pipe = 0xE8E8F0F0E1LL;
//입출력핀 선언
unsigned char inputPin[5] = {A2, A3, A4, A5, 8};
RF24 radio(CE_PIN, CSN_PIN);
void setup(void)
{
Serial.begin(9600); //통신속도
radio.begin(); //통신시작
radio.setPALevel(RF24_PA_MIN); // LOW, MAX
radio.openWritingPipe(pipe);
//핀모드 입출력 설정
for(char i = 0; i < 5; i++){
pinMode(inputPin[i], INPUT);
}
// for(int i = 0; i < 1; i++){
// pinMode(outputPin[i], OUTPUT);
// }
}
void loop(void)
{
// radio.stopListening();
//데이터저장
//RED Button
if(digitalRead(8) == LOW)
joystick[2] = 0;
else
joystick[2] = 1;
//x축 데이터 저장
joystick[0] = analogRead(A0);
//y축 데이터 저장
joystick[1] = analogRead(A1);
//시작 주소와 데이터 사이즈 전달
for(int i= 0; i<3;i++){
Serial.print("data");
Serial.print(i);
Serial.print(" : ");
Serial.println(joystick[i]);
}
Serial.println("Send");
joystick[3]++;
radio.write( joystick, sizeof(joystick) );
// Serial.println("complete");
//delay(1000);
}
소스도 잘 구분하여 업로드해야겠죠?
반대로 넣으시면 작동이 되지않습니다.
이번 프로젝트는 굳이 RC카 키트를 사용하지않으시더라도 nRF24L01 모듈을 사용해서 조이스틱을 무선으로 사용할 수 있는 방법을 알려드리는 거라보시면 되겠네요
조이스틱 쉴드를 오렌지 보드가 아닌 BLE나 WIFI보드를 이용하신다면 모듈을 굳이 사용 안하시고 더 간단히 사용하실 수 있으실 거라 생각합니다.
이러한 응용 프로젝트는 꼭 링크해드린 기초 튜토리얼을 읽어보시고 하시면 더욱 쉽고 이해하시기 편하실 겁니다.
이번에는 RC카로 보여드렸지만 RC배? 또는 드론을 조종하는 것도 재미있을것같네요~~~^^
다음은 더 유용한 컨텐츠로 찾아뵐게요~~~~
염소할배