Linux2018.05.01 13:04





git clone https://gitlab.com/TeeFirefly/uboot.git

make rk3399_box_defconfig

make ARCHV=aarch64






rkdeveloptool db ./u-boot/rk3399_loader_v1.08.109.bin

rkdeveloptool ul ./u-boot/rk3399_loader_v1.08.109.bin

rkdeveloptool gpt ./emmc/parameter_linux.txt

rkdeveloptool prm ./emmc/parameter_linux.txt





parameter_linux.txt


FIRMWARE_VER: 7.1.1

MACHINE_MODEL: rk3399-box

MACHINE_ID: 007

MANUFACTURER: RK3399

MAGIC: 0x5041524B

ATAG: 0x00200800

MACHINE: 3399

CHECK_MASK: 0x80

PWR_HLD: 0,0,A,0,1

#KERNEL_IMG: 0x00280000

#FDT_NAME: rk-kernel.dtb

#RECOVER_KEY: 1,1,0,20,0

#in section; per section 512(0x200) bytes

CMDLINE: console=ttyFIQ0 root=/dev/mmcblk1p6 rw rootwait mtdparts=rk29xxnand:0x00002000@0x00002000(uboot),0x00002000@0x00004000(trust),0x00008000@0x00006000(resource),0x0000A000@0x0000E000(kernel),0x00002000@0x00018000(backup),-@0x0001A000(boot)  




parameter_android.txt


FIRMWARE_VER: 7.1.1

MACHINE_MODEL: rk3399-box

MACHINE_ID: 007

MANUFACTURER: RK3399

MAGIC: 0x5041524B

ATAG: 0x00200800

MACHINE: 3399

CHECK_MASK: 0x80

PWR_HLD: 0,0,A,0,1

#KERNEL_IMG: 0x00280000

#FDT_NAME: rk-kernel.dtb

#RECOVER_KEY: 1,1,0,20,0

#in section; per section 512(0x200) bytes

CMDLINE: androidboot.baseband=N/A androidboot.selinux=permissive androidboot.hardware=rk30board androidboot.console=ttyFIQ0 init=/init mtdparts=rk29xxnand:0x00002000@0x00002000(uboot),0x00002000@0x00004000(trust),0x00002000@0x00006000(misc),0x00008000@0x00008000(resource),0x0000C000@0x00010000(kernel),0x00010000@0x0001C000(boot),0x00010000@0x0002C000(recovery),0x00038000@0x0003C000(backup),0x00040000@0x00074000(cache),0x00300000@0x000B4000(system),0x00008000@0x003B4000(metadata),0x00002000@0x003BC000(baseparamer),-@0x003BE000(userdata) 



'Linux' 카테고리의 다른 글

AIO 3399J uboot 빌드  (0) 2018.05.01
우분투 업데이트시 fetch fail 날 경우  (0) 2014.06.11
apt-get 명령 정리  (0) 2014.06.11
Ubuntu 시간 설정  (0) 2014.01.01
우분투 시간 설정  (0) 2013.12.28
블루투스 시리얼 포트 설정  (0) 2013.12.11
Posted by chcbaram
분류없음2017.10.18 02:21

OpenOCD를 이용하여 디버깅 할려고 할때 nRF52832는 아직 플래지 지원이 되지 않아 지원되는 버전을 소스를 다시 컴파일해서 사용해야 한다. 


아직은 리눅스에서 가능하고 윈도우용은 찾아 봐야 할 것 같다.





git clone git://git.code.sf.net/p/openocd/code openocd-code


cd openocd-code/ 


./bootstrap
./configure
make
sudo make install

Posted by chcbaram
Robots2017.10.09 23:22

Arduino IDE에 햄스터로봇을 추가하고, Hamster 라이브러리를 이용하여 로봇을 제어 할 수 있다. 아래 예제를 Arduino 스케치로 작성하고 실행하며, 햄스터로봇이 손바닥과의 일정 거리를 유지하면서 움직이는것을 볼 수 있다. 
Hamster 라이브러리는 기존의 hamster의 api를 포팅하였음으로 기존의 예제들을 대부분 사용 할 수 있다. 


hamster 라이브러리에서 구현된 함수는 아래와 같다. 모든 api 함수가 포팅된것은 아님으로 주의가 필요하다. 

// API
//
void wheels(double leftSpeed, double rightSpeed);
void leftWheels(double speed);
void rightWheels(double speed);
void stop(void);
void leds(int leftColor, int rightColor);
void leftLed(int color);
void rightLed(int color);
void beep();
void buzzer(double hz);
int leftFloor(void);
int rightFloor(void);
int leftProximity(void);
int rightProximity(void);
int accelerationX(void);
int accelerationY(void);
int accelerationZ(void);
int light(void);
int temperature(void);

 




주의할 점은 hamster.begin 함수의 파라메터로 햄스터 로봇 제어를 위한 USB 동글의 시리얼포트를 입력해 주어야한다. 시리얼 포트 번호를 연결되는 PC마다 다를 수 있기때문에 확인 후에 해당 번호로 입력한다.


#include <hamster.h>


Hamster hamster;



void setup() {

  // put your setup code here, to run once:

  hamster.begin("COM16");

}


void loop() {

  int left;

  int right;

  int length;

  int error;

  int error_handle;

  int motor_speed = 0;

  int l_speed = 0;

  int r_speed = 0;

  int speed_control_out;

  int handle_control_out;

  int error_margin = 3;


  

  left  = hamster.leftProximity();

  right = hamster.rightProximity(); 

  length = left+right / 2;


  error = 60 - length;

  speed_control_out = error / 1;

  if (speed_control_out < error_margin && speed_control_out > -error_margin)

  {

    speed_control_out = 0;

  }

  

  error_handle = (left - right);

  handle_control_out = error_handle / 1;

  if (handle_control_out < error_margin && handle_control_out > -error_margin)

  {

    handle_control_out = 0;

  }

  

  l_speed = speed_control_out - handle_control_out;

  r_speed = speed_control_out + handle_control_out;


  l_speed = constrain(l_speed, -100, 100);

  r_speed = constrain(r_speed, -100, 100);


  if (length == 0)

  {

    l_speed = 0;

    r_speed = 0;

  }

  Serial.print(length);

  Serial.print(" ");  

  Serial.print(error);

  Serial.print(" ");

  Serial.print(speed_control_out);

  Serial.print(" ");

  Serial.print(handle_control_out);

  Serial.print(" ");

  Serial.print(motor_speed);

  Serial.println("");


  hamster.wheels(l_speed, r_speed);

  delay(20);








'Robots' 카테고리의 다른 글

[햄스터로봇] 손따라가기 예제  (0) 2017.10.09
[햄스터로봇] Arduino 하드웨어 설치  (0) 2017.10.09
외골격 로봇  (0) 2017.07.06
Posted by chcbaram