스크린 세이버가 작동하지 않는 장치를 만들었습니다.
8384 단어 Arduino
소개
넷 서핑하고 있으면 「 스크린 세이버의 동작을 막는 USB 어댑터 「닌자」가 오랜만에 입하 」라고 하는 기사를 발견했습니다.
생각해 보면, 사무실에서는 시간에 따라 자동으로 PC를 잠그는 설정으로 하고 있습니다만, 재택 근무에서는 그 필요도 없습니다.
Arduino를 사용하면 간단하게 만들 수 있다고 생각했기 때문에, 집에 남아 있던 Arduino 호환기(?)로 만들어 보았습니다.
가정하는 사용 환경은 다음과 같습니다.
사용한 것
이번에는 Digispark의 USB Development Board을 사용했습니다. 보드와 USB 커넥터가 일체로 되어 있어 케이블 등을 사용하지 않고 접속할 수 있는 것입니다.
ATTINY85라고 하는 마이크로컴퓨터가 사용되고 있어, 「Digispark ATTINY85」로 검색하면 다양한 메이커의 것이 히트합니다.
나는 eBay에서 3개 AU$8.95(당시의 일본 엔으로 777엔)로 구입했습니다.
eBay라면 도착하는데 시간이 걸리므로, 서둘러 있는 분은 조금 비싸지만 아마존 로 구입하는 것도 좋다고 생각합니다.
USB Micro 케이블을 사용하는 유형 도 있으므로, 기호로 선택해 주셨으면 좋겠습니다.
개발
이번에는 Windows10에서 개발하고 있습니다. 다른 OS에서는 동작이 약간 다를 수 있습니다.
준비
보드에 쓰려면 "Arduino IDE"이 필요하므로 설치하십시오.
Digispark 보드에 쓰려면 Arduino IDE에서 설정이 필요합니다.
Digispark의 Wiki에 절차가 기재되어 있으므로 기재대로 진행합니다.
ht tp // // ㎢ s mp. 코 m / ぃき / ぢぎ s ぱ rk / 츠토리아 ls / 콘 c 친g
설정을 눌러 나온 화면의 '추가 보드 관리자 URL'에 다음 URL을 추가합니다.
http://digistump.com/package_digistump_index.json
보드 관리자에서 "Digistump AVR Boards"를 추가합니다. 다운로드가 시작되고 조금 시간이 걸립니다.
보드에서 Digispark (Default - 16.5mhz)를 선택합니다.
일부 환경에서는 쓰기에 드라이버가 필요할 수 있습니다. GitHub에서 구할 수 있으므로 OS에 맞게 설치하십시오. htps : // 기주 b. 코 m / ㎢ s mp / ㎢ s m 파 r 즈의 / t ree / ms r / 및 ls
쓰기시주의 사항
이 보드는 쓰기 전에 PC에서 분리해야 합니다.
Arduino IDE에서 "마이컴 보드에 굽기"를 선택한 후 다음 메시지가 표시되므로 찌릅니다.
Running Digispark Uploader...
Plug in device now... (will timeout in 60 seconds)
쓰기가 성공하면 다음 메시지가 표시됩니다.
>> Micronucleus done. Thank you!
코드
마우스 커서를 5초마다 위아래로 움직이는 코드를 썼습니다.
라는 흐름이 되고 있습니다.
작동 중임을 알 수 있도록 LED가 깜박입니다.
MOUSE_MOVE_AMOUNT
에서 마우스 이동량, TIME_INTERVAL_S
로 처리 간격(위 흐름에서 4초)을 조정할 수 있습니다.MOUSE_MOVE_AMOUNT
를 100으로 바꾸면 동작하는 모습을 확인할 수 있습니다.수중에 있던 MacBook Pro와 개발한 Windows와는 다른 Windows 머신에서 동작을 확인할 수 있습니다. 드라이버 설치도 필요하지 않습니다.
GitHub에서도 공개하고 있으므로 좋으면 Star를 누르면 텐션이 올라갑니다.
htps : // 기주 b. 코 m / 마 rc0468 / BぉckSc Reensaゔぇr
#include <DigiMouse.h>
#define MOUSE_MOVE_AMOUNT 1
#define TIME_INTERVAL_S 5
int time_interval_ms = TIME_INTERVAL_S * 1000;
void setup()
{
pinMode(0, OUTPUT); //LED on Model B
pinMode(1, OUTPUT); //LED on Model A
DigiMouse.begin(); //start or reenumerate USB
}
void loop()
{
DigiMouse.moveY(MOUSE_MOVE_AMOUNT);
digitalWrite(0, LOW); // LED OFF
digitalWrite(1, LOW);
DigiMouse.delay(100);
DigiMouse.moveY(-1 * MOUSE_MOVE_AMOUNT);
digitalWrite(0, HIGH); // LED ON
digitalWrite(1, HIGH);
DigiMouse.delay(time_interval_ms);
}
Reference
이 문제에 관하여(스크린 세이버가 작동하지 않는 장치를 만들었습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/marc0468/items/8a4b1301416979ecba0e텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)