회로

고독한 램프 : 5 단계 (그림 포함)

로봇ë?•í›„ 3ê°œêµ - í•œ 미 ì?¼(韓 美 æ—¥) 개발 로봇들 -World Robot ~ ROK / JPN / USA

로봇ë?•í›„ 3ê°œêµ - í•œ 미 ì?¼(韓 美 æ—¥) 개발 로봇들 -World Robot ~ ROK / JPN / USA

차례:

Anonim

외로운 램프는 대도시의 사람들을 암시하는 램프입니다. 주변에 소음이 없거나 아무도 아무 말도하지 않으면 외로움을 느낄 것입니다. 그냥 그런 외로운 램프도 사람들의주의를 필요로합니다. 사람들은 전화 수신기를 집어 야합니다. 그러면이 램프는 사람들을 향하게 될 것입니다. 사람들이 전화 수신기를 통해이 램프와 대화하면이 램프가 켜지고 볼륨을 기준으로 밝기가 변경됩니다. 5 초 동안 아무 소리도 들리지 않으면이 램프가 돌아옵니다.

용품:

1 단계 : 자료

필요한 것들 :

1. Arduino Nano

2. 하프 사이즈 브레드 보드

3. Adafruit 12 키 정전 용량 터치 센서 브레이크 아웃

4.Electret 마이크로폰 증폭기

5.USB 전구

6. USB 유형 A 여자 탈주

6. 표준 서보 모터

7. 구리 호일 테이프

8.Container

9. 글루 건

10. 점퍼 선

2 단계 : 회로

3 단계 : 코드

#포함
#포함 #include "Adafruit_MPR121.h"

Adafruit_MPR121 cap = Adafruit_MPR121 ();

int pos = 0; Servo myservo;

const int ledPin1 = 13; const int ledPin2 = 11; bool greenOn = false;

uint16_t lasttouched = 0; uint16_t currtouched = 0;

int soundSensorPin = A0; int soundReading = 0;

서명되지 않은 longEvent = 0; 부울 ledOn = 거짓; 부호없는 long lastTalkTime = 0;

void setup () {// 설정 코드를 여기에 입력하여 한 번 실행합니다. Serial.begin (9600); myservo.attach (9); pinMode (ledPin1, OUTPUT); pinMode (ledPin2, OUTPUT);

while (! Serial) {// 레오나르도 / 마이크로가 너무 빨리 시작하지 못하게해야했습니다! 지연 (10); }

if (! cap.begin (0x5A)) {Serial.println ( "MPR121을 찾을 수 없음, 배선 점검?"); 동안 (1); }}

void loop () {// 기본 코드를 여기에 넣어 반복적으로 실행합니다 : currtouched = cap.touched (); // Serial.println (currtouched);

for (uint8_t i = 0; i <12; i ++) {// *가 * 터치되고 * 전에 터치되지 않으면 경고! if ((currtouched & _BV (i)) &&! (lasttouched & _BV (i))) {Serial.print (i); Serial.println ( "touched"); Serial.println (millis () - lastEvent); if (millis () - lastEvent> 50) {// LED를 토글하여 출력을 설정합니다. ledOn = true; lastTalkTime = millis (); digitalWrite (ledPin1, ledOn? HIGH : LOW); } lastEvent = millis (); } // * 터치 한 상태에서 * isnt *이면 경고! if (! (currtouched & _BV (i)) && (lasttouched & _BV (i))) {Serial.print (i); Serial.println ( "released"); lastEvent = 0; ledOn = 거짓; }} lasttouched = currtouched; if (ledOn) {pos = 180; myservo.write (pos); soundReading = analogRead (soundSensorPin); // Serial.println (soundReading);

if (pos = 180 && soundReading> 800) {lastTalkTime = millis (); greenOn = true; } if (millis () - lastTalkTime> 8000) {ledOn = false; } else if (millis () - lastTalkTime> 800) {greenOn = false; } // Serial.println (ledOn); } else {pos = 0; greenOn = false; myservo.write (pos); digitalWrite (ledPin1, LOW); } // Serial.print (greenOn); Serial.println (soundReading); if (greenOn) {int outputValue = map (soundReading, 800, 1023, 0, 255); 아날로그 쓰기 (ledPin2, outputValue); } else {digitalWrite (ledPin2, greenOn); } 지연 (100); }

4 단계 : 끝내기

아두 이노를 아래쪽에 넣으십시오.

서보 모터를 안정적으로 풀칠 할 수있는 두 번째 솔리드 레이어를 만듭니다.

나는 전화 송수화기를 만들었다.

나는 터치 센서와 연결된 사운드 센서와 점퍼 와이어를 송수화기 내부에 놓는다. 그런 다음 점퍼 와이어를 핸드셋의 전도성 테이프로 납땜했습니다.

그런 다음 전선을 장식하기 위해 모직을 사용했습니다.

5 단계 : 데모