12월, 2018의 게시물 표시

적외선 센서를 이용한 7segment 동작 구현

이미지
적외선 센서를 통해 입력이 감지되면 led는 이진수로 표현하여 불을 밝혀 나타내고 옆에는 7segment를 연결하여 10진수로 표현하였다. Atmega는 이미 업로드 되어 있는걸 사용하였다.

PLC a접점 버튼 연결과 램프 on/off

이미지
각 버튼이 눌러져 있을때 각각 연결된 램프의 불이 들어오게 해 두었다.

PLC와 아두이노 그리고 온도 센서를 이용하여 램프 점등

이미지
우선은 전에 만들어둔 ArduinoUno(Atmega328P), LM35(온도센서)를 이용해 LCD에 Text 나타내기 와 PCB 실습_220V를 5V로 전압 감하 를 이용하여 만들었다. 2가지 방식으로 작동하도록 만들었다. 1) 자동 : 온도 센서의 일정한 값에 따라 Lamp의 불이 들어오게 만들었다. 2) 수동 : 수동 모드로 전환하는 스위치를 눌러 자동 동작은 정지하고 수동으로 스위치 조작하며 one button 방식으로 설정하였다. 글로파에 올릴 프로그램은 GMWIN에서 작성하였다. 작성 후 접속+쓰기+모드전환+모니터시작 으로 연결과 업로드를 동시에 실행하였다. 아두이노의 전원 공급은 5V로 전압 감하된 전원을 사용한다. ➢Atmel7.0을 이용하여 아두이노에 업로드한 코드 /*  * Atmega328p_PLC_1213.c  *  * Created: 2018-12-13 오후 2:22:24  * Author : USER  */ #define F_CPU 16000000UL #include <avr/io.h> #include <avr/interrupt.h> #include <stdio.h> #include    <util/delay.h> #include "lcd.h" // LCD.h 시작 // LCD.h 끝 #define MAX_LCD_STRING 0x40 #define SINGLE_MODE 0 #define FREE_MODE 1 #define PRESSED 0 #define RELEASED 1 volatile int  adc_rq=0, adc_result=0; volatile unsigned  int  mode = SINGLE_MODE; //volatile float V=0; ISR(ADC_vect) { adc_result = ADC; adc_rq =

디바이스 드라이버 01

이미지
VM Ware의 우분투에서 작업 1) nano로 hello_module.c 작성 2) nano로 Makefile 생성 3) make 완료후 ko파일 생성됨 4) 라즈베라 파이로 이동하여 $sudo mknod /dev/memory c 255 0 $sudo chmod 777 /dev/memory $sudo insmod memory.ko 실행 5) TestApp.c 파일 생성 6) make 실행 7) 생성된 TestApp 을 실행 $./TestApp 작동하는것을 확인

PLC46번_플리커 후 입력 우선

이미지

49회 기출문제

이미지
p1을 두번째 누르면 p11이 점등되어 3초 후 소등되고 p12는 p11이 소등된 후 1초 뒤 점등되어 3초 후 소등되며 p13은 p12이 소등된 후 1초 뒤 점등되어 3초 후 소등되며 1초뒤 p11이 다시 점등된다. p2를 누를 때까지 위 사항을 계속 반복 동작하며, p2를 누르면 동작 중이던 p11,p12,p13이 소등된다. plc 전원이 투입되면 p10은 점등(2초)과 소등(1초)을 반복 동작한다.

PLC_45번_동시점등 순차소등

이미지

PLC_44번_타이머 응용 회로

이미지

PLC_43번_ 순차점등 순차소등

이미지
2개의 타이머 사용 1개의 타이머 사용

Object-Detection 라즈베리 파이

이미지
Tensorflow Object Detection API(Tensorflow를 이용하여 이미지를 인식할 수 있도록 개발된 모델) ➢https://github.com/EdjeElectronics/TensorFlow-Object-Detection-on-the-Raspberry-Pi를 참조하였다. 1~3까지는 이미 설치 완료하여 tensorflow를 이용하여 이미지를 학습시키고 하나의 이미지를 주었을때 정확도를 나타내는 실습을 해 보았기에 넘어가고 4번 부터 실행 하였다. make를 하여 컴파일 실행시 시간이 오래걸리기에 다른 작업을 하거나 cross compile하여 시간을 단축시킨다.

라즈베리 파이 pin 쓰기

