Texture2D가 매프레임마다 생성됨,
얘는 씬이동이나 오브젝트 삭제시에도 안 지워지므로 반드시 한번만 생성해서 쓰는식으로 해야함
'Unity' 카테고리의 다른 글
유니티 단축키 (0) | 2020.11.24 |
---|---|
Streaming of 'mpeg' on this platform is not supported (0) | 2020.11.11 |
투명 렌더텍스처 (0) | 2020.11.10 |
Texture2D가 매프레임마다 생성됨,
얘는 씬이동이나 오브젝트 삭제시에도 안 지워지므로 반드시 한번만 생성해서 쓰는식으로 해야함
유니티 단축키 (0) | 2020.11.24 |
---|---|
Streaming of 'mpeg' on this platform is not supported (0) | 2020.11.11 |
투명 렌더텍스처 (0) | 2020.11.10 |
1 : 페인팅
2 : 지우개
뷰이동
Alt + 가운데클릭 : 보고있는 시점화면 기준으로 뷰 이동
Alt + 우클릭 : 앞뒤로 뷰 이동
Alt + 좌클릭 : 뷰 회전
서브스탠스 페인터 주름 (0) | 2022.01.04 |
---|---|
서브스탠스 페인터 기초 (0) | 2022.01.04 |
서브스탠스 페인터 2020 유리설정 (0) | 2020.07.18 |
보라색 출사각: 결과 약49도
빨간색 출사각 : 결과 약 45.6도
전동킥보드 구매요령 (0) | 2020.11.18 |
---|---|
기계부품 자료 모음 (0) | 2020.11.10 |
절전모드 해제 방지 (0) | 2020.10.31 |
rc522는 RFID모듈이다 2020년 기준 국내 1000~2000가격에 구할수 있다
NFC랑 RFID랑 다른것 같다
다음 표를 보면서 핀을 넣는다
주의할점은 IRQ는 사용 안함이고 핀순서가 뒤죽박죽이기 때문에 기판에 인쇄된 글자를 보면서 해야한다
결과
카드의 값을 읽어올때는 DumpInfo예제를 쓴다
결과
PCD_Authenticate() failed: Error in communication. 에러는 일반적으로 암호화된 블록을 키없이 읽으려고 할때 발생한다.
읽기 키 기본값은 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF이고 키를 변경하면 키를 가진사람외에는 읽기 방지 할 수있다.
보통은 이걸 바꾼다
MFRC522::MIFARE_Key key;
void setup() {
for (byte i = 0; i < 6; i++) {
key.keyByte[i] = 0xFF;
}
}
A MIFARE PICC responded with NAK.
은 쓰기방지가 걸려있는거다. 다른 섹터, 혹은 블록을 참조해야한다고했는데 알고보니 트레일러가 잘못된거였다
함수모음
//카드접촉검사
if ( ! mfrc522.PICC_IsNewCardPresent())
return;
//카드읽기가 정상인지 검사
if ( ! mfrc522.PICC_ReadCardSerial())
return;
데이터블록은 blockAddr/4*4+3이여야 한다
혹은 blockAddr-(blockAddr%4)+3
즉 1이면 3, 4이면7, 5여도 7
byte sector = 1;
byte sector2 = 0;
byte blockAddr = 1;
byte dataBlock[] = {
0x01, 0x02, 0x03, 0x04, // 1, 2, 3, 4,
0x05, 0x06, 0x07, 0x08, // 5, 6, 7, 8,
0x09, 0x0a, 0xff, 0x0b, // 9, 10, 255, 11,
0x0c, 0x0d, 0x0e, 0x0f // 12, 13, 14, 15
};
byte trailerBlock = blockAddr/4*4+3;
데이터시트
www.nxp.com/docs/en/data-sheet/MF1S50YYX_V1.pdf
0번섹터 0번블록은 UID등등의 값이 들어가있고 Manufacture Block이라고 한다
503번RFID는
0~3바이트는 NUID
500번RFID는
0~5바이트는 UID
각 섹터별 3번블록은 섹터정보가 있는지 함부로 값을쓰면 개박살난다
byte sectorTrailerBuffer[16]={0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x07,0x80,0x69,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF};
block=1;
byte sectorTrailerIndex = block/4*4+3;
//해당 블록에 액세스
status = mfrc522.PCD_Authenticate(MFRC522::PICC_CMD_MF_AUTH_KEY_A, sectorTrailerIndex, &key, &(mfrc522.uid));
if (status == MFRC522::STATUS_OK)
{
Serial.println(F("PCD_Authenticate() success: "));
}
else
{
Serial.print(F("PCD_Authenticate() failed: "));
Serial.println(mfrc522.GetStatusCodeName(status));
return;
}
if(block==sectorTrailerIndex)
{
if(useAkey)
{
//A값
[0 0 1]
mfrc522.MIFARE_SetAccessBits(§orTrailerBuffer[6], 0, 0, 0, 1);
}
else
{
//B값
[0 1 1]
mfrc522.MIFARE_SetAccessBits(§orTrailerBuffer[6], 3, 3, 3, 3);
}
status = mfrc522.MIFARE_Write(block, sectorTrailerBuffer, 16);
}
else
{
status = mfrc522.MIFARE_Write(block, buffer, 16);
}
if (status == MFRC522::STATUS_OK)
{
Serial.println(F("MIFARE_Write() success: "));
}
else
{
Serial.print(F("MIFARE_Write() failed: "));
Serial.println(mfrc522.GetStatusCodeName(status));
return;
}
byte to hex (0) | 2021.02.23 |
---|---|
블루투스 테스트용 앱들 (0) | 2020.08.01 |
블루투스 셋업용 코드 (0) | 2020.07.31 |