PCには、Raspberry Piと違ってGPIOのような物理的にアクセス可能なデバイスは用意されていない。そこで、最近のPCの標準装備からはほとんど姿を消したものの、RS232C(特に法人向けのPCには、数年前まで、標準装備されていたように記憶していますが、、、?)ポートには、ハードウェアによるフロー制御に利用可能なRTS端子があることを思い出した。
この端子を、高速でON/OFFすることで、電波として放射できないか、実験をしてみた。RTS端子をオシロで観測した様子。46KHz程度で、周期がかなり変動している。
電波のスペクトラムを観測した様子のyoutube動画はこちら https://youtu.be/YtIuUOOOiLs
動画の左側は、Raspberry Pi3のGPIO端子をソフトウエアでOn/Offした時のスペクトラム波形。右側がPCのRS-232C端子をOn/Offした際の、スペクトラム波形。WindowsではOn/Off周期の変動が大きく、スペクトラムが大きく広がっている。
プログラム例
#include
#include
int main()
{
HANDLE hComm;
int Status;
int n;
unsigned clockDivisor = 0;
hComm = CreateFile(“COM1”, //port name
GENERIC_READ | GENERIC_WRITE, //Read/Write
0, // No Sharing
NULL, // No Security
OPEN_EXISTING,// Open existing port only
0, // Non Overlapped I/O
NULL); // Null for Comm Devices
if (hComm == INVALID_HANDLE_VALUE)
printf(“Error in opening serial port”);
else {
printf(“opening serial port successful”);
for(n=0;n<100000;n++){ // ここのループでRF信号を放射 Status = EscapeCommFunction(hComm, SETRTS); // RTS ON Status = EscapeCommFunction(hComm, CLRRTS); // RTS OFF } printf("Done...\n"); uSleep(5000000); } CloseHandle(hComm);//Closing the Serial Port return 0; }