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; }