- Alexa 기반 음성 제어 로켓 발사기-작동 중
- NodeMCU 로켓 발사 컨트롤러 용 런치 패드
- Alexa Controlled Rocket Launcher에 필요한 구성 요소
- Arduino 로켓 발사기 회로도
- PerfBoard에 회로 구축
- Alexa Controlled Rocket Launcher를위한 프로그래밍 NodeMCU
- Alexa Android 애플리케이션으로 Alexa 구성
- Alexa Controlled Rocket Launcher-테스트
겨울이 다가 오면 빛 의 축제가 열리는 그 해에 온다. 예, 우리는 전 세계에서 열리는 진정한 인도 축제 인 디 왈리에 대해 이야기하고 있습니다. 올해 Diwali는 이미 끝났고 사람들이 폭죽을 터뜨리는 것을보고, 음성 명령만으로 로켓을 발사 할 수 있는 Alexa 기반의 음성 제어 로켓 발사기 또는 점화 장치 를 만드는 아이디어를 생각해 냈습니다.
명확히하기 위해 저는 사람들에게 디 왈리에서 크래커를 발사하도록 장려하는 것이 아닙니다. 인도 정부는 오염을 억제하기 위해 크래커에 대한 제한을 시행했으며이를 준수하는 것은 우리의 책임입니다. 여기서 아이디어는 하루 종일 크래커를 발사하는 대신 멋진 음성 제어 Arduino 로켓 점화기를 만들고 스타일로 로켓 몇 개를 발사하는 것입니다. 나는 그것이 윈-윈이라고 생각합니다.
이 Arduino 로켓 발사기 는 다른 발사기와 매우 다를 것입니다. 합판으로 만든 매우 견고한 섀시, 신뢰할 수있는 릴레이 기반 제어 메커니즘, 로켓 발사 및 재 장전을위한 매우 독특한 메커니즘을 갖추고 있으므로 더 이상 지체하지 않고 바로 조립 과정을 시작합시다.
Alexa 기반 음성 제어 로켓 발사기-작동 중
회로의 작동 메커니즘은 매우 간단하며 로켓 발사를 담당하는 주요 구성 요소는 니크롬 와이어이며 가열 코일 형태로 제공됩니다. 이 니크롬 와이어는 로켓 점화기 역할을합니다 . 어떻게? 나중에 보여 드리겠습니다.
위의 이미지에서 볼 수 있듯이 니크롬 와이어는 히터 코일 형태로 제공됩니다. 저에게는 이것이 가장 쉬운 방법이었습니다. 우리는 그것을 똑바로 당기고 구부려서 아래 이미지와 같은 모양을 만들어야합니다.
이 작업을 마치면 12V 납축 배터리로 전원을 공급하면 빨간색으로 뜨거워집니다. 이것은 로켓 내부의 흑색 화약을 점화하기에 충분할 것이며 정상적인 퓨즈 선량처럼 작동 할 것입니다. 이것은 고출력 로켓 발사 컨트롤러 이며 전선을 붉은 색으로 만드는 데 필요한 전류가 높습니다. 고전류로 작업 할 때는 안전 지침을 따르십시오.
테스트가 완료되면 남은 것은 제어 프로세스뿐입니다.이 문서에서 계속 진행하면서 수행 할 작업입니다.
NodeMCU 로켓 발사 컨트롤러 용 런치 패드
이 빌드에서는 런치 패드를 만들어 보겠습니다. 런치 패드가 완료되면 크래커를 쉽게 재장 전하고 아주 쉽게 실행할 수 있습니다. 아래 이미지에 표시된 것과 같은 런치 패드를 만들었습니다.
런치 패드를 빌드하는 단계별 프로세스를 살펴 보겠습니다. 프레임의 양면에는 25X3X1.5 인치 길이의 합판 2 개를 사용했습니다. 윗부분은 (20X3X1.5) 인치 길이의 합판을 사용했고,베이스는 (20X6X1.5) 인치 길이의 합판을 사용하여 좀 더 안정감을줍니다. 아래 이미지는 명확한 아이디어를 제공합니다.
이제 우리 로켓의 퓨즈 역할을 할 니크롬 와이어 기반 필라멘트 를 만들 차례 입니다. 이를 위해 1000W 니크롬 와이어베이스 가열 코일을 구입하여 곧게 펴서 아래와 같은 구조를 만들었습니다. 아래 그림과 같이 니크롬 와이어 모양을 만들기 위해 두 개의 펜치와 사이드 커터를 사용해야했습니다.
이 작업이 완료되면 20 인치 합판 블록을 7 개로 나누어 측정하고 구멍을 뚫어 니크롬 와이어 기반 필라멘트를 넣은 후 아래 이미지와 같이 보입니다.
하지만 필라멘트를 넣기 전에 각 단자에 1 제곱 mm 두께의 구리선을 부착하고 구멍을 통해 통과 시켰습니다. 모든 작업이 완료되면 아래 이미지와 같습니다.
보시다시피 와이어와 필라멘트를 제자리에 고정하기 위해 2 액형 접착제도 넣었습니다. 완료되면 런치 패드가 완성됩니다. 이 섹션의 첫 번째 그림에서 볼 수 있듯이, 필라멘트 와이어를 PCB에 직접 연결했습니다. 매우 높은 전류를 처리하고 있기 때문에 나사 단자를 배치 할 필요가 없었고 섀시 끝을 표시합니다. 건축 과정.
Alexa Controlled Rocket Launcher에 필요한 구성 요소
하드웨어 측면에서는 지역 취미 용품점에서 쉽게 구할 수있는 매우 일반적인 부품을 사용했습니다. 전체 항목 목록은 아래에 나와 있습니다.
- 12V 릴레이-3
- BD139 트랜지스터-3
- 1N4004 다이오드-3
- 5.08mm 나사 고정 터미널-1
- LM7805-전압 조정기-1
- 100uF 디커플링 커패시터-2
- 5.1V 제너 다이오드-1
- NodeMCU (ESP8266-12E) 보드-1
- 점선 퍼프 보드-½
- 연결 와이어-10
Arduino 로켓 발사기 회로도
Alexa Controlled Rocket Launcher 의 전체 회로도 는 다음과 같습니다. 한 핀을 다른 핀에 연결하기 위해 태그를 사용했습니다. 충분히 가까이 보면 회로도를 해석하는 것이 어렵지 않습니다.
회로 구성은 매우 간단하므로 세부 사항은별로 다루지 않겠습니다.
먼저 LM7805 전압 조정기 인 IC1이 있으며 100uF 디커플링 커패시터가 C1 및 C2로 표시됩니다. 그 후 프로젝트의 핵심 인 ESP-12E 모듈을 수용하는 NodeMCU 보드를 갖게되었습니다. 전체 회로에 전력을 공급하기 위해 12V 납산 배터리를 사용하고 있기 때문에 NodeMCU 보드에 전력을 공급하기 위해 먼저 LM7805를 12V에서 5V로 변환해야합니다. 온보드 AMS1117 전압 조정기가 12V를 3.3V로 직접 변환하기에 충분하지 않기 때문에 그렇게하고 있습니다. 이것이 7805가 필요한 이유입니다.
계속해서 세 개의 12V 릴레이가 있습니다.이 데모에서는 세 개의 릴레이를 사용하지만 앞서 언급했듯이 발사대에는 7 개의 로켓에 대한 자리 표시자가 있습니다. 코드를 약간 조정하고 7 개의 로켓을 모두 배치하여 함께 발사 할 수 있습니다. 3 개의 릴레이는 3 개의 NPN 트랜지스터 인 T1, T2 및 T3에 의해 구동되며 실제 부하를 구동하기에 충분합니다. 마지막으로 릴레이에 의해 생성 된 고전압 스파이크로부터 회로를 보호하는 3 개의 프리 휠링 다이오드가 있습니다.
PerfBoard에 회로 구축
메인 이미지에서 볼 수 있듯이 짧은 시간 동안 엄청난 양의 전류를 처리 할 수있는 간단한 회로를 만드는 것이 아이디어였습니다. 테스트에 따르면 800 밀리 초이면 종이 한 장을 밝힐 수 있습니다. 따라서 우리는 perfboard 조각에 회로를 구축하고 모든 주요 연결을 1m2 두께의 구리선으로 연결합니다. 보드 납땜을 마친 후. 완료되면 아래와 같이 보입니다.
Alexa Controlled Rocket Launcher를위한 프로그래밍 NodeMCU
이제 하드웨어가 준비되었으므로 Alexa 기반 음성 제어 로켓 발사기를위한 코딩을 시작할 차례입니다. 전체 코드는이 페이지 끝에서 찾을 수 있지만 시작하기 전에 필요한 라이브러리를 Arduino IDE에 추가하는 것이 중요합니다. 아래에 제공된 링크에서 올바른 라이브러리를 추가했는지 확인하십시오. 그렇지 않으면 코드가 컴파일 될 때 오류가 발생합니다.
- Espalexa 라이브러리 다운로드
필요한 라이브러리를 추가 한 후이 페이지 하단에 제공된 코드를 직접 업로드하여 회로가 작동하는지 확인할 수 있습니다. 코드가 어떻게 작동하는지 알고 싶다면 계속 읽으십시오.
항상 그렇듯이 필요한 헤더 파일을 추가하고 핫스팟의 핀 이름과 자격 증명을 정의하여 프로그램을 시작합니다.
#포함
코드를 살펴보면 함수 프로토 타입과 콜백 함수 정의가 있습니다.
connectToWiFi () 함수 는 Wi-Fi 네트워크에 연결하는 데 사용 되며이 함수는 Wi-Fi가 성공적으로 연결되면 true를 반환합니다.
다음으로 콜백 함수가 있습니다.이 함수는 Alexa에 명령을 내릴 때 호출됩니다. espalexa API가 이러한 함수를 처리합니다.
void allrockets (uint8_t 밝기); void firstrocket (uint8_t 밝기); void secondrocket (uint8_t 밝기); void thirdrocket (uint8_t 밝기);
다음으로 장치 이름을 정의합니다. 이렇게 정의 된 장치 이름은 Alexa 앱에 반영되며 명령을 말하면 Alexa는 이러한 이름으로 장치를 인식합니다. 그래서이 이름들은 매우 중요합니다.
// 장치 이름 String First_Device_Name = "All Rockets"; String Secound_Device_Name = "로켓 1"; String Third_Device_Name = "로켓 2"; String Forth_Device_Name = "로켓 3";
다음으로 Wi-Fi의 연결 상태를 저장할 부울 변수 wifiStatus를 정의합니다. 마지막으로 Espalexa 객체 espalexa를 만듭니다. 이 개체를 사용하여 NodeMCU를 구성합니다.
// wifi 상태 확인 부울 wifiStatus = false; // Espalexa 개체 Espalexa espalexa;
다음으로 void setup () 섹션이 있습니다. 이 섹션에서는 Serial.begin () 함수로 디버깅을위한 직렬 통신을 초기화 합니다. pinMode () 함수를 사용하여 이전에 정의 된 모든 핀을 출력으로 설정 한 다음 connectToWiFi () 함수를 호출합니다. 연결된 경우 15 번 Wi-Fi에 연결을 시도합니다. 그렇지 않으면 true를 반환합니다. 연결되면 false를 반환하고 코드는 while () 루프를 영원히 실행합니다. Wi-Fi 연결이 성공하면 espalexa.addDevice () 함수 를 사용하여 이전에 정의 된 장치를 Alexa 객체에 추가합니다.이 함수는 두 개의 인수를 취하며 첫 번째는 장치 이름입니다. 두 번째는 콜백 함수 의 이름입니다. Alexa에 명령을 내릴 때 인접한 함수가 호출됩니다. 4 개의 장치 모두에 대해 작업을 마치면 espalexa 객체에 대해 begin () 메서드를 호출합니다.
void setup () {Serial.begin (115200); // 디버깅 메시지를 위해 직렬 활성화 pinMode (ROCKET_1_PIN, OUTPUT); // ESP 핀을 출력으로 설정 pinMode (ROCKET_2_PIN, OUTPUT); // ESP 핀을 출력으로 설정 pinMode (ROCKET_3_PIN, OUTPUT); // ESP 핀을 출력으로 설정 wifiStatus = connectToWiFi (); // (wifiStatus) 경우 로컬 Wi-Fi 네트워크에 연결 {// 모든 espalexa 장치 설정 // 여기에서 장치를 정의합니다. espalexa.addDevice (First_Device_Name, allrockets); // 가장 간단한 정의, 기본 상태 끄기 espalexa.addDevice (Secound_Device_Name, firstrocket); espalexa.addDevice (Third_Device_Name, secondrocket); espalexa.addDevice (Forth_Device_Name, thirdrocket); espalexa.begin (); } else {while (1) {Serial. println ("WiFi에 연결할 수 없습니다. 데이터를 확인하고 ESP를 재설정하십시오."); 지연 (2500); }}}
에서 루프 섹션, 우리는 호출 루프 () 항상 들어오는 명령을 확인하고 사실 발견하면 콜백 함수를 호출 할 espalexa 개체의 방법.
void loop () {espalexa.loop (); 지연 (1); }
다음으로 모든 콜백 함수를 정의합니다.이 섹션에서는이 콜백 함수가 호출 될 때 발생하는 일을 정의합니다. 때 allrockets () 함수가 호출 될 때, 모든 로켓 함께 출시 될 예정입니다. 이를 위해 릴레이를 00ms 동안 켜고 그 후에 릴레이를 끕니다. 내 테스트에서 지정된 길이의 니크롬 와이어에 대해 와이어를 완전히 가열하려면 800ms의 지연이 필요하다는 것을 발견했습니다. 따라서 그에 따라 지연을 선택하십시오.
void allrockets (uint8_t 밝기) {if (밝기 == 255) {digitalWrite (ROCKET_1_PIN, HIGH); digitalWrite (ROCKET_2_PIN, HIGH); digitalWrite (ROCKET_3_PIN, HIGH); 지연 (800); digitalWrite (ROCKET_1_PIN, LOW); digitalWrite (ROCKET_2_PIN, LOW); digitalWrite (ROCKET_3_PIN, LOW); Serial.println ("모든 로켓 발사"); }}
다음으로 첫 번째 rocket () 이 있습니다. Alexa를 호출하고 첫 번째 로켓을 시작하기 위해 tie 명령을 할 때 호출됩니다. 프로세스는 매우 유사하며 800ms 동안 릴레이를 켜고 끕니다.
void firstrocket (uint8_t 밝기) {if (밝기 == 255) {digitalWrite (ROCKET_1_PIN, HIGH); 지연 (800); digitalWrite (ROCKET_1_PIN, LOW); Serial.println ("첫 로켓 발사"); }}
마지막으로 connectToWiFi () 함수가 있습니다. 이 함수는 매우 일반적이고 자명하므로이 함수에 대해 자세히 설명하지 않겠습니다. 이 함수는 ESP를 Wi-Fi에 연결하고 연결 상태를 반환합니다.
부울 connectToWiFi () {부울 상태 = true; int i = 0; WiFi.mode (WIFI_STA); WiFi.begin (ssid, 암호); Serial.println (""); Serial.println ("WiFi에 연결 중"); // 연결 대기 Serial.print ("Connecting…"); while (WiFi.status ()! = WL_CONNECTED) {delay (500); Serial.print ("."); if (i> 15) {state = false; 단절; } i ++; } Serial.println (""); if (상태) {Serial.print ("Connected to"); Serial.println (ssid); Serial.print ("IP 주소:"); Serial.println (WiFi.localIP ()); } else {Serial.println ("연결 실패."); } 반환 상태; }
정의 된이 기능은 코딩 부분의 끝을 표시합니다.
Alexa Android 애플리케이션으로 Alexa 구성
Alexa는 esp8866 장치를 인식하는 경우에만 명령을 수락합니다. 이를 위해 Android에서 Alexa 앱을 사용하여 Alexa를 구성해야합니다. 더 진행하기 전에해야 할 한 가지 중요한 일은 Alexa가 Android 애플리케이션으로 구성되어 있는지 확인해야한다는 것입니다.
이를 위해 Alexa 앱의 더 많은 섹션으로 이동하여 장치 추가 옵션을 클릭하고 조명을 클릭 한 다음 페이지 하단에서 아래로 스크롤하고 기타를 클릭합니다.
다음으로, 클릭 DISCOVER 장치 와 알렉사 새 장치를 발견 할 것이다 그 후 잠시 대기. Alexa가 장치를 찾으면 해당 장치를 클릭하고 해당 위치 / 카테고리에 추가하면 완료됩니다.
Alexa Controlled Rocket Launcher-테스트
테스트 과정을 위해 정원으로 가서 로켓에서 모든 퓨즈를 뽑아서 각각의 위치에 배치하고 Alexa를 외쳤습니다…! 내 손가락을 꼬고 모든 로켓을 켭니다. 그리고 모든 로켓은 내 노력을 큰 성공으로 표시하여 날아갔습니다. 이렇게 생겼습니다.
드디어 다시 한번 알렉사를…! 모든 로켓을 켜면 아래에서 볼 수있는 필라멘트의 장대 한 사진을 얻을 수 있습니다.
더 멋진 경험을 위해 비디오를 시청하는 것이 좋습니다.