프로젝트 쇼케이스 '14


25

이 로고는 Creative Commons 라이센스 CC-SA-BY-NC 3.0에 따라 라이센스가 부여 된 Arduino Community 로고 의 파생물입니다.

업데이트 : 수상자 발표

공모전 당첨자가 발표되었습니다. 자세한 내용은 메타 게시물을 참조하십시오 .

Arduino의 10 년 을 축하하기 위해 Arduino Stack Exchange 에서 첫 번째 이벤트 를 발표하게 된 것을 자랑스럽게 생각합니다 .

보드와 납땜 장비를 꺼내고 IC와 저항기를 파십시오. 첫 번째 Arduino Stack Exchange 콘테스트는 바로 코너에 있습니다. 우리는 Arduino를 사용하여 구축 된 흥미로운 프로젝트를 찾고 있습니다. 이 콘테스트는 귀하와 다른 회원이 진행중인 프로젝트에 대한 공유, 토론 및 피드백 제공을 목표로합니다. 공지 사항 게시

세부:

  • 상품은 공식 스택 교환 티셔츠입니다.
  • 한 사람당 두 항목을 제한하십시오. 둘 이상이 제공되면 처음 두 개만 고려됩니다.
  • 클론 허용됩니다.
  • 고려할 프로젝트는 2014 년 3 월 29 일 4시 (UTC)에 수락됩니다 . Arduino Day 2014에서 만든 프로젝트를 누군가가 보여주기를 원하는 경우 질문은 계속 열려 있습니다.

이 이벤트 및 추가 정보에 대한 토론은 메타 게시물 을 방문 하십시오.

답변 형식

컨테스트 참가작으로 최대 2 개의 프로젝트 (2 개의 별도 답변)를 게시 할 수 있습니다. 추가 항목이 모두 삭제됩니다. 항목에 대해서는 다음 템플릿을 고려하십시오.

프로젝트 제목

아주 간단한 설명

기술

당신의 프로젝트는 무엇입니까? 무엇을합니까? 어떤 문제가 해결됩니까?

디자인

이 섹션에 포함 할 사항 :

  • 회로도 및 기타 설계 문서. Fritzing 은 위의 프로젝트 로고에 표시된 것과 같은 브레드 보드 회로도를 그리는 데 유용한 도구입니다.
  • 프로젝트를 구축하는 데 사용되는 구성 요소
  • 사진 또는 비디오

결론

마지막 생각들. 이 프로젝트를 통해 무엇을 배웠습니까? 다시 시작해야한다면 어떻게해야합니까?

이 템플릿을 사용하려면 다음 텍스트를 복사 / 붙여 넣을 수 있습니다.

# Project Title
**Very Brief Description**

# Description
What is your project? What does it do? What problem does it solve?

# Design
Things to include in this section:

- Schematics and other design documentation. [Fritzing][8] is a good tool for drawing breadboard schematics like the one shown in the project logo above.
- Components used to build the project
- Pictures or video

# Conclusion
Final thoughts. What did you learn from doing this project? What would you do differently if you had to start over?

상금

두 가지 상이 있습니다! 우승자는 최대 투표 수 (공중 수를 세지 않음)를받은 제출물이며 스택 교환 티셔츠 *를받습니다! 준우승자를위한 무언가도있을 것입니다. 준우승은 이벤트 주최자의 재량에 따라 결정됩니다.

* 일부 제한이 적용될 수 있습니다. 국제 배송은 몇 주가 걸릴 수 있습니다.

프로젝트는 어디에 제출합니까?

이 게시물에 대한 답변으로 프로젝트를 게시하십시오.


"arduino"프로젝트 자격은 정확히 무엇입니까 ? 나는 많은 곳에서 optiboot를 사용하지만, arduino 툴체인이 사용하는 프로젝트이기 때문에 "arduino"로 볼 수 없습니다. arduino-form-factor에서 보드를 사용하지 않으면 서 arduino 텍스트 편집기를 사용하여 프로젝트를 컴파일하도록 명시 적으로 요구하지 않는 한 "arduino"와 "non-arduino"를 명확하게 나타내는 방법을 볼 수 없습니다. Arduino 편집기가 끔찍하기 때문에 모든 괜찮은 프로젝트를 실격시킬 것입니다. 좋은 코더는 오래 전에 사용을 중단했습니다.
코너 울프

@FakeName이 토론을 메타 포스트
sachleen

답변:


14

상태 저장 퀘스트 박스

열기 전에 몇 군데를 방문하게 하는 GPS 전원 박스

기술

questbox 와 유사 하지만 소량의 정보 상태를 EEPROM저장 하므로 열기 전에 두세 곳을 방문해야합니다.

디자인

필요한 하드웨어 :

  • 아두 이노 우노
  • 리버스 지오 캐시 버전 2 (또는 프로토 실드)
  • GlobalSat EM-406A GPS 모듈
  • 커넥터 헤더 및 케이블이있는 2 × 8 파란색 LCD
  • 하이텍 HS-55 서보 모터
  • 래치 용 4-40 푸시로드 및 클레 비스 (일부 버전은 대신 Z- 벤드로드를 제공함)
  • AA 배터리 홀더 2 개
  • 파란색 LED 및 4 핀 케이블이 포함 된 금속 푸시 버튼
  • 폴로 루 저전압 스위치
  • Pololu 5V 부스트 레귤레이터
  • EM-406A GPS 모듈 용 JST 커넥터
  • 디스플레이, 서보 및 푸시 버튼 커넥터 용 직선 및 직각 헤더 핀
  • 전류 제한 및 디스플레이 대비 조정을위한 2 개의 저항
  • 전력 평활을위한 2 개의 소형 커패시터
  • 디스플레이 대비 회로를위한 더 큰 커패시터

총 하드웨어 비용 : 137 $ + 배송

보충 재료 :

  • 좋은 상자
  • 에폭시 접착제, 조각, 도구를 덮는 목재

해시계 페이지 에서 조립 지침을 찾을 수 있습니다 (대부분의 재료를 구입할 수 있습니다)

나는 상태 저장 코드를 업로드하고 여기에 링크를 게시 할 것입니다. 불행히도 모든 하드웨어가 제 시간에 필요하지 않기 때문에 이것은 단지 아이디어입니다 :)

지금까지 작성된 코드 :

영감:오리지널 퀘스트 박스

결론

많은 구성 요소와 라이브러리를 모두 통합하는 방법을 배웠으므로 테스트하기 위해 약간 이동해야합니다. :)

개념을 약간 변경하면 예산을 상당히 줄일 수 있습니다.


11

결석 한 PC 사용자를위한 에너지 절약

이 장치는 책상이 어두워지고 PC 화면 보호기와 동기화 될 때 책상 조명을 켜거나 끕니다.

기술

이 프로젝트는 감광 센서, 릴레이 및 PC의 화면 보호기를 모니터링하는 스마트 코드의 조합에 지나지 않습니다. 황혼이되고 화면 보호기가 작동하지 않으면 책상 위의 조명이 켜집니다. 나중에 책상을 떠날 때 스크린 세이버가 활성화되어 책상 조명이 꺼집니다. 주간에 충분한 조명이 있으면 조명이 전혀 켜지지 않습니다. 해결 된 문제는 사무실을 떠났을 때 사무실의 조명이 켜져 서 에너지 낭비를 줄이는 것입니다.

디자인

