ä»åã¯ãåã®
èšäºã®ããã€ã¹ã®äžçš®ã®ããã°ä¿®æ£ãã
玹ä»ããŸãã å¥ã®å®è£
ãªãã·ã§ã³ã«ã€ããŠã¯ã
次ãåç
§ããŠãã ããã
çµæãšããŠçããèªè»¢è»ãèŠãŠãèããæãã€ããã§ããã ãå€ãã®æ¬ ç¹ãä¿®æ£ããŸããã ããªãã¡ïŒ
- ãªã¢ãŒã管çæ©èœãæ¡åŒµãã
- ã³ã¹ããåæžããŸãã
- ãããªãéä¿¡ããããã®äœããèãåºãã®ã§ããªã¢ãŒãã§äœæ¥ããæ¹ãå°ãªããšãããå°ãå¿«é©ã«ãªããŸãã
åç»ããç¹å¥ãªããšã¯äœãã§ããªãã£ããšããã«èšããŸããç§ãã¡ã¯èªåã®æã£ãŠãããã®ã«æºè¶³ããªããã°ãªããŸããããæ²ããããšã«ã€ããŠã¯è©±ããŸããã
ãããŠãç§ãã¡ã¯ãããããªæãå·ããé ãæããå¿ãæã£ãŠé²ã¿ãŸãã ã³ã³ããŒãã³ãã¯ãRaspberry PIã®ä»£ããã«åçã«å€æŽãããŸãããOrangePIã䜿çšããArduino UNOã®ä»£ããã«ãåã®èšäºã§èª¬æãããŸãã«ãããïŒAtmega16u2ïŒã®ã¿ã䜿çšããŸãã
ã³ã³ããŒãã³ãã®æ°ã¯å€æŽãããŠããŸããã
1. UVCãããªãã£ããã£ããŒãïŒ

2. VGA to AVã³ã³ããŒã¿ãŒïŒ

ç§ã¯ããã§å¥ã®ã³ã³ããŒã¿ãŒãè©ŠããŸããïŒ

ããããå¥è·¡ã¯èµ·ãããããããªå質ã¯åäžããŸããã§ãããããã®éããããŸããã§ããã
3. Atmega16u2ïŒ

4.ç§ã®å Žåã®ãªã¬ã³ãžPIããªã¬ã³ãžpi PCã¢ãã«ïŒ

