RG300

支援振動馬達


司徒最近打算讓開源掌機都可以支援振動功能,因為這樣可以讓遊戲更加有樂趣,當然搭配的則是Hack NES遊戲,借此讓NES遊戲支援振動功能,而第一台開刀的機器就是RG300,因為RG300是目前司徒拿到最新的開源掌機,當然,司徒也相當感謝揚立銘提供的PCB焊點圖,讓司徒可以快速完成硬體改機。

使用的腳位為LCD_SDA(TP148)


馬達


接著就開始焊接


幸運地,初始化後的LCD_SDA腳位是低電位,因此,一顆NPN電晶體即可解决


讓馬達置中,藉此得到比較平衡的振動


完成配線


反電動勢二極體


44R限流電阻


電路圖


完成後的樣子


接著找下Remap位置


Set Register


Clear Regsiter


最後司徒寫個馬達測試App

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <fcntl.h>
#include <sys/mman.h>
#include <unistd.h>
#include <time.h>

int main(int argc, char* argv[])
{
  int fd = open("/dev/mem", O_RDWR);
  if(fd < 0){
    printf("failed to open /dev/mem\n");
    return -1;
  }
  unsigned char *mem = mmap(0, 4096, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0x10010000);
  printf("mem ptr: 0x%x\n", mem);
  
  mem[0x414]|= 4;
  usleep(5000000);
  mem[0x418]|= 4;
  munmap(mem, 4096);
  close(fd);
  return 0;
}


返回上一頁