마이크로 컨트롤러 / Arduino의 강력한 기능으로 유용한 프로젝트를 생성하는 데 약간의 추가 하드웨어 만 있으면됩니다. 하드웨어가 그 이상인이 프로젝트에서도 마찬가지입니다.

  • 아두 이노
  • 외부 구성 요소를 연결하는 두 개의 나사 실드
  • LDR 저항과 직렬 주변 광을 측정하기위한
  • 주 전원 표시등을 켜고 끄는 릴레이 카드
  • GND에서 RST까지의 10μF 커패시터는 보드가 재설정되거나 실수로 프로그래밍되는 것을 방지합니다.

개략도

이 회로 시뮬레이션CircuitLab을 사용하여 작성된 회로도

결론

Arduino와 USB 직렬 링크를 통해 PC를 인터페이스하는 방법과 PC에서 화면 보호기의 현재 상태를 읽는 방법을 배웠습니다. 다시 시작할 경우 단일 디지털 출력과 단일 아날로그 입력 만 있으면되므로 훨씬 작은 컨트롤러를 사용합니다. 프로젝트를 V-USB 기반으로 할 것 입니다. 그러나 Arduino는 빠르고 쉬운 개념 증명 (PoC)에 탁월합니다. (PoC는 이미 2 년 이상 책상에있었습니다.)


최종 보드 및 설정 사진을 보는 것이 좋습니다. 응답 시간은 어떻습니까? 즉시? 잠시 후?
sachleen

@sachleen 스크린 세이버를 폴링하는 내 PC의 데몬은 스크린 세이버가 꺼져있을 때 (PC에서 작업 중일 때) 30 초마다, 켜져있을 때 5 초마다 실행됩니다. 속도를 높일 수는 있지만 CPU 부하와 전력 사용에 영향을 미칩니다. Arduino가 재설정되거나 실수로 프로그래밍되는 것을 방지하기 위해 커패시터가 부착되어 있습니다.
jippie

@sachleen은 시간이 지남에 따라 황혼이 천천히 떨어지면서 30 초는 실제로 문제가되지 않습니다. 아무도 30 초에 걸쳐 어둠의 차이를 알아 차리지 못했습니다. 조명을 다시 켜면 마우스를 움직이거나 키보드를 두드리고 5 초 이내에 켜집니다. 어둡고 밝은 것으로 간주되는 부분에 약간의 히스테리시스가있어 활성화 될 정도로 어두워 질 때 조명이 너무 매초마다 켜지거나 꺼지는 것을 방지합니다.
jippie

10-15 초 동안 50 %로 어둡게 수정하여 완전히 어두워지지 않도록하고 약간의 "경고"를줍니다
Anonymous Penguin

@AnnonomusPerson 100-250VAC 입력 사양 인 SMPS의 240VAC 쪽을 전환하고 있습니다. 일어나지 않을 것입니다 보조 측을 바꾸고 싶지 않아서 두렵습니다. 좋은 생각이지만 어쩌면 똑똑한 작은 흰색 LED를 추가 할 수 있습니다.
jippie

8

나는 이런 종류의 규칙에 거의 맞지 않는다고 생각하지만 어쨌든 게시 할 것이라고 생각하는 것은 흥미 롭습니다.

데이터 수집을위한 고정밀 GPS 동기화 타임 스탬프 생성기.

이 프로젝트는 여러 개의 독립적 인 데이터 수집 시스템을 쉽게 동기화하는 데 사용하기에 다소 흥미로운 프로젝트입니다.

기본적으로 저는 연구 실험실에서 일하고 있으며, 여러 개의 독립적 인 데이터 수집 시스템을 갖춘 계측기를 보유하고 있는데,이 계측기는 물리적으로 최대 50 피트까지 분리 할 수 ​​있습니다. 각 시스템에서 샘플을 채취 한 시간을 서로 연관시킬 수 있어야하며, 샘플링 시간을 큰 정밀도로 해결하려는 경우 어려울 수 있습니다. USB 데이터 수집 시스템과 같은 것을 사용하면 USB 대기 시간만으로 수백 밀리 초의 알 수없는 대기 시간이 생길 수 있으며 이는 획득에 따라 다를 수 있습니다.

이전 솔루션은 24 비트 병렬 카운터로, 단순히 모든 곳에서 버스로 연결되어 막대한 배선 하네스가 필요했으며 엉덩이에 일종의 고통이있었습니다.

이 시스템은 GPS 위성의 원자 시계에 위상 및 주파수 고정 된 임의의 주파수 클록을 합성 할 수 있는 특수 타이밍 GPS 모듈 을 사용합니다 .

MCU는 GPS 데이터 메시지를 묶는 역할을 담당합니다 (GPS 데이터에 대한 기존 프로토콜 파서를 크게 확장하고 최적화해야했습니다). GPS는 독점적 인 이진 프로토콜을 사용하도록 구성되었으며 모두 내가 작성한 파서에 의해 구문 분석되었습니다.

이 프로젝트는 여러 가지 수정 작업을 거쳤습니다 (아래 그림 참조).

디자인

개정판! 여기에 이미지 설명을 입력하십시오
개정 1 : 처음에는 1 PPS 출력에서만 고주파수 클럭을 합성하기 위해 훨씬 저렴한 GPS에서 소프트웨어 dPLL을 사용하기를 원했기 때문에 결코 작동하지 않았습니다. 아마도 그것이 가능하게 만들 수도 있지만 시간 투자는 가치가 없었습니다. (그리고 나는 코더를 너무 엉망이다)

시차 프로펠러 MCU를 사용했습니다. 괜찮은 컴파일 언어의 부족은 중요한 문제였습니다.


여기에 이미지 설명을 입력하십시오
개정 2 : ATmega2560으로 이동했습니다. 첫 번째 개정판에서 상속받은 펑키 한 디자인 측면이 많았습니다. ATmega2560에 충분한 수의 IO가 있음에도 불구하고 주로 32 비트 출력에 시프트 레지스터를 계속 사용합니다.

Optiboot를 실행하고 실제로 표준 Arduino 툴체인을 사용하여 완전히 프로그래밍 된 첫 번째 보드는 자극을 받고 내 목적에 맞게 툴체인을 수정하기 시작했습니다.


여기에 이미지 설명을 입력하십시오
개정 3 : 또한 일했다. 이 보드는 필요한 USB 포트 수를 줄이기 위해이 보드에 내장 USB 허브가 내장되어 있기 때문입니다 (FTDI 인터페이스에는 1 개의 USB가 필요하며 GPS에는 USB 인터페이스도 있음). 불행히도 FTDI 장치가 제대로 작동했지만 GPS가 제대로 열거되지 않아 문제없이 다른 곳 에서이 허브를 사용했습니다. 기묘한.

적절한 USB 디버거가 없으므로 USB 허브를 완전히 삭제 한 다음 문제를 해결하려고했습니다. 어쨌든 GPS USB는 실제로 설정 밖에서 많이 사용 되지 않습니다 .


여기에 이미지 설명을 입력하십시오
개정 4 : 준결승 ATmega2560 버전. GPS 상태에 대한 LCD를 추가하고 LED 등으로 조정 또한 전원이 공급되지 않을 때 GPS 상태를 유지하기 위해 가능한 수퍼 커패시터의 발자국이 향상되었습니다.

이것이 마지막 Optiboot 버전입니다.

MStimeMSTOW타임 스탬프 출력시 출력되는 GPS 데이터 값의 이름 인 밀리 초 시간입니다. 32 비트 변수로 밀리 초마다 한 번씩 증가하고 매주 롤오버됩니다. GPS 표준에서 더 모호한 부분입니다.

ITOW는 다른 GPS 관련 값이며 1PPS 신호에 해당하는 값입니다. CPU를 원하는 속도로 업데이트 할 CPU 시간이 없기 때문에이 둘의 상관 관계가 LCD에 제대로 반영되지 않습니다. 이것은 실제로 Xmega 장치로 업그레이드 할 때 개선 된 주요 사항 중 하나였습니다.