ãã®ãã€ã¯ãã³ã³ãã¥ãŒã¿ãŒã«ã€ããŠäžèšã Allwinner H3ããã»ããµïŒAWPã¢ãŒããã¯ãã£ã«åºã¥ãå®äŸ¡ãª4ã³ã¢ããã»ããµïŒã1ã®ã¬ãã€ãã®RAM 3 USBãHDMIãªã©ã«åºã¥ããŠãããå®å
šãªèª¬æã¯ã€ã³ã¿ãŒãããäžã§èŠã€ããããšã¯é£ãããããŸããã
æºå段é
Orangepiã«ãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ãã€ã³ã¹ããŒã«ãã
ããã«ãã©ãŒã©ã ãžã®
ãªã³ã¯ããããŸãããã®ãã©ãŒã©ã ã¹ã¬ããã«ã¯å€ãã®æçšãªæ
å ±ããããŸãããã¡ããããã¹ãŠãè±èªã§ãããOrangePI-PC_Ubuntu_Vivid_Mate.imgãã£ã¹ããªãã¥ãŒã·ã§ã³ã«èå³ããããŸããmega.nzãŸãã¯Googleãã©ã€ãããããŠã³ããŒãã§ããŸãã ããããŒã«ãã¡ã¬ãŸãã¯Googleãã©ã€ãããããŠã³ããŒãããšããè¡ããããŸãããªã³ã¯ãã¯ãªãã¯ããŠããŠã³ããŒãããŸãã
ã€ã¡ãŒãžãUSBãã©ãã·ã¥ãã©ã€ãã«è»¢éããæé ã¯ãã©ãºããªãŒã®å Žåãšåãã§ããWindowsã§ã¯ãddã³ãã³ãã䜿çšããŠLinuxã§win32ãã£ã¹ã¯ã€ã¡ãŒãžã£ãŒã©ã€ã¿ãŒã䜿çšã§ããŸãã
å°ããªäœè«ã ãªã¬ã³ãžãã€ããAllwinnerã®äžåœã®ããã»ããµã§æ§ç¯ãããåæ§ã®ãã€ã¯ãã³ã³ãã¥ãŒã¿ãŒã¯ãããŒããŠã§ã¢ïŒããŒããŠã§ã¢ïŒã§ã¯ãªãããœãããŠã§ã¢ïŒãœãããŠã§ã¢ïŒãããæ£ç¢ºã«ã¯OSæ©èœãšãå®å
šæ§ããšããç¹ã§ãã©ãºããªãŒããããªãå£ã£ãŠããŸãã æé©åããããã¡ã€ã«ã·ã¹ãã ã§ã¯ãªããæ©èœãäœäžããã«ãŒãã«ãèšå€§ãªæ°ã®ãã°ãããããã¹ãŠã®åé¡ã§ã¯ãããŸããã ãã®ç¶æ³ã¯ãããã»ããµã®è£œé å
ãæåã¯Androidãå®è¡ããã¿ãã¬ããïŒã¹ããŒããã©ã³ãå«ãïŒã«çŠç¹ãåœãŠãŠããããã«çºçããŸããã補é å
ã®èŠ³ç¹ããã¯ãå®å
šãªLinuxãã£ã¹ããªãã¥ãŒã·ã§ã³ã«ã¯æããã«çµæžçå®çŸæ§ããªãã£ããã Linuxã«ãŒãã«ã¯ãåå§çãªè¡åããã§ããªãéèã«å€ãã£ãç涯ããããŸãã«ãããã®ããã«åæžãããŸããã é·ãéãAndroidã®ã³ã¢ã«Linuxãã£ã¹ããªãã¥ãŒã·ã§ã³ããããããããå®äŸ¡ãªããŒã±ãã£ã³ã°ã®åãã®ãããªãã®ã ã£ãã®ã§ãæ奜家ã®ããã§ã¯ãªããšããŠããããã¯ç¶ããããŠããã§ãããã
ããããã©ã ã«æ»ããŸãããã é
åžãèšé²ãããã·ã¹ãã ãå®è¡ãããŠããŸãã
ã¢ãŒã·ã§ã³ãã«ã¹ã¿ãã€ãºãã
ã³ã³ãœãŒã«ã«ç§»åããŸãã
orangepi
root
ãŸãã¯
root
orangepi
ãã¹ã¯ãŒã
ããã±ãŒãžã®æŽæ°ïŒ
sudo apt-get update && sudo apt-get upgrade ây
ã¢ãŒã·ã§ã³ãã€ã³ã¹ããŒã«
åã®èšäºãšåæ§ã®ãã¹ãŠã®èšå®ïŒ
èšäºã®æç sudo apt-get install motion -y
èªåå®è¡æ§æãç·šéããŸãã
sudo nano /etc/default/motion
è¡
start_motion_daemon
ãyesããèšå®ããŸãã å€æŽãä¿åããŸãCtrl + xãyãEnterã
ã¢ãŒã·ã§ã³èªäœã®æ§æãç·šéããŸãïŒaïŒïŒ
sudo nano /etc/motion/motion.conf
ãã©ã¡ãŒã¿ãŒå€ã次ã®ããã«å€æŽããŸãã
ãã®ãã©ã¡ãŒã¿ãŒã¯ãã¢ããªã±ãŒã·ã§ã³ããµãŒãã¹ãšããŠèµ·åããããšãå®çŸ©ããŸãã
daemon on
ãããã®ãã©ã¡ãŒã¿ãŒã¯ãéä¿¡ãããç»åã®è§£å床ã決å®ããŸããããé«ã解å床ãèšå®ããŠãæå³ããããŸããã ãããªãã£ããã£ã¯PALãŸãã¯SECAMæšæºã«å¶éããããã®è§£å床ã¯720x576ã§ãã ããã¯å¶ç¶ã«è¿·æãªæ¬ é¥ã§ãããããã«ã€ããŠã¯åŸã§è©³ãã説æããŸãã
width 800 height 600
ãã¬ãŒã ã¬ãŒãïŒ
framerate 25
ã¹ã¯ãªãŒã³ã·ã§ããã®ä¿åãç¡å¹ã«ããŸãã
output_normal off
ç»åäŒéå質ïŒ
webcam_quality 100
ãã¬ãŒã ã¬ãŒãïŒ
webcam_maxrate 25
ä»ã®IPããã®æ¥ç¶ã«é¢ããå¶éã®åé€
webcam_localhost off
å€æŽãä¿åããŸãCtrl + xãyãEnterã
ã³ã³ãœãŒã«ã¯ãŸã éããŠããŸããã
ã³ã³ãã€ã«æºå
å¶åŸ¡ã移ãããã«ãããã°ã©ã ãäœæããŸãããã¹ãŠã以äžã§è©³çŽ°ã«èª¬æãããã®éã«åºæ¬çãªæºåãè¡ããŸãã
ã³ã³ãã€ã«ã«å¿
èŠãªãã®ããã¹ãŠã€ã³ã¹ããŒã«ããŸããããã°ã©ã ã¯Cã«ãªããŸãã
sudo apt-get install build-essential -y
ncursesã©ã€ãã©ãªãã€ã³ã¹ããŒã«ããããŒå€ããã£ããã£ããŸãã
sudo apt-get install ncurses -y
次ã®ããã«èšè¿°ã§ããããã«ãã·ãªã¢ã«ããŒãã®ææè
ã«ãªããŸãã
sudo chown orangepi /dev/ttyS2
ãšãã£ã¿ãŒã§ã«ãŒãã«ã¢ãžã¥ãŒã«ã®ããŒãæ§æãéããŸãã
sudo nano /etc/modules
gpio-sunxi
ã³ã¡ã³ãã解é€ããŸãã ãã®ã¢ã¯ã·ã§ã³ã§ãgpioããŸãã¯ããããããæäœããããã®ã¢ãžã¥ãŒã«ãã¢ã¯ãã£ãã«ããŸããããã«ã€ããŠã¯åŸã§èª¬æããŸãã
èªåå®è¡ã®ç·šéïŒ
sudo nano /etc/rc.local
次ã®
chown -R orangepi /sys/devices/platform/*
exit
è¡ã®åã«è¿œå ããŸãã ãã®ã³ãã³ãã¯ãorangepiãŠãŒã¶ãŒãGPIOããŒããšã®å¯Ÿè©±ãæ
åœããä»®æ³ãã¡ã€ã«ã®ææè
ã«ããŸãã
çè«çã«ã¯ãã°ã«ãŒããäœæããæš©å©ãå²ãåœãŠããŠãŒã¶ãŒãã°ã«ãŒãã«è¿œå ããæ¹ãæ£ããã®ã§ãããããã¯ãã¹ãŠãã¢ã¢ãã«ã§ãïŒããç¥ãããŠãã挫ç»ã®ãã£ã©ã¯ã¿ãŒãæãåºããŸãïŒã ãã¡ãããç§ã¯ããªãããã¹ãããšããã¹ãŠããããšã決ããŠçŠããŸããã
å€æŽãä¿åããŠåèµ·åããŸãã
sudo reboot
ããŒããŠã§ã¢ã«ã€ããŠå°ã話ããŸãããã
Atmega16u2
å¶åŸ¡ã移ãããã«ãè¿œå ã®ãã€ã¯ãã³ã³ãããŒã©ãŒãšArduinoIDEã䜿çšããã«Atmega16u2ããããçŽæ¥äœ¿çšããããšã決å®ããããã€ã¯ãã³ã³ãã¥ãŒã¿ãŒã§çŽæ¥å®è¡å¯èœã³ãŒããå®è¡ããŸãã
åã®èšäºã§ãã¢ã«ãã¥ã€ã³ã®ããžãã¯ãåæããŸãã
ããŒå€ã¯ãã·ãªã¢ã«ããŒããä»ããŠAtmega328pãã€ã¯ãã³ã³ãããŒã©ãŒïŒArduino UNOäžã®å€§ããªé·æ¹åœ¢ã®ãããïŒã«éä¿¡ãããHIDKeyboard.hã§æå®ãããé
åããããããããUSB HIDããŒããŒãããŒã³ãŒãããAtmega16u2ãã€ã¯ãã³ã³ãããŒã©ãŒã«ïŒåã³ã·ãªã¢ã«ããŒããä»ããŠïŒéä¿¡ãããŸããUSBãä»ããŠã¿ãŒã²ããã³ã³ãã¥ãŒã¿ã«éä¿¡ãããŸãã ã·ãªã¢ã«âAtmega328pâã·ãªã¢ã«âAtmega16u2âUSB
äžè¬ã«ãAtmega328pã¯ä»²ä»è
ã®åœ¹å²ãæãããŸããããã¡ããããããåé€ããããšã¯è«ççã§ãããããè¡ããããOrangepiã®äžã®ã¢ã«ãã¥ã€ã³åãã®ã³ãŒããæžãçŽããAtmega16u2ãçŽæ¥æ¥ç¶ããŸãã
åœç¶ã裞ã®ãã€ã¯ãåè·¯ã¯äœ¿çšã§ããŸãã;å°ãªããšãæå°éã®ãã€ã³ãã£ã³ã°ãå¿
èŠã§ãã
ãã®ãªã³ã¯ã®ã¬ãã¥ãŒãèªãããšããå§ãããŸãã

ã芧ã®ããã«ããã®ã¹ããŒã ã¯åå¿è
ã§ãç°¡åã«å¯ŸåŠã§ããŸãããã³ãžåãä»ãã§äžèŠãªèŠçŽ ã¯å€ããããŸããã空äžã«åããªãããã«æ°Žæ¶æ¯ååãåºå®ããããšããå§ãããŸãã ãšããã§ãçºé»æ©ã¯ãåè·¯ããçªç¶ã¯ã£ããããªãå Žåã16ã¡ã¬ãã«ãã§ãªããã°ãªããŸããã ãŸããATmega32u2ã®åè·¯ãATmega16u2ããã³ATmega8u2ã«ãé©ããŠãããšããäºå®ã«æ³šæãæã£ãŠã¯ãªããŸããã
Arduino UNOããŒãã䜿çšããŠããå Žåã¯ãããã䜿çšã§ããŸããé£çµ¡å
tx-No. 0ãrx-No. 1ã«æ¥ç¶ããå¿
èŠããããŸããAtmega328pmikruhaãåãå€ããŠãç¡é§ã«é»åãæ¶è²»ãããã·ãªã¢ã«ããŒããšãŒãã«ãè©°ãŸããªãããã«ããããšããå§ãããŸãã
ããžãã¯ã¬ãã«ã«ã€ããŠæãåºãå¿
èŠã¯ãããŸããããã¹ãŠã¯åã®èšäºãšåãã§ããã·ãªã¢ã«ããŒãOrange PIã¯Raspberry PIãš3.3ãã«ãã§åæ§ã«åäœããé»å§ã®æŽåãå¿
èŠã§ãã
ATmega16u2ãã¡ãŒã ãŠã§ã¢ã®å Žåã
ãªã»ããèãå°é¢ã§1ç§ééãããã¡ãŒã ãŠã§ã¢ã
ããªããã§åããå¿
èŠããããŸãã

ç§ã¯è©³çŽ°ã«èª¬æããŸãããããã¯ãã§ã«æåŸã§ããã ããã§æºåã¯çµãããŸãããããžãã¹ã«åãæãããŸãããã
ããã°ã©ã ãæžã
ããŒã転éããã³ã³ããŒã¿ãŒããªã¢ãŒãã§å¶åŸ¡ããããã«ãå°ããªããã°ã©ã ãäœæããŸãã
çè«
æåã¯ãUNO-HIDKeyboard-LibraryãããœãŒã¹ã移æ€ããã ãã§æ¥ããŸãããããã¯ãåå䜿çšããArduino IDEã®ã©ã€ãã©ãªïŒHIDKeyboard.cppããã³HIDKeyboard.hãã¡ã€ã«ïŒã§ããããã®æ©èœã¯ã¢ã€ãã¢ã«ã¯ååã§ã¯ãããŸããã§ããã
Linux-Remote-HIDKeyboardã玹ä»ããŸããããã®ååã¯ãŸããŸãã§ãããããã¹ãLRHIDKeyboard.cppãŸãã¯rkeysendïŒã³ã³ãã€ã«æžã¿ãã€ããªïŒã§åŸã§åŒã³åºãå¿
èŠããããŸããã
ãœãŒã¹ã³ãŒãã¯ãLRHIDKeyboard.cppãšHIDKeyboard.hã®2ã€ã®ãã¡ã€ã«ã§æ§æãããŸãã HIDKeyboard.hã¯ãUNO-HIDKeyboard-Libraryã®åãããããŒãã¡ã€ã«ã§ãã é
åã¯ãUSB HIDããŒããŒãããŒã³ãŒããã«å€æããããã«ãã®ãã¡ã€ã«ã«æ ŒçŽãããŸãããšã©ãŒãä¿®æ£ããŠé
åãæ¡åŒµããèªç±ãåããHIDKeyboard.cppãšã®äºææ§ãä¿æããããããå¿
èŠã«å¿ããŠArduinsã«äœ¿çšã§ããŸãã
USB HIDããŒããŒãããŒã³ãŒã-ãããã¯USBãä»ããŠéä¿¡ãããããŒã®ããŒã§ãã詳现ã«ã€ããŠã¯ã
ãã¡ã ïŒpdfïŒãåç
§ããŠãã ããã
ããããŒãã¡ã€ã«HIDKeyboard.hã«ã¯2ã€ã®é
åããããŸããæåã®é
åã¯éåžžã®ããŒãå®çŸ©ããããã®ãã®ã§ã2çªç®ã®é
åã¯ã·ããããŒãæã€ããŒçšã§ãã 端æ«ããã®ãã£ããã£äžã«ååŸããã10é²æ°ã¯ãé
åèŠçŽ ã®çªå·ãšæ¯èŒãããã0x7fãïŒ16é²æ°ïŒã®ãããªèŠçŽ ã«çœ®ãæããããŸãã ããšãã°ããaãããŒã®å€ã¯10é²æ°ã®ã4ããŸãã¯16é²æ°ã®ã04ãããESCAPEãããŒã¯10é²æ°ã®ã41ããŸãã¯16é²æ°ã®ã29ãã§ãã16é²æ°ãããŒãæŒãããšã瀺ãããã«ãã€ã¯ããµãŒãããã«éä¿¡ãããŸãã
ç·Žç¿ãã
Orangepiã³ã³ãœãŒã«ãéãã次ã®ããã«ããã°ã©ã ãä¿åãããã£ã¬ã¯ããªãäœæããŸãã
cd ~ mkdir PROG cd PROG
HIDKeyboard.h
ããã³
LRHIDKeyboard.cpp
äœæã
LRHIDKeyboard.cpp
ã
touch HIDKeyboard.h touch LRHIDKeyboard.cpp
HIDKeyboard.hãšãã£ã¿ãŒã§éããŸãã
nano HIDKeyboard.h
ãªã¹ãã®å
容ãã³ããŒããŸãã
HIDKeyboard.hã®ãªã¹ã #ifndef HIDKeyboard_h #define HIDKeyboard_h
Ctrl + xãyãEnterãä¿å
ãããŠãŸãïŒ
nano LRHIDKeyboard.cpp
ãªã¹ãã®å
容ãã³ããŒããŸãã
LRHIDKeyboard.cppã®ãªã¹ã #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include <fcntl.h> #include <errno.h> #include <termios.h> #include <time.h> #include <ncurses.h> #include "HIDKeyboard.h" char myport[] = "/dev/ttyS2"; // serial port // char nul[] = ""; char menu[] = "/sys/class/gpio_sw/PA14/data"; // char zoom[] = "/sys/class/gpio_sw/PD14/data"; // char kup[] = "/sys/class/gpio_sw/PC4/data"; // char kdn[] = "/sys/class/gpio_sw/PC7/data"; // char klf[] = "/sys/class/gpio_sw/PG8/data"; // char krt[] = "/sys/class/gpio_sw/PA21/data"; // uint8_t buf[8] = { 0 }; /* Keyboard report buffer */ int open_port(char *devname) // serial port { int fd; fd = open(devname, O_RDWR | O_NOCTTY | O_NDELAY); if(fd == -1) // { printw("Port is not open! %s" , devname); return -1; } else { fcntl(fd, F_SETFL, 0); printw("Open port %s", devname); } // struct termios port_settings; cfsetispeed(&port_settings, B9600); cfsetospeed(&port_settings, B9600); port_settings.c_cflag &= ~PARENB; port_settings.c_cflag &= ~CSTOPB; port_settings.c_cflag &= ~CSIZE; port_settings.c_cflag |= CS8; tcsetattr(fd, TCSANOW, &port_settings); return(fd); } int alt_check(int check) // ALT, ALT, "0" { if(check == 27) { nodelay(stdscr,TRUE); check = getch(); if (check == -1) return ESCAPE; // Esc nodelay(stdscr,FALSE); return check; } //else return 0; return 0; } int hot_key(int fd, int alt, int vchar) // { if(alt != 0) { if (alt == 330) // "Alt" + "Delete" Ctrl + Alt + Delete { vchar = 0; buf[0] = 0x04|0x01; buf[2] = HIDTable[alt]; write(fd, buf, 8); return 0; } if (alt == 114) // "Alt" + "r" Win + r { vchar = 0; buf[0] = 0x08; buf[2] = HIDTable[alt]; write(fd, buf, 8); return 0; } if (alt == 52) // "Alt" + "4" Alt + F4 { vchar = 0; buf[0] = 0x04; buf[2] = 0x3d; write(fd, buf, 8); return 0; } if (alt == 116) // "Alt" + "t" Alt + Tab { vchar = 0; buf[0] = 0x04; buf[2] = 0x2b; write(fd, buf, 8); return 0; } if (alt == 44) // "Alt" + "," Alt + Shift { vchar = 0; buf[0] = 0x04|0x02; write(fd, buf, 8); return 0; } if (alt == 46) // "Alt" + "." Ctrl + Shift { vchar = 0; buf[0] = 0x01|0x02; write(fd, buf, 8); return 0; } } else { if (vchar == 17) // "Ctrl" + "q" { endwin(); exit(0); } // *nul = '\0'; if (vchar == 28) strcpy(nul, menu); // "Ctrl" + "\" if (vchar == 31) strcpy(nul, zoom); // "Ctrl" + "/" if (vchar == 566) strcpy(nul, kup); // "Ctrl" + "up" if (vchar == 525) strcpy(nul, kdn); // "Ctrl" + "down" if (vchar == 545) strcpy(nul, klf); // "Ctrl" + "left" if (vchar == 560) strcpy(nul, krt); // "Ctrl" + "right" FILE *f = fopen(nul, "w"); // if (f != '\0') { fwrite("1", 1, 1, f); int wrt = fclose(f); // usleep(70000); if (wrt == 0) { FILE *f = fopen(nul, "w"); fwrite("0", 1, 1, f); fclose(f); } else printf("error write file: %s", nul); return 0; } return vchar; } } int send_key(int fd, int altkey, int getkey) // { if (altkey == ESCAPE) { buf[0] = 0x00; buf[2] = 0x29; write(fd, buf, 8); return 1; } if (altkey != 0) { buf[0] = 0x04; buf[2] = HIDTable[altkey]; write(fd, buf, 8); return 1; } else { if (getkey == 0) return 0; //printf("KEY NAME : %s - %d\n", keyname(getkey),getkey); // buf[0] = modifierTable[getkey]; buf[2] = HIDTable[getkey]; write(fd, buf, 8); return 1; } return(-1); } int release_key(int fd) // { buf[0] = 0; buf[2] = 0; write(fd, buf, 8); } int main(void) { initscr(); keypad(stdscr,TRUE); // raw(); // int fd = open_port(myport); printw("\nHOT KEYS: Alt + Delete = Ctrl + Alt + Delete Alt + r = Win + r Alt + 4 = Alt + F4 Alt + t = Alt + Tab Alt + , = Alt + Shift Alt + . = Ctrl + Shift"); printw("\nGPIO: MENU = Ctrl + \\ ZOOM = Ctrl + / UP = Ctrl + up DOWN = Ctrl + down LEFT = Ctrl + left RIGHT = Ctrl + right"); printw("\n Exit = Ctrl + q"); move(10,1); refresh(); while (fd != -1) { int pkey = getch(); int alt = alt_check(pkey); int hot = hot_key(fd, alt, pkey); send_key(fd, alt, hot); release_key(fd); } endwin(); }
Ctrl + xãyãEnterãä¿åããŸãã
ã³ã³ãã€ã«äž
g++ LRHIDKeyboard.cpp -o rkeysend -lncurses
rkeysendã¯ãã³ã³ãã€ã«äžã«ååŸãããå®è¡å¯èœãã¡ã€ã«ã®ååã§ã
-端æ«ã®ããŒããã£ããã£ããåã端æ«ã«ããã¹ãã¡ãã»ãŒãžãéä¿¡ããããã«äœ¿çšãããncursesã©ã€ãã©ãªãã³ã³ãã€ã«ãããšãã®
-Incursesæ¥ç¶ã
ã³ã³ãã€ã«ãæåããããGPIOããŒãã«é²ãããšãã§ããŸãã
ã³ã³ããŒã¿ãŒç®¡ç
ãæ°ããã³ã³ãã€ã«ããããããã°ã©ã ã¯ãããŒã転éããã ãã§ãªããã³ã³ããŒã¿ãŒãå¶åŸ¡ããããšãã§ããŸãã çç±ã説æããŸãã ãŸããç»åãæãããã³ã³ãã©ã¹ããã·ã£ãŒããã¹ãªã©ã調æŽã§ããŸãã 第äºã«ãã³ã³ããŒã¿ãŒããåãåã£ãç»åã®è§£å床= 720x576ã«ã€ããŠæ¢ã«æžããŸããã ãã®ãããã³ã³ããŒã¿ãŒã«ã¯ç»åã®äžéšã®ã¿ã衚瀺ããã¢ãŒãããããŸããã解å床ã¯å€æŽãããŸãããã€ãŸãããã®ã¢ãŒãã䜿çšããŠãç»åã®ãã詳现ãèæ
®ããããšãã§ããŸãã
ã³ã³ããŒã¿ãŒã¯GPIOã«ãã£ãŠå¶åŸ¡ãããŸãã GPIOã¯ç¢ºãã«æ±çšå
¥å/åºåãæ¢ã«ç¥ã£ãŠããŸããããã·ã¢èªã®å Žåããã€ã¯ãã³ã³ãã¥ãŒã¿ãå€éšäžçãšããåãããäžçš®ã®æ¹æ³ã§ãããŠã£ãããã£ã¢ã®ãæ±çšå
¥å/åºåã€ã³ã¿ãŒãã§ã€ã¹ãã®ããªãæ£ç¢ºãªå®çŸ©ã奜ãã§ããã
Orangepi PCãã³ã³ããŒã¿ãŒã«æ¥ç¶ããŸã
ãããŠãã³ã³ããŒã¿ãŒãGPIOã«æ¥ç¶ããŸãã ã³ã³ããŒã¿ãŒã«ã¯ç©çå¶åŸ¡ãã¿ã³ããããŸãïŒå·Šãå³ãäžãäžãã¡ãã¥ãŒããºãŒã ã ãããã¯ãå³ã®ããã«æ¬¡ã®ååã«åŸã£ãŠæ¥ç¶ãããŸãã ãã®å³ã¯ããã¿ã³ã®æ©èœã®ã¿ã瀺ããŠããŸãã
ã³ã³ããŒã¿ãŒã«ã¯ããŒãããããé»å§ã枬å®ããç®çã®ã¬ãã«ã«å¿ããŠãã¡ãã¥ãŒãéããç»åãæ¡å€§ãããç»åã移åãããªã©ã®ã¢ã¯ã·ã§ã³ãå®è¡ããŸãã
ãã¿ã³ãå¶åŸ¡ããããã«ãå
å
¥åAOT128Aãåãããã€ããŒã©ãã©ã³ãžã¹ã¿ã䜿çšããŸããã
ãã©ã³ãžã¹ã¿ãŒã®ãšããã¿ãŒãšã³ã¬ã¯ã¿ãŒã¯ãã°ã©ã³ããšãã¿ã³ã®æ¥ç¹ã«ã¯ãã ä»ããããŠããŸãã ãã©ã³ãžã¹ã¿ã®ã«ãœãŒããã°ã©ã³ãã«æ¥ç¶ïŒã¯ãã ä»ãïŒããŸãã ãã©ã³ãžã¹ã¿ã®ã¢ããŒãã¯ã33ãªãŒã ã®æµæãä»ããŠç®çã®GPIOããŒãã«æ¥ç¶ãããŸãã

