크래피의 박수를 계산해 보았습니다.
크래피 챌린지 Advent Calendar 2017 8일째 기사입니다!
클래피 챌린지를 시작한 후 처음으로 만든 박수의 카운트에 대해 소개합니다.
완성 동영상은 이것.
박수가 카운트할 수 있게 됐어ー #KumaMCN #클래퍼슨 #크래피챌린지 피 c. 라고 r. 이 m/예 Bw3z66dL
우선 스위치 부분을 만듭니다.
사용한 것은 이것. 다이 소에 팔고있는 케이블을 벽에 고정하는 사람입니다.
2017년 2월 26일
클래피를 해체하고, 하나는 그대로 상부에, 다른 하나는 입의 뒷면에 걸리는 부분만 접어 구부려 넣으면 딱 좋습니다.
도선을 납땜합시다. (…납땜하기 어렵습니다. 깎으면 좋을지도.)
안이 더러운 것은 여러가지 시행 착오하고 있었기 때문입니다 www (쓸 수 있는 펜이라든지 시험하고 있었다.)
클래피의 바닥을 커터로 조금 자르고 아래에서 도선을 내십시오.
Bluetooth로 무선으로 만들고 싶었기 때문에 블루노 나노 아두이노를 사용했습니다. (...아직 할 수 없는, 크래피에 묻고 싶다)
빨간색 전선을 3V에, 검은색 전선을 아날로그 핀(A3)에 꽂습니다. A3에서 GND로 저항을 꽂습니다.
Bluno를 컴퓨터에 연결합니다.
Bluno에 쓰는 Arduino 프로그램은 이쪽.
ON으로 되어 있는 동안 카운트하고, ON에서 OFF가 되었을 때(어느 정도 카운트 되어 있는 것으로, 노이즈로 박수 카운트되지 않게 됩니다), 시리얼 통신으로 문자 "8"(혹은 박수 카운트수)를 보내 합니다.
int analogPin = 3; // potentiometer wiper (middle terminal) connected to analog pin 3
// outside leads to ground and +5V
int val = 0; // variable to store the value read
int count = 0;
int clap = 0;
int preclap = 0;
int clapcount = 0;
void setup()
{
Serial.begin(9600); // setup serial
}
void loop()
{
val = analogRead(analogPin); // read the input pin
//Serial.println(val);
if(val > 50){
count++;
clap = 1;
//Serial.println("ON");
}else{
clap = 0;
//Serial.println("OFF");
}
if(preclap == 1 && clap == 0 && count > 500) {
clapcount++;
//Serial.println(clapcount);
Serial.println("8");
count = 0;
}
preclap = clap;
}
문자를 받고 카운트(혹은 박수 카운트수를 받고 표시)하는 Python 프로그램은 이쪽.
Qt를 사용하고 있습니다.
from PyQt5.QtCore import *
from PyQt5.QtWidgets import *
import sys
import serial
import serial.tools.list_ports
import re
# TODO
# Reset Button
# Close Serial
class ClappyCount(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.ser = serial.Serial()
self.ser.baudrate = 9600
# print(list(serial.tools.list_ports.comports())[0][0])
# self.ser.port = list(serial.tools.list_ports.comports())[0][0]
self.ser.port = "COM7"
self.ser.open()
self.LCDDisplay = QLCDNumber(self)
BoxLay = QVBoxLayout()
BoxLay.addWidget(self.LCDDisplay)
self.setLayout(BoxLay)
self.setGeometry(500, 500, 300, 200)
self.setWindowTitle('パチパチ数')
self.clapcount = 0
self.LCDDisplay.display(self.clapcount)
self.show()
self.showMaximized()
timer = QTimer(self)
timer.timeout.connect(self.Update)
timer.start(100)
def Update(self):
self.buf = self.ser.readline()
if self.buf != "":
# self.clapcount = int(self.buf.decode('utf-8'))
self.clapcount += 1;
self.LCDDisplay.display(self.clapcount)
if __name__ == '__main__':
app = QApplication(sys.argv)
win = ClappyCount()
sys.exit(app.exec_())
Windows에서 명령 프롬프트를 열고 Python 프로그램을 실행합니다. (Anaconda 자주 사용하고 있습니다.환경 전환에.)
아날로그 입력의 노이즈가 많아, 잘 카운트되지 않는 경우가 있었으므로, 어려웠습니다.
만들면 3에서는, 방문자에게 많이 카운트 받게 되어 즐거웠습니다.
이상입니다.
Reference
이 문제에 관하여(크래피의 박수를 계산해 보았습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/SatoshiGachiFujimoto/items/ce2976dd0e444accd0f5텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)