여기에 이미지 설명을 입력하십시오
개정 5 : 완전한 아키텍처 전환. 이제 ATxmega128A1U 프로세서를 사용합니다. 더 이상 "아두 이노"가 아니라 xmega 프로세서 시리즈에서 다중 인터럽트 레벨을 갖는 기능으로 코드 구조를 상당히 개선 할 수있었습니다.

두 개의 보드 와이어는 실험을 통해 나 왔으며 보드는 그들없이 잘 작동했습니다.

기대 :

레브 6! 여기에 이미지 설명을 입력하십시오
다양한 LCD 크기를 사용할 수있는 기능, GPS 안테나 연결에서 ESD 보호 기능 향상 (문제가 되었음), 수퍼 커패시터 대신 GPS 시계를 유지하기 위해 CR2032 배터리를 사용할 수있는 기능을 추가하십시오.

또한 디버그 및 상태 LED 레이블링이 훨씬 향상되었습니다.

여기에 이미지 설명을 입력하십시오
그리고 보너스 냥캣!

여기에 이미지 설명을 입력하십시오

(이 보드는 현재 제작 준비 중입니다. 구입하면 실제 보드 사진을 추가하겠습니다.)


두 개의 ATmega2560 보드간에 장기간 테스트를 수행했으며 72 시간 동안 두 장치 간의 RMS 시간 오류는 ~ 20 uS였습니다. 이것은 완전히 독립적 인 두 개의 안테나도있었습니다. 내 디자인 목표는 1ms 미만 이었으므로 꽤 만족합니다.

전반적으로, 이것이 Arduino가 어떻게 "실제"제품 / 시스템의 초기 프로토 타이핑에 유용한 도구가 될 수 있는지 보여주는 좋은 일이라고 생각합니다. 최소한의 노력으로 초기 테스트 버전을 실행하는 데 사용하며 아이디어 가 효과가 있다고 확신 할 때 실제로 사용자 정의 목적에 따라 완전히 구현되도록 마이그레이션 작업을 시작합니다.


디자인 파일 :
https://fake-server.no-ip.org/svn/FPGAStuff/DAQ%20systems/
( "GPS 타임 스탬프"시리즈 디렉토리에 있음)
(참고 : 파일은 Altium Designer에서 가져온 것입니다. 독수리 파일 이 아닙니다 ).

소스 코드 :
https://fake-server.no-ip.org/svn/Programming/Code/AVR/
다시, "gpsTimeStamp"시리즈 디렉토리.

휴대 전화 사진이 유감입니다.


사진 수를 줄이겠습니까? 3-4는 아이디어를 이해하기에 충분해야합니다. 느린 연결에서로드하는 데 꽤 오랜 시간이 걸립니다.
asheeshr

7
@AsheeshR-나는 매우 동의하지 않습니다. 마지막 개정판에서 그림 중 하나를 삭제할 수는 있지만 시스템 설계가 진행되는 것은 매우 가치가 있다고 생각합니다.
코너 울프

1
실크 스크린으로 재미 있습니까?
TheDoctor

우, 3D 뷰 PCB. Aww, 그것은 Altium이고 꽤 비쌉니까? : $이 프로젝트들을 보거나 다른 사람들이하는 프로젝트를 보는 것은 정말 재미 있습니다.
Paul

7

소닉 레이 건

아이들의 두 프로젝트

나는 가정에서 교육받은 두 명의 아이들과 함께 일하고 있으며 우리는 arduino와 많은 재미를 가지고 있습니다. 첫 번째 프로젝트는 영화에서 볼 수 있듯이 LCD 카운트 다운 타이머와 고전적인 "빨간색 또는 파란색 와이어를 자르십니까?"라는 가짜 폭탄이었습니다. 유형 문제.

프로젝트 2는 toneMelody 예제와 작은 스피커를 보여주었습니다. 주파수를 최대 15kHz로 돌리면 십대들에게는 오히려 성가신다는 것을 빨리 알았습니다. 한 시간 후 그들은 컵, 화장실 롤 및 방향성 음파 총을 만드는 클립으로 만든 스위치로 디자인을 개선했습니다.

슬프게도 사진이 없습니다.

결론

아두 이노로 아이들을 방치하지 마십시오.


3
좀 더 자세히 설명해 주시겠습니까 (코드, 프리츠 등)?
익명 펭귄

7

(가짜) Arduino의 Linux

최근에 작은 복합 LCD 화면을 구입했는데 Arduino TVout 라이브러리를 사용하여 빠르게 게임을 시작했습니다. 다음은 무엇입니까? 리눅스!

기술

TV 화면과 TVout 라이브러리를 가지고 놀면서 TV에 미리 만들어진 터미널 핸들러가 있다는 것을 알게되었습니다. 곧 PS / 2 키보드에 연결된 TV 터미널로 사용하기 시작했습니다. 내가 사용한 PS / 2 라이브러리에 문제가 있었기 때문에 USB 키보드와 함께 Mega ADK의 USB 라이브러리를 사용하도록 전환했습니다. 훨씬 잘 작동했습니다. 이제 저장합니다.

내 SD 카드 쉴드는 메가와 호환되지 않으므로 보드 끝에 SPI에 약간 연결되어 있습니다. 파일을 나열하고 디스크 크기, 여유 공간 등을 찾는 등의 몇 가지 작업을 수행하기 위해 명령 처리를 작성했습니다. 전체 어셈블리가 완료되지는 않았지만 진행 한 결과에 만족합니다.

코드는 결국 Github로 옮겨지고 주석을 살펴보십시오.

디자인

그림 축소

clse up 화면

도전 과제

올바르게 캐스팅되지 않았기 때문에 입력 된 문자를 현재 명령을 저장하는 문자열에 연결하는 데 많은 문제가있었습니다. 일단 알아 낸 후에는 일부 키가 화면에 임의의 쓰레기를 인쇄하는 문제를 해결해야했습니다. 이것은 문자 정의 전에 메모리를 읽어서 발생했기 때문에 일부는이를 if정리했습니다.

결론

코드에 매우 만족합니다. 유틸리티를 몇 개 더 추가하면 Github에 추가하므로 주석을 확인하십시오. 전반적으로, 그것은 매우 재미있는 프로젝트였습니다. 그 과정에서 Stino를 사용하는 방법을 배웠습니다.


이거 흥미로운 데 나는 곧 당신의 코드를보고 싶습니다!
asheeshr


LCD 비용이 많이 듭니까?
익명 펭귄


@AnnonomusPerson 너무 부피가 커서 분해했습니다
TheDoctor

5

ShiftLCD

AVR 기반 Arduino 호환 보드는 8x1 후면에 최대 20x4 문자 LCD 화면에 장착됩니다.

기술

이 보드와 사용자 정의 라이브러리를 사용하여 LCD를보다 쉽게 ​​사용하도록 설계했습니다. 그들은 현재 사용하기가 쉽지만. 또한 6에서 3까지 사용되는 출력 핀 수를 줄입니다. 또한 디스플레이를 구동하는 것에 더 많은 시프트 레지스터를 추가하여 I / O를 확장하는 옵션이 있습니다. 사용 된 프로세서는 시프트 레지스터를 사용한 후 디지털 핀 1 (PWM) 및 4를 사용할 수 있고 아날로그 핀 2 (디지털 핀 4와 동일한 핀)를 사용할 수있는 ATTiny45 또는 ATTiny85입니다.

디자인

개략도 OSH Park 렌더링 납땜되지 않은 보드

도전 과제