äœããå€æŽããå ŽåãèŠããŠãããŠãã ããïŒ
ãã®ãã©ã³ãžã¹ã¿ã®ã¢ããŒãã®å¶åŸ¡é»å§ã¯1.6V以äžã§ããããã®å€ãè¶
ãããšããã©ã³ãžã¹ã¿ãéåžžã«å ç±ãå§ããç±ç Žå£ãçºçããå¯èœæ§ããããŸãã Orangepiãšã³ã³ããŒã¿ãŒã«åãé»æºã䜿çšããããšããå§ãããŸããããããªããšãé»äœå·®ã«ããç»åãå€ããå ŽåããããŸãã
ãã©ã³ãžã¹ã¿ã®ã¢ããŒãã次ã®GPIOããŒãã«æ¥ç¶ããŸãïŒ
PA14-ã¡ãã¥ãŒã
PD14-ãºãŒã ã
PC4-äžéšã
PC7-äžéšã
PG8-å·Šã
PA21-å³ã
ATmega16u2ããããæ¥ç¶ããããã®ã·ãªã¢ã«ããŒãã¯ãããŒã11ïŒRXïŒããã³13ïŒTXïŒã«ãããŸãã ç»åã®ããã«æ¥ç¶ããŸã

ããŠããã¹ãŠãæ¥ç¶ãããŸããã æåã¯ãåäžã®ããŒãã䜿çšããŠ1ã€ã®é»çå¹æãã©ã³ãžã¹ã¿ãŒã§ã³ã³ããŒã¿ãŒãå¶åŸ¡ãããã£ãã®ã§ãããã©ããããããããŸãããããPWMãªããã«ããã©ã³ãžã¹ã¿ãŒã«äŒéããããã®çµææµæããããŒããå§ãããã£ã«ã¿ãŒåè·¯ãå¹³æ»åãããªãã·ã§ã³ããããŸãããããã¯èšèšãéåžžã«è€éã«ããŸã SPIãŸãã¯I2Cãä»ããŠããžã¿ã«ããã³ã·ã§ã¡ãŒã¿ã䜿çšãããªãã·ã§ã³ããŸã ãããŸãããã¹ãŠã¯ãã§ã«æå
ã«ãããŸãã
æã¡äžã
ãã¹ãŠãæ£ããæ¥ç¶ãããŠãããã©ããã確èªããŸãã
- Orangepi GPIOããã³ã³ããŒã¿ãŒ
- VGAããã³ã³ãã¥ãŒã¿ãŒãžã®ã³ã³ããŒã¿ãŒïŒã¹ã¬ãŒãïŒ
- ãããªãã£ããã£ã«ãŒãã®AVå
¥åãžã®AVåºåã³ã³ããŒã¿ãŒ
- USBpi USBpiãã£ããã£ã«ãŒã
- OrangepiããATmega8U2 / 16U2 / 32U2ããã
- ãããATmega8U2 / 16U2 / 32U2ãUSBçµç±ã§ã³ã³ãã¥ãŒã¿ãŒïŒã¹ã¬ãŒãïŒçµç±ã§
- SSHçµç±ã®Orangepiãžã®ã³ã³ãã¥ãŒã¿ãŒïŒãã¹ã¿ãŒïŒ
ããã°ã©ã ãå®è¡ãã
Ha Orangepiã¯ãã³ã³ãã€ã«ãããããã°ã©ã ãèµ·åããŸããéããŠããã·ãªã¢ã«ããŒããšããŒã®çµã¿åããã瀺ãç¢æã衚瀺ãããŸãã ãã®ãããªãã®ã

