본문 바로가기

분류 전체보기246

반복자 파이썬을 써보면 다른 언어와 다른 점이 많다 그 중에 특이한 점은 for 문이라 할 수 있다. 보통 for 문은 int i 가 0 부터 특정 수까지 순회 하는 구조로 작동한다. 하지만 파이썬에서는 특정 리스트 ,튜플 , 딕셔너리등 의 멤버를 순차적으로 순회하는 모습을 한다 for num in [11,22,33 ] print(num) 위의 코드는 실질적으로는 아래의 코드와 같이 동작한다. nums = [11,22,33] it = iter(nums) while True: try: num = next(it) except StopIteration: break print(num) 각각의 컨테이너는 내부함수 __iter__, __next__ 메서드가 존재하는데 iter 은 반복자의 시작위치를 가진다. 그리고 nex.. 2021. 8. 10.
기본설정 및 파이썬 사용 bash 수정 하기 (ll, 단춘키 실행하기 위해서 ) vi .bashrc 들어가서 : 91 번째 줄로 간다. 91~93 번까지 주석 삭제 그후 source .bashrc // 원래 꺼다가 켜야지 적용되는데 즉시 적용을 위한 커맨드 mkdir 디렉토리 여러개 한꺼번에 만듬 (-p 옵션 필요) 이 디렉토리에 파이썬 파일을 작성할 것이다. 위와 같이 number01.py 에 작성하고 python number01.py 명령어를 입력하면 위의 코드가 파이썬으로 실행된다. python 명령어 창에 python 을 치면 심볼릭 링크를 통해서 python 이 실행된다. 원래는 심볼릭 링크가 python2.7 에 연결 되어 있지만 우리는 파이썬 3 에 심볼릭 링크를 걸고 싶기 때문에 기존의 python 을 삭제 하고 .. 2021. 8. 10.
nmap Nmap(network mapper)은 원래 고든 라이온(Gordon Lyon)이 작성한 보안 스캐너이다. 이것은 컴퓨터와 서비스를 찾을 때 쓰이며, 네트워크 "지도"를 함께 만든다. 다른 간단한 포트 스캐너들처럼, Nmap은 서비스 탐지 프로토콜로 자신을 광고하지 않는 수동적인 서비스들도 찾아낼 수 있다. 게다가 Nmap은 원격 컴퓨터들의 자세한 정보를 알아낼 수 있다. 이 상세 정보에는 운영 체제, 장치 종류, 운영 시간, 서비스에 쓰이는 소프트웨어 제품, 그 제품의 정확한 버전, 방화벽 기술의 존재와 심지어 근거리 네트워크에서 네트워크 카드의 공급자도 포함한다. Nmap은 리눅스, 윈도우, 솔라리스와 맥 OS X를 포함한 BSD, AmigaOS 에서 실행된다. 리눅스가 가장 자주 사용하는 nmap .. 2021. 8. 10.
atmega328P TWI(I2C) 통신 (3) 실습 SCL = PC5 SDA = PC4 실습 프로그램 소개 (대충읽고 코드를 보면서 다시 보기 바란다. ) 2개의 아두이노 우노 보드로 TWI 통신을 한다. 1대는 마스터 모드로 ,1대는슬레이브 모드로 작동한다. 1. 마스터 송신 모드로 0x01 을 전달한다. 2. 슬레이브 수신 모드로 0x01 을 전달 받는다. 3. 마스터 수신 모드로 데이터를 요청한다. 3. 슬레이브 송신 모드로 받은 0x01 의 데이터를 토글해서 돌려준다. 4. 마스터는 토글된 데이타를 1bit 시프트 시켜준다. 아두이노는 받은 데이터로 PORTD에 달려있는 불을 킨다. (코드 상으로는 8개의 포트를 모두 조절하고 있지만 LED 가 없어서 4개씩만 사용하였다.) 슬레이브의 어드레스는 0x20 으로 하겠다. 풀업 저항 구하기 위 의 공식.. 2021. 8. 7.
atmega328P TWI(I2C) 통신 (2) TWI 통신 순서 1. 마스터에서 TWSTA bit 1로 set 해서 start 출력을 버스로 내보낸다. 이때 TWINT bit 는 clear 되어 있어야 된다. 안되어 있으면 1을 써줘서 0으로 clear - Start 완료시 TWINT 가 자동으로 1로 set 되서 start 가 완료되어있는지 보기위해서 2. TWSR bit 보면서 제대로 start 동작이 이루어졌는지 확인해 본다. 3. TWSR bit 가 제대로 동작 했다면 TWDR 레지스터에 원하는 주소와 R/W bit 를 쓴후 각각의 모드에 맞는 TWCR bit 를 load 한다. 이때 TWINT 는 1 을 적어서 clear 해준다. - > 데이터 전송 시작 그리고 TWSTA bit 를 1로 써줌으로 써 0 으로 clear 해준다. 4 . TW.. 2021. 8. 5.
atmega328P TWI(I2C) 통신 (1) 개념 및 레지스터 TWI 통신은 2 개의 선만으로 1개의 마스터와 많은 수의 슬레이브와 통신할 수 있는 동기 통신 방식으로 SDA (데이타) 와 SCL(클럭) 선으로 구성되어 있다. 여러개의 마스터를 가지는 기능을 지원하긴하지만 여기서는 다루지 않겠습니다. 주의 할점은 이 두 선은 모두 기본적으로 high 상태이고 모두 수 k옴의풀업저항을 가진다. 이러한 구조는 1개의 슬레이브가 low 신호를 보내면 선 자체가 low 가 되며 다른 회로에서 어떤짓을 하더라도 low 유지 된기 때문에 신호 선점 문제에서 유리한 강점을 가집니다. 데이타 전송의 경우 클럭이 high 일 경우 SDA 는 변하지 않아야 합니다. SCL 이 low 일 경우에만 SDA 값을 변경 해야 합니다. (뒤에 나오지만 stop start 신호를 인식하기 위해.. 2021. 8. 5.
atmega 328p USART (3) 실습 XCKn = PD4 TXD = PD1 RXD = PD0 USART 설정 비동기 모드로 , 페리티 코드는 사용하지 않으며 , 스탑 비트는 2bit 이다. 1배속 모드로 기동중이다. 8bit 의 데이타를 송,수신 하고있다. 프로그램 설명 송신부에서 1, 과 2를 번갈아가면서 USART 통신으로 부낸다. 제대로 보내고 있는지 확인하기 위해서 1을 보내고 나면 PORTD7 에 연결된 LED를 밝혔다. 마찬가지로 1초후에 2를 보내고 나면 PORTD6 에 연결된 LED 를 밝힌다. 수신부에서는 받은 데이터가 1이면 PORTD7 에 연결된 LED키고 2이면 PORTD6 에 연결된 LED 를 킨다. 조심할점은 아두이노 스케치를 이용할경우 코드를 업로드 할때 tx,rx 핀을 사용해서 tx,rx 핀에 머 꼿아놓고 로드시.. 2021. 8. 2.
atmega 328p USART (2) 레지스터 19.10.1 UDRn – USART I/O Data Register n (0xC6) USART 는 특이하게 송신 , 수신 하는 데이터 레지스터를 공유한다. 정확히 말해서는 각각의 transmit data buffer shift register , receive data buffer shift registers 가지고 있지만 직접 접근 할 수 는 없다. UDRn 레지스터를 통해서 각가의 레지스터에 접근 가능한데 UDREn flag 가 set 되어 있을때 UDRn 레지스터에 데이터를 입력하고 ,transmit data buffer shift register 가 비어 있다면 ,데이터를 shift register 에 적는다 그리고 바로 TxDnb pin 으로 전송한다. 19.10.2 UCSRnA – USART.. 2021. 8. 2.
atmega 328p USART (1) 개념 및 다이어그램 UART 직렬 통신은 동기 비동기 통신을 지원하며 , SPI MASTER 로 동작하면서도 사용가능하다. 블록다이아 그램에서 보이듯이 클럭생성부 송신부 , 수신부로 이루어져 있으며 하단부에는 USART Control and Status Register A,B,C 로 USART 를 조절하는 3가지 종류의 레지스터를 가지고 있다. 1. Clock Generation USART 는 4가지 MODE 를 지원한다. Normal asynchronous, double speed asynchronous, master synchronous slave synchronous mode. 동기 비동기 모드는 (UMSELn bit in UCSRnC) double speed 모드는 (U2Xn found in the UCSRnA re.. 2021. 8. 1.