제조공정
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 30 | ||||
| × | 3 |
| ||||
|
|
몇 달 전에 친구를 방문했는데 그가 소유한 Amazon Echo에 놀랐습니다.
음성 명령으로 음악을 재생하고, 집 조명을 제어하고, 뉴스와 날씨 상태, 심지어 날짜와 시간까지 알려줄 수 있습니다.
그 순간, 내 안의 제작자가 "내가 직접 만들면 되지!"라고 외쳤습니다.
그리고 그날 이후로 놀라운 1Sheeld를 찾을 때까지 arduino 기반 Amazon Echo를 만드는 데 도움이 될 수 있는 구성 요소를 찾기 시작했습니다.
1Sheeld는 스마트폰의 센서와 기능을 활용하여 Arduino 프로젝트에서 사용할 수 있는 Arduino용 플랫폼입니다.
기본적으로 이것은 Arduino 보드 상단에 위치하며 Bluetooth를 통해 이 Android 앱과 통신하여 이 앱과 스마트폰 간에 데이터를 전송하는 하드웨어 실드입니다.
1Sheeld 웹사이트에서 시작하기 튜토리얼을 확인하여 1Sheeld를 매우 원활하게 작동할 수 있을 때까지 단계별로 안내하고 훌륭한 Arduino 프로젝트를 위한 훌륭한 참고 자료가 될 것입니다.
나는 이 프로젝트에서 1Sheld의 40개 이상의 쉴드에서 5개의 쉴드를 사용했습니다.
첫 번째는 음성 인식 실드입니다. 내가 음성 명령으로 전체 시스템을 제어하는 데 사용했던 그것은 단 한 줄의 코드로 활성화할 수 있는 매우 간단한 방패입니다:VoiceRecognition.start();
그런 다음 Music Player Shield를 사용했습니다. 이를 통해 스마트폰 뮤직 플레이어를 탭하고 매우 매끄럽게 재생하려는 트랙을 선택할 수 있습니다. 실제로 이 라인을 사용하여 뮤직 플레이어 실드를 재생하는 것은 매우 간단합니다. MusicPlayer.play();
내가 사용한 세 번째 방패는 프로젝트에서 가장 중요한 방패 중 하나입니다. Text to Speech Shield입니다. 프로젝트에 누군가가 당신의 말에 응답하는 인간형 상호 작용을 추가하면 시스템이 반응하도록 만드는 것이 너무 쉬웠습니다. TextToSpeech.say("time in cairo is");
TTS(텍스트 음성 변환) 방패를 활성화한 후 시계 방패를 활성화했습니다. 실시간으로 시계를 반환하고 시스템은 내가 요청한 시간에 응답할 수 있습니다. 놀랍습니다! 그렇죠 :) 그리고 이 함수를 사용하여 내 휴대전화의 현재 시간을 쉽게 얻을 수 있습니다:Clock.queryDateAndTime();
내가 마지막으로 사용한 방패는 인터넷 방패입니다. 제 생각에는 1Sheeld에서 가장 강력한 방패입니다. 저는 "openweathermap" 웹사이트에서 API를 호출할 수 있는 "openweathermap" 웹사이트의 API를 사용하여 제 고향의 현재 날씨 상태를 확인하는 데 그 방패를 사용했습니다. HttpRequest request1("/*API 주소 */");
1단계:구성 요소 수집 <울>
2단계:
소리가 나도록 파이프에 구멍을 뚫습니다.
3단계:
PVC 파이프를 검은색 스프레이로 칠하십시오.
4단계:배선 작업 <울>
5단계:1Sheeld 라이브러리 설정
Arduino의 IDE에서 모든 라이브러리를 관리할 수 있습니다. 스케치>> 라이브러리 포함>> 라이브러리 관리>> OneSheeld 입력>>을 클릭한 다음 설치를 클릭하면 됩니다. 또는 여기에서 라이브러리를 다운로드할 수 있습니다:http://1sheeld.com/downloads/ 그런 다음 Arduino IDE를 열고 메뉴 모음에서 스케치를 선택한 다음>> 라이브러리 포함>> .zip 파일 추가>> zip 파일을 선택합니다. 방금 다운로드했습니다.
6단계:1Sheld 앱 설치
웹사이트에서 1Sheeld 모바일 앱을 다운로드하거나 Apple Play 스토어 또는 Google Play 스토어를 방문하여 앱을 다운로드할 수 있습니다.
7단계:방패에 액세스
1Sheeld 시작하기 자습서를 따르고 끝에서 다음 방패를 선택합니다.
<울>그런 다음 다중 방패 버튼을 누릅니다.
<섹션 클래스="섹션 컨테이너 섹션 축소 가능" id="코드">
/* 선택 사항:라이브러리 컴파일된 크기를 줄이고 메모리 사용을 제한하려면 CUSTOM_SETTINGS 및 각 INCLUDE_가 정의하는 방패를 정의하여 스케치에 포함할 방패를 지정할 수 있습니다. */#define CUSTOM_SETTINGS#define INCLUDE_INTERNET_SHIELD#define INCLUDE_VOICE_RECOGNIZER_SHIELD#define INCLUDE_TEXT_TO_SPEECH_SHIELD#define INCLUDE_MUSIC_PLAYER_SHIELD#define INCLUDE_CLOCK_1 라이브러리 포함. */#include/* 밀리 카운터의 초기 값을 생성합니다. */unsigned long previousMillis =0;/* Alexa를 호출하기 위한 초기 상태를 생성합니다. */bool state =0;/* 이집트 카이로의 날씨 상태를 반환하는 API를 호출합니다. */HttpRequest request1("http://api.openweathermap.org/data/2.5/weather?q=Cairo,EG&appid=43d95b4cf5d0573e2dfe5186c160017a");/* 핀 3,5 및 6에서 3개의 트랜지스터를 정의합니다. */#define strip1 3#define strip2 6#define strip3 5/* 핀 13의 램프를 정의합니다. */int 램프 =13;/* 시간과 최소 단위를 저장할 변수를 정의합니다. */int hour, minute;/* 문장에서 원하는 문자열을 잡기 위해 2개의 charachter arrys를 만듭니다. */char b[4];char c[4];/* 문자열에 시간과 최소값을 저장할 변수를 정의합니다. */String strh, strm;/* 오전 또는 오후 요일 상태를 유지하는 변수를 정의합니다. */String noon;/* 사용자가 설정한 음성 명령. */const char mainCommand[] ="alexa";const char weatherCommand[] ="오늘 날씨는 어떻습니까?"; const char playCommand[] ="음악 재생";const char clockCommand[] ="지금 몇 시입니까?"; const char stopCommand[] ="중지";const char lightonCommand[] ="조명 켜기";const char lightoffCommand[] ="조명 끄기";void setup() { /* 통신을 시작합니다. */ OneSheeld.begin();/* 출력할 LED 스트립과 램프를 설정합니다. */ 핀모드(strip1,OUTPUT); 핀모드(스트립2,출력); 핀모드(스트립3, 출력); 핀모드(램프, 출력); /* 요청에 대한 성공 콜백을 구독합니다. */ request1.setOnSuccess(&onSuccess1); /* json 값 응답을 구독합니다. */ request1.getResponse().setOnJsonResponse(&onJsonReply1);/* 음성 인식 시 "myfunction" 기능을 호출합니다. */ VoiceRecognition.setOnNewCommand(&myFunction);}void loop (){ /* 음성 감지를 활성 상태로 유지하기 위해 밀리 카운터를 사용하여 5초 동안 지연시킵니다. */ unsigned long currentMillis =millis(); if (currentMillis - previousMillis>=5000) { previousMillis =currentMillis; /* 휴대전화의 현재 시간을 가져옵니다. */ Clock.queryDateAndTime(); /* 음성 인식을 시작합니다. */ VoiceRecognition.start(); }/* 스마트폰 시간과 분을 변수에 저장합니다. */ 시간 =Clock.getHours(); 분 =Clock.getMinutes(); /* 오전인지 오후인지 시간 상태를 감지합니다. */ if (시> 12) { 시 -=12; 정오 ="PM"; } else { 정오 ="AM"; }/* 시와 분을 문자열로 저장합니다. */ strh =문자열(시간); strm =String(분);/* charchter 배열에 문자열을 저장합니다. */ strh.toCharArray(b, 4); strm.toCharArray(c, 4);}/* 이 함수는 새 명령이 제공될 때마다 호출됩니다. */void myFunction (char *commandSpoken){/* Alexa를 호출하는 사람이 있는지 확인합니다. */ if (!strcmp(mainCommand, VoiceRecognition.getLastCommand())) { alexon(); MusicPlayer.setVolume(5); /* 그렇다면 상태를 =1로 만듭니다. */ 상태 =1; } /* Alexa를 호출한 후 음악 재생을 요청했는지 확인합니다. */ if (!strcmp(playCommand, VoiceRecognition.getLastCommand()) &&state ==1) { alexoff(); MusicPlayer.play(); 지연(10000); MusicPlayer.stop(); 상태 =0; }/* Alexa를 호출한 후 날씨 상태를 요청했는지 확인합니다. */ else if(!strcmp(weatherCommand,VoiceRecognition.getLastCommand())&&state ==1) { alexoff(); Internet.performGet(요청1); /* 5초 동안 기다립니다. */ OneSheeld.delay(5000); 상태 =0; }/* Alexa를 호출한 후 시간을 요청했는지 확인합니다. */ if(!strcmp(clockCommand,VoiceRecognition.getLastCommand()) &&state ==1) { alexoff(); /* 1Sheeld는 텍스트 음성 변환을 사용하여 응답합니다. */ TextToSpeech.say("카이로의 시간은 입니다."); 지연(1300); TextToSpeech.say(b); 지연(600); TextToSpeech.say(c); 지연(800); TextToSpeech.say(정오); 지연(500); 상태 =0; }/* Alexa를 호출한 후 램프를 켜도록 요청했는지 확인합니다. */ if (!strcmp(lightonCommand, VoiceRecognition.getLastCommand()) &&state ==1) { alexoff(); 디지털 쓰기(램프, 높음); TextToSpeech.say("조명 켜짐"); 지연(6000); 상태 =0; }/* Alexa를 호출한 후 램프를 끄도록 요청했는지 확인합니다. */ else if (!strcmp(lightoffCommand, VoiceRecognition.getLastCommand()) &&state ==1) { alexoff(); 디지털 쓰기(램프,낮음); TextToSpeech.say("조명이 꺼졌습니다."); 지연(3000); 상태 =0; }}void onSuccess1(HttpResponse &response1){ /* 응답을 사용하여 필요한 값까지 Json 체인을 쿼리합니다. */ /* 즉, 응답에서 'weather' 배열의 첫 번째 객체에서 'main' 값을 가져옵니다. */ /* 응답이 JSON 형식인 경우. */ response1["날씨"][0]["주"].query();delay(200); }void onJsonReply1(JsonKeyChain &hell,char * output){ if(hell ==request1.getResponse()["weather"][0]["main"]) { TextToSpeech.say("오늘 카이로 날씨는" ); 지연(2000); /* 1Sheeld는 TTS(텍스트 음성 변환) 방패를 사용하여 응답합니다. */ TextToSpeech.say(출력); } }void alexon(){ /* 아마존 에코와 같은 순서로 스트립을 켭니다. */ digitalWrite(strip1, HIGH); 지연(200); 디지털 쓰기(스트립2,높음); 지연(200); 디지털 쓰기(스트립3,높음); } void alexoff(){ /* 스트립을 끕니다. */ digitalWrite(strip1,LOW); 디지털 쓰기(스트립2,낮음); 디지털 쓰기(strip3,LOW); }
제조공정
이 튜토리얼에서는 Arduino 기반 RC Hovercraft를 구축하는 방법을 배웁니다. 프로펠러를 포함한 호버크라프트 부품의 설계 및 3D 프린팅부터 전자 부품 연결 및 Arduino 프로그래밍까지 전체 제작 과정을 보여드리겠습니다. 다음 비디오를 보거나 아래에 작성된 튜토리얼을 읽을 수 있습니다. 개요 호버크라프트를 제어하기 위해 이전 비디오 중 하나에서 만든 DIY Arduino 기반 RC 송신기를 사용했습니다. 오른쪽 조이스틱은 스러스트 모터 후면에 러더를 위치시키기 위한 서보 모터를 제어하기 위해 설정하고, 전위차계
이 프로젝트에서는 Arduino 기반 DIY 자판기를 만드는 방법을 배웁니다. MDF 기판을 자르고 조립하는 것부터 모든 전자 부품을 연결하고 Arduino 코드를 작성하는 것까지 만드는 전체 과정을 보여 드리겠습니다. 다음 비디오를 보거나 아래에 작성된 튜토리얼을 읽을 수 있습니다. 개요 자판기는 4개의 연속 회전 서보 모터로 제어되는 4개의 배출 장치, 스테퍼 모터로 제어되는 캐리어 시스템, LCD, 품목 선택을 위한 4개의 버튼 및 동전 감지기로 구성되어 있습니다. 당신은 이제 아이템 캐리어가 이 자판기에 그다지 유