내가 직면했던 하나의 예상치 못한 도전은 내가 시작했을 때 디지털 핀 0-2를 사용하여 시프트 레지스터를 실행하는 것이었고, 이들은 프로그래밍 핀 (MISO, MOSI, SCK)이기도했다. 따라서 장치를 다시 프로그래밍 할 때마다 LCD는 디스플레이를 재설정하기 위해 전원을 꺼야하는 횡설수설 메시지를 보냅니다. 시프트 레지스터 래치 핀을 프로그래밍 핀이 아닌 디지털 핀 3으로 이동하여이 문제를 해결했습니다. 이것을 해결하면 래치 핀을 움직일 때 PWM 사용을 가진 디지털 핀 1이 열리고 보드로 더 많은 일을 할 수 있기 때문에 또 다른 문제가 해결되었습니다.

결론

이것이 가장 멋진 제품이나 아이디어가 아닐 수도 있지만 여전히 사용하고 있습니다. "이 프로젝트를 통해 무엇을 배웠는가?"라는 질문에 직접 대답하면서 PCB 보드를 처음부터 끝까지 디자인하는 방법을 배웠습니다. 다르게 할 수 있다면 관통 구멍 대신 표면 실장 부품을 사용했을 것입니다. 다시 한 번 프로토 타입 일회성 보드입니다.


ATtiny를 어떻게 프로그램하셨습니까? 어떤 코드가 관련 되었습니까? IDE? (댓글을 달고 게시물을 편집하지 마십시오. )
익명 펭귄

@AnnonomusPerson 주석을 제거하기 전에 내가 한 일을 게시 한 사람처럼 보이므로 ATTiny를 프로그래밍하는 데 필요한 것들 (Arduino IDE 파일 및 프로그래밍 회로도)을 얻었습니다. highlowtech.org/?p=1695
Jesse Laning

왜 표면 실장을 사용합니까? 집에서 스루 홀을 납땜하는 것이 훨씬 쉽습니다? 나는 SMD가 생산 운영만을위한 것이라고 생각합니까, 아니면 다른 것이 있습니까?
Paul

5

버튼 푸싱 로봇.

버튼을 누르는 4 륜 8 파운드 리모콘 레이저 촬영 로봇.

기술

나는 지난 학년도 동안이 프로젝트를 만들었습니다. 나는 로봇 공학 수업에 있었고 경쟁을하기로 결정했습니다. 각 팀은 큰 버튼과 다른 버튼을 누르는 방법을 가진 로봇을 만들 것입니다. 연말에 우리는 3 개의 로봇이 서로의 버튼을 누르면서 최종 콘테스트를 개최 할 것입니다.

연말까지 내 로봇은 부분적으로 만 작동했습니다. 로봇의 모든 부분이 어느 시점에서 작동하고 있었지만 Arduino 튀김, 모터 드라이버 튀김, 끔찍한 코드 구성 및 팀에서 총 5 시간 이상 로봇 작업을 수행하는 유일한 사람 사이에 있습니다. 완전히 작동하지 못했습니다.

거의 1 년 동안 로봇을 만지지 않았으므로 다시 작동 시키려면 봇을 다시 연결하고 코드를 다시 작성해야한다는 것을 알고 있습니다. 나는 언젠가 그렇게하기로 결정할 수도 있지만, 지금은 덜 야심 찬 프로젝트에서 일할 것입니다.

디자인

전반적인 디자인

여기에 이미지 설명을 입력하십시오

정보 / 전기 흐름

+--------------------------+   +-------------------------------------------------+
|         Computer         |   |      Robot                                      |
|--------------------------|   |-------------------------------------------------|
|                          |   |                                                 |
| Keyboard +--> Processing |   |  Button +-------------+        Motor    Motor   |
|                          |   |                       |          ^       ^      |
|                    +     |   |                       |          |       |      |
|                    |     |   |  Batteries +-----+    |          +       +      |
|                    v     |   |                  |    |   +----> Motor Driver   |
|                          |   |                  v    v   +                     |
|               Bluetooth +-----> Bluetooth +--> Arduino Uno +--> Motor driver   |
|                          |   |                  +    +  +       +       +      |
+--------------------------+   |                  |    |  |       |       |      |
                               |                  |    |  |       v       v      |
                               |                  |    |  |    Motor     Motor   |
                               |                  |    |  |                      |
                               |                  |    |  |                      |
                               |                  |    |  +-----> Laser          |
                               |  +---------------|----|----+                    |
                               |  |       Arm     |    |    |                    |
                               |  |---------------|----|----|                    |
                               |  |     +---------+    v    |                    |
                               |  |     |      Motor Driver |                    |
                               |  |     v              +    |                    |
                               |  |  Servo             |    |                    |
                               |  |                    v    |                    |
                               |  |                  Motor  |                    |
                               |  +-------------------------+                    |
                               +-------------------------------------------------+

구성 요소

암호

코드를 잘 정리하지 않았으므로 이것이 올바른 코드 가기를 바랍니다.

더 많은 사진

여기에 이미지 설명을 입력하십시오 여기에 이미지 설명을 입력하십시오

로봇의 느리고, 팔이없고, 버튼이없고, 레이저가없고, 블루투스가없는 초기 버전의 끔찍한 비디오.

https://www.youtube.com/watch?v=Q7MvE7-Xb0E

결론

저는 전자 튀김에 정말 능숙합니다.

이것은 실제 기계 공장에서 처음 경험 한 것입니다. CNC 밀링 머신, 수동 밀링 머신, 선반 및 띠톱을 사용해야합니다. 이와 같은 프로젝트를 다시 시작하면 훨씬 더 나은 문서를 작성할 수 있으므로 1 년 후 내가 무슨 일을했는지 ​​알 수있었습니다.


1
잘 하셨어요! 경험만큼 가치있는 것은 없으며, 중요한 것은 이제 다음에 더 나은 업무를 수행하는 방법을 알고 있다는 것입니다.
jippie

5

Arduino 용 4 자리 LED 디스플레이

4 개의 7- 세그먼트 LED 숫자가있는 소형 보드, 3 핀으로 관리

기술

Arduino로 작업을 시작할 때 실험 한 다양한 센서에서 수집 한 값을 표시하는 방법을 원했지만 이러한 값을 SerialPC 로 출력하고 싶지 않았습니다 .

한 프로젝트에서 다른 프로젝트로 쉽게 재사용 할 수있는 작은 보드를 원했고 브레드 보드를 절약하고 싶었습니다.

이 보드는 작은 라이브러리와 함께 현재 4 자리 숫자를 표시 할 수 있으며 표시하는 동안 Arduino 전류를 공급하지 않습니다 (현재는 보드와 통신 할 때만 새 값이 표시됨).

카운터가있는 디스플레이 보드

디자인

MAX-7219 칩 을 재사용하여 LED 디스플레이를 구동 하기로 결정했기 때문에 설계가 다소 단순하다 (몇 가지를 가지고 있음).

이 칩 덕분에 회로도는 매우 간단했지만 사용 방법을 정확하게 이해하는 것이 중요했습니다. 다행히 데이터 시트 는 매우 명확했습니다.