이미지
우선 gpio를 설치하기 전에 업데이트와 업그레이드를 먼저 해준다. ➤Git을 이용해 git-core설치 ➤WiringPi 다운로드 ➤디렉토리 이동 ➤설치 ➤설치 완료시

ACM 호텔

이미지
ACM 호텔 시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율 1 초 256 MB 16427 5940 5051 36.485% 문제 ACM 호텔 매니저 지우는 손님이 도착하는 대로 빈 방을 배정하고 있다. 고객 설문조사에 따르면 손님들은 호텔 정문으로부터 걸어서 가장 짧은 거리에 있는 방을 선호한다고 한다. 여러분은 지우를 도와 줄 프로그램을 작성하고자 한다. 즉 설문조사 결과 대로 호텔 정문으로부터 걷는 거리가 가장 짧도록 방을 배정하는 프로그램을 작성하고자 한다. 문제를 단순화하기 위해서 호텔은 직사각형 모양이라고 가정하자. 각 층에 W 개의 방이 있는 H 층 건물이라고 가정하자 (1 ≤ H, W ≤ 99). 그리고 엘리베이터는 가장 왼쪽에 있다고 가정하자(그림 1 참고). 이런 형태의 호텔을 H × W 형태 호텔이라고 부른다. 호텔 정문은 일층 엘리베이터 바로 앞에 있는데, 정문에서 엘리베이터까지의 거리는 무시한다. 또 모든 인접한 두 방 사이의 거리는 같은 거리(거리 1)라고 가정하고 호텔의 정면 쪽에만 방이 있다고 가정한다. 그림 1. H = 6 이고 W = 12 인 H × W 호텔을 간략하게 나타낸 그림 방 번호는 YXX 나 YYXX 형태인데 여기서 Y 나 YY 는 층 수를 나타내고 XX 는 엘리베이터에서부터 세었을 때의 번호를 나타낸다. 즉, 그림 1 에서 빗금으로 표시한 방은 305 호가 된다. 손님은 엘리베이터를 타고 이동하는 거리는 신경 쓰지 않는다. 다만 걷는 거리가 같을 때에는 아래층의 방을 더 선호한다. 예를 들면 102 호 방보다는 301 호 방을 더 선호하는데, 102 호는 거리 2 만큼 걸어야 하지만 301 호는 거리 1 만큼만 걸으면 되기 때문이다. 같은 이유로 102 호보다 2101 호를 더 선호한다. 여러분이 작성할 프로그램은 초기에 모든 방이 비어있다고 가정하에 이 정책에 따라 N 번째로 도착한 손님에게 배정될 방 번호를 계산하는 프로그램이다. 첫 번째

Atmega8을 이용하여 led를 통한 2진수 표현과 7segment를 이용한 숫자 표현

이미지
Atmega8을 이용하여 적외선 센서를 통해 인터럽트가 들어 올때 마다 led에는 2진수를 표현하고 7Segment에는 숫자를 표현하는 방식을 구현하려 한다. 필요 물품)Atmega8(코딩되어 있는 상태), 7Segment, led 4개, 점프선, 디코더(IC7477), 저항 220옴 4개, 저항 10 옴 한개 회로도)   왼쪽은 Photo 센서와 Atmega8 그리고 led를 연결한 회로도, 오른쪽은 디코더와 7Segment를 연결한 회로도 이다. led와 Atmega8까지만 연결한 뒷 모습) 왼쪽과 오른쪽 회로도를 모두 연결한 모습) 아래는 전원을 인가하여 정상 작동하는 모습)

4x4x4(입체) cube 만들기_generator(도형, 문양)

이미지
4x4x4 큐브 led 코드 작성시 편리하게 작성 가능한 프로그램이 있음. [출처] https://www.instructables.com/id/LED-CUBE-CODE-4x4x4-Arduino/ 층과 핀 배열은 각자에게 맞게 다시 설정해 준다. 참고로 pannel은 가로 층 구조가 아닌 세로 층 구조이다. 프로그램을 사용하여 만든 모양 중 하나. 물음표가 위 아래로 움직이는 동작을 취하고 있다.

4x4x4(입체) cube 만들기_2

현재까지 날씨 표현은 해, 구름 그리고 비가 내리는 동작을 구현하였다. led의 밝기가 너무 약하게 나타나는 문제가 있다. led가 타버릴까봐 달아둔 저항 때문에 나타나는 문제 같으며, 저항을 통하지 않고 short하게 만들 방법이 필요하다.