ã¿ã¹ã¯ãããŒãžã£ãŒãåŒã³åºããããã¬ã€ã¢ãŠããå€æŽãããããããŒããŒãã·ã§ãŒãã«ããããããŸããããšãã°ããAlt + Delããšå
¥åããå¿
èŠãããã¿ãŒããã«ã§ãCtrl + Alt + DelããæŒããšãããã°ã©ã ãã¿ãŒããã«ãŠã£ã³ããŠã®äžéšããèµ·åãããšãã«å¯èœãªçµã¿åãããæžã蟌ãŸããŸãã
åã®èšäºãšåæ§ã«ããããªã¯ã¢ãŒã·ã§ã³ã«ãã£ãŠãããŒããã£ã¹ãããã
orangepi:8081
ã§å
¥æã§ããŸãã ããŠãããã§ãçµéšãç¹°ãè¿ãããã«å¿
èŠãªãã¹ãŠã®æ
å ±ãè¿°ã¹ãããããã·ã§ã³ãå®äºããŸããã
èŠçŽãããšïŒ
ãããªè»¢é
ãããªã¯AVå
¥åãä»ããŠéä¿¡ããããããéåžžã«äœå質ã®ãŸãŸã§ããããã³ã³ããŒã¿ãŒã®ãªã¢ãŒãå¶åŸ¡ãå¯èœã«ãªããã¡ãã¥ãŒã§ç®çã®ã¢ã€ãã ãéžæãããšãåã解å床ã§éšåçã«ç»é¢ãèŠãããšãã§ããŸãã
ãããªã®å質ã«é¢ããåé¡ã«ã¯å¯èœãªè§£æ±ºçããããŸãããå¯äžã®å€§ããªæ¬ ç¹ã¯äŸ¡æ Œã§ãïŒ
1.
Velocap U2m USB 2.0 HDMI2.
UVC USB 3.0 HDMIç§ã¯ãããã®ãªãã·ã§ã³ãè©ŠããããšããããŸããããªããªãé«äŸ¡ã ããã§ããèšäºãèªãã 人ã®èª°ãããã£ã³ã¹ãã€ãããããããŸããã
ãããããã€ã³ã³ããŒããç¯çŽããŠOrangepi PCãOrangepi oneãŸãã¯Orangepi Zeroã«å€æŽã§ããŸãããã®ã³ã¹ãã¯çŽ500ã«ãŒãã«ã§ãã ããããOrangepi Zeroã«ã¯åé¡ãããå¯èœæ§ããããŸããããããç°ãªãããã»ããµãç°ãªãã«ãŒãã«ã®ç°ãªããã£ã¹ããªãã¥ãŒã·ã§ã³ããããå¿
èŠãªãã©ã€ããŒãšã¢ãžã¥ãŒã«ãå©çšã§ããªãå¯èœæ§ããããŸããããšãã°ããã¶ãŒããŒãã®é»æºãšãªã»ããã®æ¥ç¹ãéããããã«ãªã¬ãŒãæ¥ç¶ããããšãã§ããŸãã
売äžå䟡
VGA-AVã³ã³ããŒã¿ãŒã¯çŽ700ã«ãŒãã«ã§ãã
ãããªãã£ããã£ã«ãŒãã¯çŽ500ã«ãŒãã«ã§ãã
Orangepi PCçŽ1000rubã
ATmega8U2 / 16U2 / 32U2çŽ150rubã
åèšïŒ 2350ãããã
ããŠããã®èšäºãèªãã ãã¹ãŠã®äººã®ãããã§ããã®èšäºã¯çµãããŸããã å®éã«ããªããæåããããšãé¡ã£ãŠããŸãã èšç»ããŠãããã¹ãŠãå®è¡ããããšã¯ã§ããŸããã§ããããçµæã¯èå³æ·±ããã®ã§ãç¹ã«ãã®ãããªäŸ¡æ Œã§ããã ãã¡ãããåºæ¥äžãã£ãããã€ã¹ã«ã¯æ¹è¯ãå¿
èŠã§ããããŸã ååšããæš©å©ããããšæããŸãã ãã¹ãŠã®ãã¹ããã©ã¯ãã£ã¹ããä¿èšŒãªãã«ãè¯ãæã§ãã®ãŸãŸæäŸããŸãã ãæž
èŽããããšãããããŸããïŒ