원래 디자인은 브레드 보드에서 이루어졌으며 4 개의 단일 LED 7 세그먼트 숫자를 사용했습니다. . 그러나 내 취향에 너무 많은 배선이 필요했습니다 (4 그룹으로 세그먼트를 연결해야 함). 또한 7 세그먼트 LED 숫자를 사용한 첫 번째 실험 중에 하나를 튀겼습니다 .2 개의 접지 핀이 있었지만 둘 다 대신 GND에 하나만 연결했습니다 :-(

그런 다음 4x7 세그먼트 디스플레이 인 공통 음극을 선택 하기로 결정 했으며 세그먼트 양극은 이미 4 자리로 연결되었습니다. 단 4 + 8 핀입니다!

보드 회로도

테스트하는 동안 재사용하기로 결정한 MAX-7219로 작업 하는 데 유용한 Arduino 라이브러리를 찾았습니다 . 매우 간단한 API로 자체 라이브러리 를 만들었습니다 .

브레드 보드를 사용한 후에는 디자인을보다 영구적으로 만들어야했습니다. 손에 스트립 보드를 많이 가지고 있었기 때문에 나는 그것을 가기로 결정했습니다.

보드 디자인에 사용한 PC 용 손쉬운 Stripboard 디자이너 를 검색 했습니다.

첫 번째 스트립 보드 디자인은 공간 측면에서 최적화되지 않았으므로 구현하지 않기로 결정했습니다.

스트립 보드 디자인 # 1

그런 다음 비용과 크기를 최적화하기위한 디자인을 검토했습니다 (작은 50x75mm 스트립 보드 하나). 이전에 찾은 스트립 보드 디자이너를 사용하면 쉬웠습니다.

스트립 보드 디자인 # 2

보드가 준비되면 Arduino UNO 및 초음파 센서로 보드를 확인하기로 결정했습니다.

그림

내가 종종 이상하고 일관되지 않은 표시 값을 가지고 있다는 것을 제외하고는 효과가있는 것처럼 보였습니다. 조사 결과, 디스플레이 보드 에서 발생하는 소음, 센서를 방해 하는 소음 때문인 것으로 나타났습니다 . 난 그냥 필요센서의 전류 공급 핀 근처에 디커플링 캡 추가 완벽하게 작동했습니다 (디스플레이 보드에는 이미 MAX-7219 칩용 디커플링 캡이 있음에 유의하십시오).

부품 목록:

  • 1 x LN5461AS : 4 자리의 공통 음극 7 세그먼트 블록
  • 1 x MAX7219 : 다중 LED 드라이버 칩
  • 1 x IC 지원 (24 핀)
  • 1 x 22K 저항
  • 1 x 10uF 전해 캡
  • 1 x 100nF 캡
  • 1 x 수 핀 헤더 (5 핀)
  • 1 x 90x50mm 스트립 보드
  • 전선, 납땜 ...

결론

마지막 전자 실험 후 30 년이 지나서 Arduino와이 간단한 프로젝트를 통해 바이러스를 다시 얻을 수있었습니다.

  • 사용 된 구성 요소에 대한 데이터 시트 해석 (MAX7219 및 LED 디스플레이)
  • 스트립 보드 디자인을 사용하고 효과적으로 사용하는 방법 배우기
  • GND 또는 V +로 표시된 모든 핀을 연결해야합니다.
  • 회로를 테스트 할 때 이상한 것으로 보이는 이유가 무엇인지 이해하지 못하는 경우 : 검색하지 마십시오. 잡음이 없어야하고 디커플링 캡을 추가해야합니다.
  • 스케치뿐만 아니라 Arduino 라이브러리를 만드는 방법 배우기

오늘이 프로젝트를 다시 시작한다면 :

  • 스트립 보드 디자인을 더 최적화하려고합니다 (아마도 크기를 조금 더 줄일 수 있습니다)
  • Arduino에 연결된 전선이 보드 앞에서 더 튀어 나오도록 보드의 직선 핀 헤더를 직각 헤더로 교체하십시오.

5

무선 주파수 (RF) 원격 제어 기능이있는 디지털 벽시계

R / F 리모컨이 장착 된 대형 (40x30cm / 16x12 ") 7 세그먼트 디스플레이 월 시계.

여기에 이미지 설명을 입력하십시오

기술

이 프로젝트는 R / F 리모컨 이 장착 된 대형 (40x30cm / 16x12 ") 7 세그먼트 디스플레이 디지털 벽시계 를 갖추고 있습니다. 다음과 같은 기능이 있습니다.

  • 현재 시간과 날짜 (시, 분, 초, 일, 월, 년)를 두 가지 형식 (시간 또는 날짜를 큰 숫자로 표시)으로 표시합니다.
  • 현재 온도를 ° C로 표시합니다.
  • 사용자 정의 카운트 다운이있어 0에 도달하면 (성가신) 알람이 울립니다.
  • 모든 기능은 RF 리모컨으로 원격 제어됩니다.
  • 기능을 제어하기위한 작은 커서 키패드가 있습니다 (리모콘을 사용할 수없는 경우).
  • 각 디스플레이 라인에 독립적 인 밝기 제어.
  • 코인 셀 배터리로 구동되는 실시간 클록 IC 덕분에 꺼져있을 때에도 현재 시간을 정확하게 유지합니다.

디자인

이 프로젝트의 주요 측면은 다음과 같습니다.

  • Arduino 및 AVR ATmega328 마이크로 컨트롤러를 기반으로합니다.
  • 코인 셀 배터리로 구동되는 DR1307 RTC 덕분에 꺼져있을 때에도 현재 시간을 유지합니다.
  • 숫자는 다중화되지 않습니다. 대신, 각 숫자에는 전용 8 비트 직렬 시프트 레지스터 IC (74HC595)가있어 다른 숫자에 표시되는 내용과 MCU가 수행하는 내용과 독립적으로 선택된 세그먼트를 유지합니다.
  • 세그먼트는 MCU 또는 시프트 레지스터의 소비 전력을 초과하는 전류 소비로 인해 Darlington 어레이에 의해 구동됩니다.
  • 클럭은 컨트롤러 보드의 키패드와 RF 리모콘으로 제어됩니다. 무선 통신은 한 쌍의 저렴한 434MHz 무선 수신기와 송신기에 의해 수행됩니다.
  • 이 프로젝트는 단일 컨트롤러가 12 자리의 단일 숫자를 관리 할 수있는 모듈 식 설계를 갖추고 있습니다. 또한 컨트롤러는 무제한 자릿수를위한 확장 가능한 모듈을 수용합니다 (최대 자릿수는 시프트 레지스터의 데이지 체인 및 클럭 신호의 감쇠로 인해 타이밍 지연에 의해 제한됨).
  • 이 디자인은 기성품 인 7 세그먼트 디스플레이 숫자 또는 LED로 만든 사용자 정의 숫자를 지원합니다.

아래는 컨트롤러와 7- 세그먼트 보드 중 하나의 회로도입니다.

여기에 이미지 설명을 입력하십시오 여기에 이미지 설명을 입력하십시오

다음은 내가 설계, 에칭 및 조립 한 보드와 리모콘의 사진입니다.

여기에 이미지 설명을 입력하십시오 여기에 이미지 설명을 입력하십시오 여기에 이미지 설명을 입력하십시오

그리고 마지막으로, 다른 버전의 시계 사진이 있습니다. 이 제품에서는 직사각형 LED와 개별 부품을 사용하여 7 세그먼트 디스플레이를 직접 만들고 있습니다.

여기에 이미지 설명을 입력하십시오

결론

이 프로젝트는이 단계에 도달하는 데 많은 시간과 노력과 학습이 필요했지만 (배운 것처럼 결코 끝나지 않았습니다) 정말 재미있었습니다. 내가 배운 몇 가지 :

  1. 컨트롤러에 GPIO 핀을 할당하기 전에 프로젝트에서 사용할 모든 라이브러리 를 연구 하여 잠재적 인 충돌을 피 하십시오 . VirtualWire 타이머와 관련된 밝기 제어에 동일한 PWM 핀을 사용하는 것은 불행한 일이므로 밝기와 RF가 동시에 작동하도록 보드를 패치해야했습니다.

  2. 압착 KK 몰 렉스 및 modu 커넥터는 많은 시간이 걸립니다 !!

  3. 레이저 컷 아크릴 조각은 미래입니다. 당신이 서투른 경우에도 그들은 장치에 많은 품질을 추가합니다.


PCB를 어떻게 만들었습니까 (에칭과 드릴링)?
sachleen

1
@sachleen 다림질시 토너 전사 방법을 사용합니다. 보드 디자인을 레이저 프린터의 잉크젯 인화지에 인쇄 한 다음 보드에 다림질 한 다음 FeCl로 보드를 에칭합니다. 올바른 용지 및 프린터 설정을 찾는 데 시간이 걸립니다. 드릴링 에는 dremel 드릴 프레스 를 사용하지만 페놀 보드와 고속 드릴 비트 만 사용합니다. 유리 섬유 보드는 드릴 비트에서 훨씬 단단하므로 일반적으로 더 비싸고 부서지기 쉬운 초경 드릴 비트가 필요합니다.
Ricardo

그 LED는 어디서 구했습니까? 나는 그 와 똑같은 것을 가지고 있습니다 !
모자와 사람

1
@TheGuywithTheHat 녹색 직사각형 것? 이것들은 브라질에서 아주 흔합니다. 온라인 전자 부품 상점 중 한 곳에서 구입했습니다. : 여기에 몇 가지 링크입니다 Digi-Key에에서 , 이베이는 . 여기 내가 그들을 얻었습니다 .
Ricardo

5

TV 안테나 회 전자

IR 원격 제어 안테나 회전

소파에서 TV 안테나의 방향을 조절할 수 없습니까? 그리고 그렇게해도 때때로 안테나에 가까워지면 수신이 변경됩니다. 소파에서 안테나를 조정할 수 있다면 좋을 것입니다. TV 리모컨 사용.

구성 요소

Arduino Uno, IR 수신기, 드라이버 보드가있는 스테퍼 모터, 1 "ID 베어링, 스위퍼 걸레 손잡이, 플라스틱 상자,

TV 뒤 Arduino (IR 수신기 포함) 상자와 베어링의 클로즈업 스위퍼 핸들 이 두 버튼은 어쨌든 TV에서 아무것도하지 않습니다

기술

오래된 Swiffer 걸레 손잡이를 안테나 포스트로 사용하십시오. 내가 좋아하는 온라인 상점에서 1 "ID 베어링을 얻었습니다. 걸레 손잡이가 꽉 쥐고 멈 춥니 다. 걸레 손잡이가 들어갈 수있을만큼 큰 플라스틱 상자에 구멍을 뚫었습니다. 그러나 베어링에는 맞지 않았습니다. 28BYJ-48 스테퍼 모터의 샤프트에 맞게 걸레 손잡이 끝에 구멍을 뚫고 그림과 같이 상자에 고정 장치를 걸었습니다. 걸레 손잡이는 실제로 베어링 위에 놓여 있으며 베어링은 플라스틱 상자 상단에 슈퍼 접착되어 있습니다. .

stepper.h 라이브러리를 사용하여 Uno에서 모터를 회전시킵니다.

사용하지 않은 DVD 플레이어를 분리하여 IR 수신기를 회수했습니다. 리모컨이있는 가전 제품을 분해하여 IR 수신기를 사용할 수 있습니다. IR 수신기는 IRremote.h 라이브러리를 사용합니다. 직렬 모니터를 사용하여 안테나 모터 작동에 사용하려는 TV 리모컨의 두 버튼에 해당하는 16 진 코드를 인쇄했습니다. 하나는 왼쪽으로 회전하고 다른 하나는 오른쪽으로 회전합니다.

에너지를 절약하려면 small_stepper.motorOff () 함수를 사용하여 각 움직임 후 코일을 끄십시오.

결론

이것은 아내에게도 유용한 재미있는 프로젝트였습니다. 움직임에 가속 / 감속을 구현하지 않았는데, 특히 안테나에 회전 관성이 더 큰 경우에 좋을 수 있습니다.

편집 : 사진이 옆으로가는 것에 대해 죄송합니다! 내 컴퓨터의 오른쪽에 있는데 왜 온라인에 있는지는 모르겠습니다.


5

노크 노크 램프

책상이 두드리면 켜지거나 꺼지는 램프입니다. 현재 알파 단계에서 여전히 프로토 타입을 작성하고 있지만, 이것이 가장 유용한 Arduino 프로젝트라고 생각합니다. 이전에 기록 된 노크 노크 농담의 코니 농담 발생기 포함.참고 : 규칙에서 이길 수 없다는 것을 알고 있지만 입력에 관한 규칙은 없습니다 ... 프로젝트도 과시 할 수 있습니다.

기술

지금까지 나는 거의 대부분을 설명했습니다. 노크하면 표시등이 켜지거나 꺼집니다. 현재 브레드 보드에 있습니다. 나는 압전 요소를 사용하고 있습니다진동으로 노크를 감지하기 위해 를 있습니다. 병렬로 Arduino Uno SMD를 보호하기 위해 1 메가 옴 저항이 있습니다.

작은 토글 스위치를 검색하는 동안 책상에서 램프를 거의 두드리고 (haha punny)이 디자인을 생각했습니다. 나는 정확히 ... 잘 교묘 하지 않다 . 책상을 두드리고 빛을 비추는 것이 좋습니다. 또한 전원 스위치 테일 SSR (솔리드 스테이트 릴레이 : 노이즈 없음)을 사용하여 Arduino의 핀 2 개로 제어합니다.

디자인

사진 웹캠이 모니터 위에 걸려있는 상태에서 찍은 이미지 ... eek!

프리츠 다이어그램

프로젝트를 빌드하는 데 사용되는 구성 요소 :

  • 피에조 요소 ($ 3.00 USD)
  • 메가 옴 저항 (5pk 당 $ 0.30 USD)
  • Arduino Uno SMD (사용중인)
  • 전원 스위치 테일 SSR (배와 함께 ~ $ 25.00 USD이지만 비용이 들지 않음)
  • 브레드 보드 및 점퍼 / 추가 와이어 (~ $ 5.00 USD이지만 비용이 들지 않음)

나에게 비용 : $ 3.30 USD + $ 0.02 USD (세금) == 단지 $ 3.32!

결론

전반적으로 간단한 프로젝트이지만 실제로 유용합니다. Arduino 프로젝트와의 싸움입니다. 실제로 사용할 무언가를 만들 수 있습니까? LED를 깜박 인다고해서 정확히 도움이되지는 않습니다. 재밌지 만 그게 전부 야

내가 직면했던 가장 큰 문제는 여전히 강한 신호를 얻지 못하는 것입니다. 전기 신호에 대해 많은 것을 배웠습니다. 펄스의 "피크"를 찾는 방법을 알아 냈고 임의의 간격으로 핀을 읽고 높은 전압을 그리워하지 않았습니다. 더 민감한 압전 요소를 얻으려고합니다. 큰 것이 도움이 될 것입니다. 전압을 많이 제한하지 않고 Arduino를 보호하기 위해 회로를 수정하려고합니다. 이 상황에서는 일종의 퓨즈가 도움이 될 것입니다. 또한 저항 값으로 놀고 있습니다. 이것에 대한 범위를 갖는 것이 많은 도움이 될 것입니다.

회로를 완성한 후에는 ATtiny를 사용하여 PCB에 회로를 설치하고 일부 키트를 개발할 것입니다. 프로세스에서 보드를 위험에 빠뜨리지 않으면 서 요소를보다 민감하게 만드는 방법에 대한 연구 결과를 발표하려고합니다.

상태 업데이트 : 최근에 정말 바빴습니다. 칩을 보호하면서 신호의 희석을 막기 위해 메가 옴 저항을 제거하기 위해 일주일 또는 2 주 안에 제너 다이오드 (4.3V)를 주문할 것입니다. 센서를보다 민감하게 만들기 위해 필요한 경우 (제너와 함께) 간단한 전압 증폭기를 만들 수 있습니다.


1
차동 및 이득 ADC를 사용하여 무언가로 옮기면 피에조에서 더 많은 감도를 얻을 수 있습니다. 저항 대신 TVS를 사용할 수도 있습니다.
Ignacio Vazquez-Abrams

감지 또는 인터럽트에 ADC를 사용하고 있습니까? 전압 피크가 얼마나 큰지 알고 싶습니까?
jippie

감지를위한 @jipie ADC, 나는 매우 효율적인 코드를 가지고 있습니다 : 루프하고 250ms마다 피크를 찾습니다. 지연이 없습니다. 피크의 경우 IIRC는 약 14/1024입니다 (지금은 너무 게으르다). AREF 핀도 살펴 봐야하지만 떨어 뜨린 경우 문제가있을 수 있으며 ~ 9V를 만들 수 있습니다.
익명 펭귄

이것을 입력 버퍼로 사용해보십시오 . 트랜지스터는 전류 증폭 반파 정류기 / 피크 ​​검출기로 작동합니다. ADC로 단일 피크를 감지 할 필요가 없습니다. 트랜지스터 / 콘덴서가이를 해결해줍니다. 구성된대로 출력 전압은 2.2V DC 바이어스를 갖지만 저항 분배기를 변경하여 원하는 것으로 변경할 수 있습니다. 이렇게하면 1V1 또는 2V56 밴드 갭 참조를 선택하여 입력을 더욱 민감하게 만들 수 있습니다. 10M 저항은 커패시터가 약 1 초 이상 방전되도록하며 실제로 DMM이었습니다.
jippie

4

MySensors

-저비용 무선 센서를 만들어 세계에 연결하는 방법에 대해 알아보십시오.

http://www.mysensors.org

우리는 전화를 "당신의 사물의 인터넷"

기술

Arduino 플랫폼과 소형 무선 트랜시버를 결합하여 재미 있고 유연한 저비용 무선 센서 세계로 만들었습니다.

센서 통신에 대한 모든 세부 사항이 편리한 소프트웨어 라이브러리에 패키지되어 있으므로 걱정할 필요가 없습니다.

1, 2, 3만큼 쉽습니다. 아두 이노 + NRF24L01 +

  1. 부품을 연결하십시오. 제공된 예제를 다운로드하십시오. 3. 세계를 측정하고 통제하기 시작하십시오!

현장의 Arduino Library를 사용하여 센서 네트워크가 자동으로 형성되는 방법에 대해 자세히 알아보십시오. 기본적으로 스타 네트워크를 형성하며 수백 미터에이를 수 있습니다.

센서 네트워크

가운데에는 센서에서 정보를 수집하는 Arduion 또는 Raspberry 게이트웨이가 있습니다. 라즈베리 컨트롤러

아두 이노 게이트웨이

설계 및 회로도

여기 내 집 밖의 정원 조명을 제어하기 위해 만든 프로토 타입 모션 센서 중 하나가 있습니다. 모션이 감지되면 HA 상태로 모션 상태가 전송되고 (z- 파를 통해) 라이트가 켜집니다. 이미지가 아닌 조명 센서는 밤에만 조명을 켜야합니다.
여기에 이미지 설명을 입력하십시오

여기에 모든 빌드 지침이 있습니다 : http://www.mysensors.org/build/

다른 무선 센서 및 액츄에이터에 대한 따라하기 쉬운 빌드 지침도 있습니다. 여기 몇 가지 예가 있어요.

거리 센서, 모션 센서, 릴레이 액츄에이터, 습도, 빛, 압력, 비, 온도, ...

결론

이 프로젝트는 아직 시작 단계에 있으며 점점 더 많은 홈 오토메이션 컨트롤러 목록을위한 플러그인을 제공 할 수 있도록 노력하겠습니다. 우리 목록의 첫 번째 것은 센서 데이터를위한 무료 클라우드 스토리지를 제공하는 DIY 컨트롤러를 제공하는 것입니다.

안녕하세요

@ mysensors.org에서 See겠습니다.

/ Henrik Ekblad (센서 간 통신에 사용되는 오픈 소스 Arduino 라이브러리 제작자)

  • 업데이트 27/3. 예제를 좀 더 구체적으로 만들고 오픈 소스 프로젝트와의 제휴 관계를 추가했습니다.

4
Arduino.SE에 오신 것을 환영합니다! 귀하의 웹 사이트가 쇼케이스의 기준에 맞지 않을까 걱정됩니다. 우리는 Arduino의 실제 적용을 보여주는 특정 프로젝트를 찾고 있습니다 (여기의 다른 예에서 볼 수 있음). 아마도 여러분이 구축 한 센서 프로젝트의 예를 제공 할 수 있습니까?
피터 블룸필드

좋아, 어쩌면 나는 요점을 놓치고있다.). 여기서 "특정 프로젝트"는 Arduino를 사용하여 자체 치유 무선 센서 네트워크를 생성한다는 것입니다. 이를 보관하기 위해 NRF24L01 + 트랜시버 용 오픈 소스 Arduino 라이브러리를 만들었습니다.
hek

4
이것은 프로젝트보다 광고처럼 들립니다. 톤을 변경하여 단일 응용 프로그램에 좀 더 구체적으로 지정할 수 있습니다. 나는 이것이 당신이 다운 투표를 한 이유라고 생각합니다.
Cybergibbons

Ard.SE에 오신 것을 환영합니다! 귀하의 프로필 웹 사이트를 기반으로 귀하는 위에서 홍보중인 사이트에서 일하거나 소유하고 있습니다. 그것은 당신이를 공개 SE의 정책 대답. 포함하도록 수정하십시오. 또한 이것을 사용하는 예를 추가 할 수 있습니까?
Anonymous Penguin

나는 자유 시간에 지난 6 개월 동안이 (오픈 소스) MySensors 라이브러리를 개발해 왔습니다. 다른 사람들이 라이브러리를 올바르게 사용하도록 돕기 위해 우리는 (많은 사람들이 지난 몇 달 동안 프로젝트에 참여했습니다) 불과 3 일 전에 빌드 명령 페이지를 시작했습니다. 이 "프로젝트 쇼케이스"에서 피드백을 얻는 것이 좋은 Arduino 프로젝트라고 생각했습니다. 나는 어떤 식 으로든 프로젝트 참여를 숨기려고하지 않았다고 생각하며 설명이 광고로 인식되면 유감입니다. 우리는이 프로젝트에 매우 만족합니다!
hek

4

시리얼 박스

상자에 담긴 휴대용 시리얼 모니터

기술

때로는 장치 (Arduino 또는 기타)가 직렬을 통해 일부 디버그 정보를 출력하는 것이 유용합니다. 적절한 직렬 입력을 갖춘 컴퓨터를 가지고 있다면 좋습니다. 그러나 여러 가지 이유로 항상 그런 것은 아닙니다.

이 프로젝트는 휴대용 Arduino 구동 직렬 모니터를 생성하여 현장의 다른 장치에 연결할 수있는 문제를 해결하려는 시도입니다.

기본적으로 단순히 텍스트를 스크롤 백 형식으로 표시합니다. 즉, 텍스트가 맨 아랫 줄에 나타나고 더 많이 도착하면 공간을 만들기 위해 모든 것이 위로 스크롤됩니다. 즉, 모든 종류의 일반 장치에서 매우 깔끔하게 작동해야합니다. 그러나 이스케이프 시퀀스를 사용하여 디스플레이를보다 정확하게 제어 할 수 있으므로 장치의 기능을 활용하도록 장치를 특별히 프로그래밍 할 수도 있습니다.

디자인

디자인은 4 개의 영숫자 LCD 디스플레이 (각각 16x2 문자)로 구성되며 다음과 같이 상자에 정렬됩니다.

시리얼 박스 디자인의 3D 모형

디스플레이는 Epson EAX16027AR이며 불행히도 표준 Hitachi HD44780 드라이버와 호환되지 않습니다. 따라서 나는 그들을 위해 내 자신의 라이브러리 를 작성해야했다.

나는 단지 그것들이 단지 주위에 놓여 있고 그들과 흥미로운 것을하기를 원했기 때문에 (예를 들어 하나의 큰 디스플레이 대신)이 디스플레이를 사용하기로 결정했습니다. 또한 일부 응용 프로그램에 대해 각 디스플레이를 독립적으로 제어 할 수 있으면 매우 편리하다고 생각했습니다 (예 : 각기 다른 정보 표시).

회로 설계 측면에서, 디스플레이는 병렬로 연결되며, 칩 선택 핀은 데이터 / 명령을 필요에 따라 각 명령에 전달하는 데 사용됩니다.

ATMega328은 TTL 레벨 라인 (유사한 MCU의 TX에 직접 연결하기위한) 또는 RS232 9 핀 D- 서브 소켓 ( 다양한 다른 시스템). 이 장치에는 대비 다이얼, 디스플레이를 지우는 버튼 및 자체 테스트 모드를 시작하는 버튼도 있습니다. 앞으로는 사용자가 스크롤 백 기록을 이동할 수있는 버튼을 추가하고 싶습니다.

아래는 매우 예비 회로 레이아웃입니다 (Fritzing이 어떤 이유로 든 멋지게 연주하는 데 많은 어려움이있었습니다!). 여기에는 녹색으로 표시되는 LCD 데이터 라인을 구동하기위한 8 비트 SIPO 시프트 레지스터가 포함되어 있습니다. 칩 선택 라인이 주황색으로 표시됩니다.

예비 회로 레이아웃

현재이 프로젝트는 여전히 Uno (복제) 보드를 기반으로 작업중인 프로토 타입 단계에 있습니다. 아래, 당신은 내 컴퓨터에서 시리얼을 통해 전달 된 텍스트를 표시하는 실제 사진을 볼 수 있습니다.

작동중인 프로토 타입

소스 코드

아래 링크에서 GitHub에서 LCD 라이브러리를 사용할 수 있도록하고 있습니다. 개발 초기 단계에 있습니다. 가까운 장래에, 나는 핵심 LiquidCrystal 라이브러리와 훨씬 더 유사하게 만들어서 둘 사이에서 쉽게 전환 할 수 있도록 할 계획입니다.

"examples"폴더에서 Serial Box 프로토 타입의 기본 코드를 찾을 수 있습니다.

결론

프로젝트가 아주 잘 진행되고 있다고 생각하며 프로토 타입이 작동하게되어 매우 기뻤습니다. 나의 주요 과제는 모든 것을 상자에 담는 것입니다. 나는 이미 디스플레이에 적합한 구멍을 자르기 시작했지만 그런 종류의 경험이 많지 않아 모든 것을 정렬하는 것이 까다로워지고 있습니다.

나는 결국 거기에 갈 것이다. 내가 끝날 때까지는 아주 예쁘지 않을 수도 있습니다! :)


3

난방 컨트롤러

당신은 그것이 어떻게되는지 알고 있습니다-당신은 특정 시간에 난방이 켜지고 며칠 동안 늦게까지 일하고 몇 시간 동안 완전히 지루 했습니까, 아니면 며칠 동안 떠나서 끄는 것을 잊었습니까? 아니면 집에 일찍 와서 집이 추워지는 드문 경우입니까? 나는 이것을 해결하는 간단한 방법은 문자 메시지 / SMS로 난방을 켜거나 끌 수있는 장치를 만드는 것이라고 결정했습니다. 제공 할 수있는 유연성을 잃지 않도록 기존 제어 시스템에 추가 될 수 있습니다.

이 프로젝트는 Arduino Uno 클론, Seeedstudio GSM 쉴드, DHT22 온도 센서 및 25 amp SSR 등 몇 가지 주요 부분으로 구성됩니다.

작동 방식 :

기존 가열 제어가 '끄기'로 설정되고 새 제어기가 연결되어 재정의됩니다. Uno는 On, Off 및 Query의 세 가지 메시지에 응답하도록 프로그래밍되어 있습니다. 후자의 경우, 장치는 DHT22를 읽고 현재 온도와 장치의 상태 (켜짐 또는 꺼짐)로 발신자에게 응답합니다. 명령이 On 또는 Off이면 수행 된 작업에 대한 확인으로 응답합니다. 메시지가 처리되면 삭제됩니다. 특정 메시지 구조를 준수하지 않는 메시지는 SIM 카드 메모리에 남아 있으며 원하는 경우 나중에 검사 할 수 있습니다.

장치의 전원은 5V 3A 스위치 모드 전원 공급 장치에 의해 공급됩니다. Arduino의 전원 핀이 단순히 보드의 내부 5v 버스를 노출시키기 때문에 이들을 통해 앙상블에 전원을 공급하고 Arduino에서 전원을 끌어 오도록 쉴드를 구성하기로 결정했습니다.

이 장치에는 3 개의 상태 LED가 있습니다. 녹색은 전원이 있음을 나타내며 파란색은 GSM 보드가 '실제'임을 나타내며 빨간색은 가열 상태를 나타냅니다. 이들은 Arduino 및 쉴드에 제공된 상태 LED에 추가됩니다. 또한 100nF 커패시터로 디 바운스를 처리하여 가열을 수동으로 제어 할 수있는 푸시 버튼 스위치가 있습니다.

다음 것:

대부분의 코드는 쉴드의 동작을 수행하기에 충분한 시간을주기 위해 좋은 오래된 지연 ()에 의존합니다. 코드를 개선하여 할당 된 시간 내에 지시받은 것을 수행했다고 가정하지 않고 방패로부터 확인을 기다릴 계획입니다! 또한 고정 된 간격으로 파란색 LED를 끄고 AT 명령을 방패로 보낸 다음 확인 표시에서 LED를 다시 켜십시오. 쉴드는 소프트웨어 제어하에 있으므로 응답하지 않으면 껐다가 다시 켜십시오.

전체 앙상블은 적절한 인클로저에 장착하고 기존 컨트롤러에 인접하게 장착해야합니다. 오버라이드를 처리하기 위해 별도의 스위치와 빨간색 LED 대신 사용할 내부 조명 푸시 버튼 스위치가 있습니다.

장기적으로 RTC, 20 x 4 LCD 및 추가 푸시 버튼을 추가하여 장치를 프로그래밍하고 시간 스위치로 작동 할 계획입니다.

프로토 타입이 이미 시작되었습니다!

결론.

추운 겨울 휴식 일에 깨어나고, 문자 메시지 / SMS를 보내 난방을 켜고, 한 시간 동안 굴러서 다시 잠을 자는데 약간 퇴폐적 인 일이 있습니다! 그리고 당신이 밤에 그것을 끄지 않았다는 것을 알게되면 침대의 안락함에서 그렇게 할 수 있습니다!

컨트롤러 이미지 1 컨트롤러 이미지 2

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.