자신의 손으로 세그웨이를 만드는 법. DIY 세그웨이. 전자 부품 수집

Arduino를 사용하여 세그웨이처럼 균형을 잡는 로봇을 만드는 방법에 대해 이야기해 보겠습니다.

영어로 세그웨이. 세그웨이(Segway)는 전기 구동 장치를 갖춘 2륜 스탠딩 차량입니다. 호버보드 또는 전기 스쿠터라고도 합니다.

세그웨이가 어떻게 작동하는지 궁금한 적이 있나요? 이 튜토리얼에서는 세그웨이처럼 스스로 균형을 잡는 Arduino 로봇을 만드는 방법을 보여 드리겠습니다.

로봇의 균형을 맞추려면 모터가 로봇이 떨어지는 것을 막아야 합니다. 이 조치에는 피드백과 수정 요소가 필요합니다. 피드백 요소 - 세 축 모두에서 가속도와 회전을 모두 제공합니다(). Arduino는 이를 사용하여 로봇의 현재 방향을 파악합니다. 교정 요소는 엔진과 휠의 조합입니다.

최종 결과는 다음과 같아야 합니다.

로봇 다이어그램

L298N 모터 드라이버 모듈:

바퀴가 달린 DC 기어 모터:

자체 균형 로봇은 본질적으로 역진자입니다. 휠 축에 비해 질량 중심이 더 높으면 균형이 더 잘 잡힐 수 있습니다. 질량 중심이 높다는 것은 질량의 관성 모멘트가 높다는 것을 의미하며, 이는 각가속도가 낮다(느린 낙하)에 해당합니다. 그래서 우리는 배터리 팩을 위에 올려 놓았습니다. 하지만 로봇의 높이는 재료의 가용성에 따라 선택되었습니다 :)

자체 균형 로봇의 완성된 버전은 위 그림에서 볼 수 있습니다. 상단에는 전원용 Ni-Cd 배터리 6개가 있습니다. 인쇄 회로 기판. 모터 사이에는 모터 드라이버용으로 9볼트 배터리가 사용된다.

이론

제어 이론에서 일부 변수(이 경우 로봇의 위치)를 유지하려면 PID(비례 적분 미분)라는 특수 컨트롤러가 필요합니다. 이러한 각 매개변수에는 일반적으로 Kp, Ki 및 Kd라고 하는 "이득"이 있습니다. PID는 원하는 값(또는 입력)과 실제 값(또는 출력) 사이의 수정을 제공합니다. 입력과 출력의 차이를 "오류"라고 합니다.

PID 컨트롤러는 출력을 지속적으로 조정하여 오류를 가능한 가장 작은 값으로 줄입니다. 우리의 자기 균형에서 아두이노 로봇입력(원하는 각도 단위의 기울기)은 소프트웨어에 의해 설정됩니다. MPU6050은 로봇의 현재 기울기를 읽고 이를 PID 알고리즘에 공급합니다. PID 알고리즘은 모터를 제어하고 로봇을 수직으로 유지하기 위한 계산을 수행합니다.

PID를 사용하려면 Kp, Ki 및 Kd 값을 최적의 값으로 조정해야 합니다. 엔지니어는 MATLAB과 같은 소프트웨어를 사용하여 이러한 값을 자동으로 계산합니다. 불행하게도 우리의 경우에는 MATLAB을 사용할 수 없습니다. 왜냐하면 프로젝트가 더욱 복잡해지기 때문입니다. 대신 PID 값을 조정하겠습니다. 수행 방법은 다음과 같습니다.

  1. Kp, Ki 및 Kd를 0으로 만듭니다.
  2. Kp를 조정합니다. Kp가 너무 작으면 수정이 충분하지 않아 로봇이 추락하게 됩니다. Kp가 너무 많으면 로봇이 앞뒤로 격렬하게 움직입니다. Kp가 좋으면 로봇이 꽤 많이 앞뒤로 움직이게 됩니다(또는 약간 진동하게 됩니다).
  3. Kp가 설정되면 Kd를 조정합니다. 좋은 가치 Kd는 로봇이 거의 안정될 때까지 진동을 줄입니다. 또한 올바른 Kd는 로봇을 밀어도 로봇을 잡아줍니다.
  4. 마지막으로 Ki를 설치합니다. 전원을 켜면 Kp 및 Kd가 설정되어 있어도 로봇이 진동하지만 시간이 지나면 안정화됩니다. 올바른 Ki 값은 로봇을 안정화하는 데 필요한 시간을 줄여줍니다.

로봇의 행동은 아래 비디오에서 볼 수 있습니다.

자가 균형 로봇을 위한 Arduino 코드

로봇을 만들려면 4개의 외부 라이브러리가 필요했습니다. PID 라이브러리는 P, I 및 D 값의 계산을 단순화합니다. LMotorController 라이브러리는 L298N 모듈로 두 개의 모터를 제어하는 ​​데 사용됩니다. I2Cdev 라이브러리와 MPU6050_6_Axis_MotionApps20 라이브러리는 MPU6050에서 데이터를 읽도록 설계되었습니다. 이 저장소에서 라이브러리를 포함한 코드를 다운로드할 수 있습니다.

#포함하다 #포함하다 #include "I2Cdev.h" #include "MPU6050_6Axis_MotionApps20.h" #if I2CDEV_IMPLEMENTATION == I2CDEV_ARDUINO_WIRE #include "Wire.h" #endif #define MIN_ABS_SPEED 20 MPU6050 mpu; // MPU 제어/상태 vars bool dmpReady = false; // DMP 초기화가 성공하면 true로 설정 uint8_t mpuIntStatus; // MPU의 실제 인터럽트 상태 바이트를 보유합니다. uint8_t devStatus; // 각 장치 작업 후 상태를 반환합니다(0 = 성공, !0 = 오류) uint16_t packetSize; // 예상 DMP 패킷 크기(기본값은 42바이트) uint16_t fifoCount; // 현재 FIFO에 있는 모든 바이트 수 uint8_t fifoBuffer; // FIFO 저장 버퍼 // 방향/모션 변수 쿼터니언 q; // 쿼터니언 컨테이너 VectorFloat 중력; // 중력 벡터 float ypr; //요/피치/롤 컨테이너 및 중력 벡터 //PID double originalSetpoint = 173; 이중 설정점 = 원본 설정점; double MovingAngleOffset = 0.1; 이중 입력, 출력; //자신의 디자인에 맞게 이 값을 조정합니다. double Kp = 50; 이중 Kd = 1.4; 이중 Ki = 60; PID pid(&input, &output, &setpoint, Kp, Ki, Kd, ​​​​DIRECT); 이중 모터SpeedFactorLeft = 0.6; 이중 모터SpeedFactorRight = 0.5; //모터 컨트롤러 int ENA = 5; int IN1 = 6; int IN2 = 7; int IN3 = 8; int IN4 = 9; int ENB = 10; LMotorController motorController(ENA, IN1, IN2, ENB, IN3, IN4, motorSpeedFactorLeft, motorSpeedFactorRight); 휘발성 bool mpuInterrupt = false; // MPU 인터럽트 핀이 하이가 되었는지 여부를 나타냅니다. void dmpDataReady() ( mpuInterrupt = true; ) void setup() ( // I2C 버스에 연결합니다(I2Cdev 라이브러리는 이 작업을 자동으로 수행하지 않습니다) #if I2CDEV_IMPLEMENTATION == I2CDEV_ARDUINO_WIRE Wire.begin( ); TWBR = 24; // 400kHz I2C 클록(CPU가 8MHz인 경우 200kHz) #elif I2CDEV_IMPLEMENTATION == I2CDEV_BUILTIN_FASTWIRE Fastwire::setup(400, true); // 여기에 자체 자이로 오프셋을 제공합니다. , 최소 감도에 맞게 조정됨 mpu.setXGyroOffset(-85); mpu.setZAccelOffset(1788); 칩이 작동하는지 확인하세요(그렇다면 0을 반환) if ​​(devStatus == 0) ( // 이제 준비되었으므로 DMP를 켭니다. mpu.setDMPEnabled(true); // Arduino 인터럽트 감지를 활성화합니다Interrupt(0 , dmpDataReady, RISING); mpuIntStatus = mpu.getIntStatus(); // DMP 준비 플래그를 기본 설정으로 설정합니다. loop() 함수는 "사용해도 괜찮다"는 것을 알고 있습니다. dmpReady = true; // 나중에 비교하기 위해 예상되는 DMP 패킷 크기를 가져옵니다. packetSize = mpu.dmpGetFIFOPacketSize(); //PID 설정 pid.SetMode(AUTOMATIC); pid.SetSampleTime(10); pid. SetOutputLimits(-255, 255); ) else ( // 오류! // 1 = 초기 메모리 로드 실패 // 2 = DMP 구성 업데이트 실패 // ("중단될 경우 일반적으로 코드는 1입니다) Serial.print(F("DMP 초기화 failed (code ")); Serial.print(devStatus); Serial.println(F()")); ) ) void loop() ( // 프로그래밍이 실패하면 아무것도 시도하지 마세요. if (!dmpReady ) return; // MPU 인터럽트 또는 사용 가능한 추가 패킷을 기다립니다. while (!mpuInterrupt && fifoCount< packetSize) { //no mpu data - performing PID calculations and output to motors pid.Compute(); motorController.move(output, MIN_ABS_SPEED); } // reset interrupt flag and get INT_STATUS byte mpuInterrupt = false; mpuIntStatus = mpu.getIntStatus(); // get current FIFO count fifoCount = mpu.getFIFOCount(); // check for overflow (this should never happen unless our code is too inefficient) if ((mpuIntStatus & 0x10) || fifoCount == 1024) { // reset so we can continue cleanly mpu.resetFIFO(); Serial.println(F("FIFO overflow!")); // otherwise, check for DMP data ready interrupt (this should happen frequently) } else if (mpuIntStatus & 0x02) { // wait for correct available data length, should be a VERY short wait while (fifoCount < packetSize) fifoCount = mpu.getFIFOCount(); // read a packet from FIFO mpu.getFIFOBytes(fifoBuffer, packetSize); // track FIFO count here in case there is >사용 가능한 패킷 1개 // (이렇게 하면 인터럽트를 기다리지 않고 즉시 더 많은 내용을 읽을 수 있습니다.) fifoCount -= packetSize; mpu.dmpGetQuaternion(&q, fifoBuffer); mpu.dmpGetGravity(&gravity, &q); mpu.dmpGetYawPitchRoll(ypr, &q, &gravity); 입력 = ypr * 180/M_PI + 180; ) )

Kp, Ki, Kd 값은 작동할 수도 있고 작동하지 않을 수도 있습니다. 그렇지 않은 경우 위의 단계를 따르세요. 코드의 기울기는 173도로 설정되어 있습니다. 원하는 경우 이 값을 변경할 수 있지만 이는 로봇이 유지해야 하는 기울기 각도라는 점에 유의하세요. 또한 모터가 너무 빠른 경우 motorSpeedFactorLeft 및 motorSpeedFactorRight 값을 조정할 수 있습니다.

지금은 그게 전부입니다. 또 봐요.

우리에게 무엇이 필요합니까? 먼저 복부 운동 기구의 바퀴를 살펴보겠습니다. 기어박스 12V 및 160rpm. 15,000밀리암페어 시간 동안 사용할 수 있는 보조 배터리. 차량을 제어할 수 있도록(즉, 우회전 또는 좌회전, 가속 및 감속) 가능하도록 집에서 만든 잔디 깎는 기계 제조에 이미 사용한 모듈을 사용할 것입니다. 이렇게 하면 엔진 속도를 조절할 수 있습니다. 따라서 모듈 2개, 엔진 2개, 파워뱅크 2개입니다.

두 세트는 별도로 작동합니다. 오른쪽 엔진에 속도를 추가한다고 가정하면 세그웨이는 왼쪽으로 회전합니다. 똑같은 일이지만 우회전할 때 미러링됩니다. 두 개의 모터에 동시에 속도를 추가하면 제품이 가속됩니다.

먼저 기어박스를 설치해보겠습니다. 이렇게하려면 중앙에 적용하십시오. 합판 시트, 윤곽선을 추적하고 커터를 사용하여 오목한 부분을 만듭니다. 왼쪽에 기어박스를 부착한 것과 같은 방법으로 반대쪽에도 부착합니다.

이 막대 중 몇 개를 잘라내어 측면에 나사로 고정해야 합니다. 이는 합판이 처지지 않도록 하기 위해 필요합니다.
바퀴를 제거하고 축에 올려 놓습니다. 보시다시피 그들은 서로 다릅니다. 먼저 나무 부싱 두 개를 만들어야 합니다. 우리는 집에서 만든 것을 사용할 것입니다 선반나무에. 결과는 두 개의 나무 공백이었습니다.

공작물을 삽입하십시오. 구멍을 뚫고 공작물을 붙입니다. 에폭시 수지. (저자는 영상 마지막 부분에서 수정을 했습니다. 아래를 읽어보세요).

이제 운전대를 만들어 보겠습니다. 이를 위해 우리는 조각을 사용할 것입니다 하수관. 우리는 시뮬레이터에서 핸들을 가져왔습니다. 합판 윗부분에 구멍을 뚫고 파이프와 손잡이를 고정해 줍니다. 세그웨이의 핸들바는 약간 경사져 있어야 하므로 경사진 합판에 구멍을 뚫고 플라스틱 파이프를 잘라냈습니다.

모든 제어 모듈은 스티어링 휠에 설치됩니다. 스티어링 휠에서 기어박스까지 8개의 전선을 늘려야 합니다. 위에서 튀어나오는 것을 방지하기 위해 먼저 관통 구멍파이프에 전선을 삽입하십시오.

이제 다시 에폭시 수지로 모든 것을 접착하고 24시간을 기다려야 합니다. 바퀴는 변형된 것으로 밝혀졌으며 에폭시는 그다지 신뢰할 만한 재료가 아닌 것으로 밝혀졌습니다. 기어박스를 분해하고 샤프트를 제거한 후 나사산을 자릅니다. 나무 부싱에도 구멍을 뚫었습니다. 금속 부싱을 삽입했는데 이제 모든 것이 훨씬 더 안정적으로 보입니다. 바퀴는 매우 단단히 조여질 수도 있습니다. 플라스틱 파이프완전히 신뢰할 수 있는 것 같지는 않았습니다. 내부에 삽 손잡이를 삽입하여 강화했습니다.

우리는 패널에 2개의 모듈을 넣었습니다. 저항기를 설치하려면 파이프에 구멍을 뚫어야 합니다. 남은 것은 글루건을 사용하여 버튼을 붙이는 것뿐입니다. 모듈, 기어박스 및 보조 배터리에 전선을 배선합니다. 바퀴를 조이세요.

전선을 잘못 연결하는 것을 두려워하는 사람들을 위해 모든 것이 모듈에 자세히 설명되어 있습니다.

세그웨이에는 자전거 속도계도 있습니다. 수제 세그웨이의 테스트 버전이 준비되었습니다. 테스트해보자.

자신의 손과 힘으로 집에서 호버보드나 미니 세그웨이를 만드는 것이 불가능하다고 생각한다면 큰 착각입니다. 이상하게도 많은 장인이 호버보드를 만드는 동영상이 인터넷에 많이 있습니다. 어떤 사람들에게는 매우 집에서 만든 것으로 판명되었지만 창조 기술 자체에 실제로 더 가까워지고 정말 흥미롭고 고품질의 것을 재현할 수 있었던 사람들도 있습니다. 그렇다면 자신의 손으로 호버보드를 만드는 것이 가능할까요? 엔지니어이자 좋은 사람인 Adrian Kundert가 이에 대해 알려줄 것입니다.

호버보드란 무엇입니까?

자신의 손으로 호버보드를 만드는 방법은 무엇입니까? 수제 호버보드를 만드는 방법을 이해하려면 먼저 호버보드가 무엇인지, 구성 요소는 무엇인지, 이 흥미로운 교통 수단을 만드는 데 필요한 것이 무엇인지 이해해야 합니다. 호버보드는 자이로스코프 센서 시스템을 기반으로 하는 작동 원리를 갖춘 자체 균형 차량입니다. 내부 기술작업 플랫폼의 균형을 유지합니다. 즉, 호버보드를 켜면 밸런싱 시스템도 켜집니다. 사람이 호버보드 위에 서면 플랫폼의 위치가 변경되기 시작합니다. 이 정보는 자이로스코프 센서에 의해 판독됩니다.

이 센서는 지구 표면이나 중력 영향이 발생하는 지점에 대한 위치 변화를 읽습니다. 읽은 후 정보는 플랫폼 양쪽에 있는 보조 보드로 전송됩니다. 센서와 전기 모터 자체가 서로 독립적으로 작동하기 때문에 앞으로는 두 개의 전기 모터가 필요할 것입니다. 보조 보드에서 처리된 형태의 정보는 이미 마이크로프로세서를 통해 마더보드로 전달됩니다. 그곳에서는 균형 유지 프로그램이 이미 필요한 정확도로 수행되었습니다.

즉, 플랫폼이 앞으로 몇 도 정도 기울면 모터에 반대 방향으로 움직이라는 신호가 주어지고 플랫폼이 수평을 유지하게 됩니다. 다른 방향의 틸트도 수행됩니다. 호버보드가 더 많이 기울어지면 프로그램은 전기 모터를 앞뒤로 움직이라는 명령이 있음을 즉시 이해합니다. 호버보드가 45도 이상 기울어지면 모터와 호버보드 자체가 꺼집니다.

호버보드는 본체, 강철 또는 금속 베이스로 구성되며 모든 전자 장치가 부착됩니다. 그런 다음 최대 80-90kg의 사람의 체중으로 운전할 수 있을 만큼 충분한 전력을 가진 두 개의 전기 모터가 있습니다. 다음은 자이로스코프 센서가 있는 두 개의 보조 보드와 프로세서가 있는 마더보드입니다. 물론 동일한 직경의 배터리와 두 개의 바퀴도 포함됩니다. 호버보드를 만드는 방법? 이 문제를 해결하려면 호버보드 자체의 특정 디자인 세부 정보를 얻어야 합니다.

우리에게 무엇이 필요합니까?

자신의 손으로 호버보드를 만드는 방법은 무엇입니까? 가장 먼저 필요한 것은 두 가지입니다. 모터, 어른의 무게를 지탱할 수 있는 힘을 가지고 있습니다. 공장 모델의 평균 전력은 350W이므로 이 전력의 엔진을 찾으려고 노력할 것입니다.

다음으로, 대략 10-12인치 크기의 동일한 두 개의 바퀴를 찾아야 합니다. 전자제품이 많기 때문에 더 많은 것이 좋습니다. 크로스컨트리 능력이 더 높고 플랫폼과 지면 사이의 거리가 필요한 수준이 되도록 합니다.

납산 배터리 2개, 최소 4400mAh 이상의 정격 전력을 선택해야 합니다. 우리는하지 않을 것이기 때문에 금속 구조, 그러나 원래의 미니 세그웨이나 호버보드보다 무게가 더 나갑니다.

생산 및 공정

강력하고 라이딩 중에 균형을 유지할 수 있는 호버보드를 만드는 방법은 무엇입니까? 먼저 어떤 종류의 차량이 필요할지 계획을 세워야 합니다. 우리는 큰 바퀴와 뛰어난 크로스컨트리 능력을 갖춘 상당히 강력한 차량을 만들어야 합니다. 다른 도로. 연속 운전의 최소값은 1~1.5시간이어야 합니다. 우리는 약 500 유로를 쓸 것입니다. 호버보드에 무선 제어 시스템을 설치해 보겠습니다. 문제 및 오류에 대한 판독 장치를 설치하고 모든 정보는 SD 카드로 이동합니다.

호버보드 다이어그램

위의 다이어그램에서는 전기 모터, 배터리 등 모든 것을 명확하게 볼 수 있습니다. 먼저 제어를 수행할 마이크로컨트롤러를 정확하게 선택해야 합니다. 시중의 모든 Arduino 마이크로 컨트롤러 중에서 우리는 UnoNano를 선택하고 ATmega 328은 추가 정보 처리 칩 역할을 합니다.

하지만 호버보드를 안전하게 만드는 방법은 무엇일까요? 두 개의 배터리를 직렬로 연결하여 필요한 전압을 얻습니다. 전기 모터의 경우 이중 브리지 회로가 바로 필요합니다. 준비 버튼이 설치되고, 누르면 엔진에 전원이 공급됩니다. 이 버튼을 누르면 모터와 호버보드 자체가 꺼집니다. 이는 운전자 자신과 차량의 안전 운전을 위해 필요합니다.

Arduino 마이크로컨트롤러는 XBee 회로와의 직렬 통신을 사용하여 약 38400보드로 실행됩니다. GY-521 모듈을 기반으로 하는 두 개의 InvenSense MPU 6050 자이로 센서를 사용합니다. 그러면 그들은 플랫폼 위치에 대한 정보를 읽게 됩니다. 이 센서는 미니 세그웨이를 만들 수 있을 만큼 정확합니다. 이러한 센서는 기본 처리를 수행하는 두 개의 추가 보조 보드에 위치합니다.

우리는 I2C 버스를 사용할 것입니다. 처리량 Arduino 마이크로 컨트롤러와 빠르게 통신합니다. 주소가 0x68인 자이로스코프 센서의 정보 업데이트 속도는 15ms에 한 번입니다. 두 번째 주소 센서 0x68은 마이크로 컨트롤러에서 직접 작동합니다. 또한 플랫폼이 수평 위치에 있을 때 호버보드를 균형 모드로 전환하는 로드 스위치도 있습니다. 이 모드에서는 호버보드가 제자리에 유지됩니다.

나무 부품, 바퀴와 전기 모터가 위치할 것입니다. 스티어링 칼럼은 일반 나무 막대로 만들어지며 호버보드 자체의 전면에 부착됩니다. 여기서는 어떤 막대기든, 심지어 대걸레 손잡이까지 가져갈 수 있습니다. 배터리 및 기타 회로가 플랫폼에 압력을 가하므로 더 많은 압력이 가해지는 부분에서 균형이 약간 재구성된다는 사실을 고려해야 합니다.

엔진은 플랫폼의 오른쪽과 왼쪽에 균등하게 배치되어야 하며, 배터리는 특수 상자의 중앙에 최대한 배치되어야 합니다. 스티어링 포스트를 일반적인 페인트에 부착하고 준비 버튼을 스틱 상단에 부착합니다. 즉, 문제가 발생하여 버튼을 누르면 호버보드가 꺼집니다. 앞으로 이 버튼을 발 부분으로 변환하거나 플랫폼 자체의 특정 기울기에 맞게 조정할 수 있지만 지금은 그렇게 하지 않을 것입니다.

모든 전선의 내부 회로와 납땜은 동일한 방식으로 수행됩니다. 다음으로 이 표에 따라 모터가 있는 브리지 회로를 사용하여 두 개의 자이로스코프 센서를 마이크로컨트롤러에 연결해야 합니다.

밸런싱 센서는 지면과 평행하게 설치하거나 플랫폼 자체를 따라 설치해야 하며, 우회전 및 좌회전 센서는 자이로스코프 센서와 수직으로 설치해야 합니다.

센서 구성

다음으로 마이크로 컨트롤러를 구성하고 소스 코드를 다운로드합니다. 다음으로 자이로스코프 센서와 회전 센서 간의 올바른 관계를 확인해야 합니다. Arduino 터미널 프로그램을 사용하여 호버보드를 프로그래밍하고 구성합니다. PID 밸런스 컨트롤러를 구성해야 합니다. 사실은 다양한 출력과 특성을 가진 엔진을 선택할 수 있기 때문에 튜닝도 달라집니다.

이 프로그램에는 몇 가지 옵션이 있습니다. 첫 번째로 가장 중요한 매개변수는 Kp 매개변수이며 균형을 담당합니다. 먼저 호버보드를 불안정하게 만들기 위해 이 표시기를 늘린 다음 표시기를 원하는 매개변수로 줄입니다.

다음 매개변수는 Ki 매개변수이며 호버보드의 가속을 담당합니다. 경사각이 감소함에 따라 역동작에서는 속도가 감소하거나 증가합니다. 마지막 매개변수는 Kd 매개변수입니다. 플랫폼 자체를 수평 위치로 되돌리고 엔진을 정지 모드로 전환합니다. 이 모드에서는 호버보드가 가만히 서 있습니다.

다음으로 전원 버튼을 켜세요 아두이노 마이크로컨트롤러호버보드는 대기 모드로 들어갑니다. 호버보드 자체에 올라선 후 푸시 버튼 위에 발을 올려놓고 서면 호버보드가 "정지" 모드로 전환됩니다. 밸런싱 센서가 켜지고 경사각이 바뀌면 호버보드가 앞뒤로 움직입니다. 고장이 발생한 경우 호버보드를 직접 쉽게 수리할 수 있습니다.

호버보드 내부

주요 내용

호버보드는 무엇으로 구성되나요? 외부에서 보면 호버보드는 흥미로운 장치입니다. 첫 번째는 작업 플랫폼이나 보드입니다. 사람이 서서 균형을 유지하려고 노력하고 조종하거나 타거나 넘어지는 것이 바로 이것입니다. 플랫폼 측면에는 두 개의 바퀴가 있는데, 이를 통해 우리는 타고 앞으로 또는 뒤로 이동할 수 있습니다.

먼저 플랫폼을 살펴보겠습니다. 작업 플랫폼은 오른쪽 부분과 왼쪽 부분의 두 부분으로 나뉩니다. 오른쪽과 왼쪽 발에 딱 맞습니다. 이는 이러한 플랫폼에서 발가락을 누르는 것만으로 오른쪽이나 왼쪽으로 회전할 수 있도록 수행되었습니다.

호버보드는 어떻게 작동하나요?

미니 세그웨이 장치

바퀴

측면에는 바퀴가 2개 있습니다. 일반적으로 호버보드는 4가지 유형으로 제공되며 클래스와 휠 크기가 다릅니다. 호버보드의 첫 번째 클래스는 직경 4.5인치의 바퀴가 달린 어린이용 호버보드입니다. 바퀴의 작은 크기로 인해 호버보드는 도로의 일부 지역에서 매우 불편하고 통행이 불가능합니다.

다음 클래스는 6.5인치 호버보드입니다. 이미 휠 직경이 더 크지만 여전히 주행용으로만 설계되었습니다. 평평한 표면. 8인치 호버보드는 모든 호버보드 중 황금률을 자랑합니다. 그는 최적의 크기거의 모든 도로를 이동할 수 있는 바퀴.

그리고 가장 큰 것은 모든 미니 세그웨이 중 SUV인 10인치 호버보드입니다. 이 모델은 흥미로운 기능, 게다가 큰 바퀴, 이 바퀴에는 챔버 시스템이 있습니다. 즉, 바퀴는 팽창 가능하고 승차감이 더 부드러우며 이러한 호버보드는 작은 프로토타입보다 내마모성이 더 좋습니다.

액자

모든 호버보드의 본체는 다음과 같이 만들어집니다. 다른 재료, 그러나 동일한 기능을 가지고 있습니다. 하우징은 모든 곳에서 바퀴를 덮어 물 튀김, 먼지, 물, 눈 및 먼지로부터 바퀴를 보호합니다. 작은 바퀴 4.5와 6이 있는 호버보드는 일반적으로 일반 플라스틱으로 만들어집니다. 이 모델은 평지 주행용으로 설계되었기 때문에 이러한 기능을 개발하지 않았습니다. 고속, 엔지니어들은 값 비싼 플라스틱을 설치하지 않기로 결정하여 호버 보드 가격을 인상하지 않았습니다.

8인치 바퀴가 달린 호버보드의 경우 몸체는 다음과 같습니다. 다양한 재료, 단순한 플라스틱과 충격에 강한 탄소 마그네슘 플라스틱으로 만들어졌습니다. 이러한 플라스틱은 거의 모든 물리적 충격과 충격을 견딜 수 있습니다. 예를 들어 탄소도 마찬가지입니다. 경량 소재, 이를 통해 전기 모터의 부하를 줄이고 배터리 방전 속도를 줄입니다.

엔진

커버를 제거하면 휠에 가까운 측면에 전기 모터가 보입니다. 전기 모터는 용량이 다양합니다. 모든 미니 세그웨이의 평균은 양쪽 바퀴 모두 700와트입니다. 또는 바퀴당 350와트입니다. 사실 호버보드의 전기 모터는 서로 독립적으로 작동합니다. 한 바퀴는 한 속도로 움직일 수 있고 다른 바퀴는 다른 속도로 움직일 수 있습니다. 또는 한 바퀴는 뒤로, 다른 바퀴는 앞으로 다른 방향으로 움직일 수 있습니다. 따라서 이 시스템은 호버보드 제어 가능성을 제공합니다.

고속에서는 코너링에 더욱 민감해집니다. 360도 회전도 가능합니다. 엔진 출력이 높을수록 운반되는 부하도 높아지고 속도도 높아지지만 항상 그런 것은 아닙니다. 플랫폼에 가해지는 하중의 질량이 높을수록 속도는 낮아지고 배터리 방전 속도는 빨라진다는 점을 이해해야 합니다. 따라서 강력한 엔진을 갖춘 호버보드는 더 비쌉니다.

밸런싱 시스템

밸런싱 시스템은 꽤 많은 구성 요소로 구성되어 있습니다. 우선, 이는 플랫폼의 오른쪽과 왼쪽에 위치한 두 개의 자이로스코프 센서입니다. 하우징 커버를 제거하면 두 개의 보조 보드를 볼 수 있으며 자이로스코프 센서가 연결되어 있습니다. 보조 보드는 정보를 처리하고 이를 프로세서로 보내는 데 도움을 줍니다.

오른쪽에는 32비트 프로세서가 있고 모든 제어와 계산이 수행되는 메인 보드가 있습니다. 오른쪽이나 왼쪽 플랫폼의 변화에 ​​반응하는 프로그램도 있습니다.

플랫폼이 앞으로 기울면 정보를 처리한 프로세서가 보드를 수평 위치에 물리적으로 고정하는 전기 모터에 신호를 보냅니다. 그러나 특정 압력으로 플랫폼이 더 기울어지면 바퀴가 즉시 앞뒤로 움직이기 시작합니다.

현재의 모든 호버보드에는 자이로스코프 센서용 보조 보드 2개와 프로세서가 위치한 메인 보드 1개가 있어야 한다는 점을 기억하는 것이 중요합니다. 이전 모델에는 2보드 시스템이 있을 수 있지만 2015년 가을부터 표준이 변경되어 이제 모든 호버보드와 미니 세그웨이가 3보드로 만들어집니다.

중국산 가짜나 품질이 낮은 호버보드에는 메인 보드인 하나의 보드가 있을 수 있습니다. 불행하게도 이 미니 세그웨이는 취급 특성이 좋지 않습니다. 드라이버가 진동하거나 넘어질 수 있습니다. 그리고 결과적으로 전체 시스템이 완전히 실패할 수 있습니다.

계획 내부 장치호버보드 조종은 생각보다 어렵지 않습니다. 전체 시스템은 플랫폼의 모든 동작에 최대한 신속하게 응답하도록 설계되었습니다. 계산은 찰나의 순간에 놀라울 정도로 정확하게 이루어집니다.

배터리

호버보드의 전원 공급 시스템은 두 개 이상의 배터리로 구동됩니다. 표준에서 저렴한 모델일반적으로 4400mAh 용량의 배터리를 설치합니다. 배터리는 전체 시스템의 작동과 전력 공급을 담당하므로 배터리는 품질이 좋고 브랜드가 확실한 것이어야 합니다. 일반적으로 삼성과 LG 두 가지 브랜드의 배터리가 사용됩니다.

배터리도 등급에 따라 다릅니다. 클래스 1C, 2C의 저수준 배터리가 있습니다. 이러한 배터리는 일반적으로 4.5인치 및 6.5인치 바퀴가 있는 호버보드에 설치됩니다. 모두 같은 이유입니다. 이 호버보드는 매끄러운 도로, 매끄러운 아스팔트, 대리석 또는 바닥용으로 설계되었기 때문입니다.

8인치 휠이 장착된 호버보드는 일반적으로 중급 3C 배터리를 사용합니다. 이는 보다 안정적인 배터리 모델입니다. 급정차 시나 연석이나 구멍에 부딪혀도 꺼지지 않습니다.

바퀴가 큰 10인치 모델에는 일반적으로 5C급 배터리가 사용됩니다. 이 호버보드는 거의 모든 도로, 지면, 웅덩이 또는 구덩이에서 주행할 수 있습니다. 따라서 배터리의 신뢰성이 더욱 높아져야 합니다.

호버보드의 기본 원리는 균형을 유지하는 것입니다. 운전자의 무게가 크면 호버보드를 조종하고 움직이려면 더 많은 전력이 필요합니다.

다른

많은 호버보드에는 Bluetooth 시스템과 스피커도 있습니다. 이를 통해 좋아하는 음악을 듣고 친구들과 함께 라이딩을 즐길 수 있습니다. 하지만 이 시스템을 사용하면 스마트폰을 호버보드에 연결하고 차량 상태를 모니터링하는 것도 가능합니다. 평균 속도를 모니터링하고 얼마나 멀리 주행했는지 확인할 수 있습니다. 최대 허용 속도 등을 설정하십시오.

더 많은 모델에는 백라이트가 있어 어둠 속에서 길을 밝혀주고 음악에 맞춰 밝게 깜박일 수도 있습니다. 하지만 음악과 조명은 배터리를 많이 소모한다는 점을 기억해야 합니다. 많은 사람들이 파워 리저브를 늘리기 위해 백라이트를 완전히 끄고 있습니다.

결론

호버보드는 작고 가벼우면서도 빠르고 강력하며 내구성이 뛰어나도록 설계되었습니다. 가장 중요한 것은 탑승에 실패한 후 분해할 필요가 없도록 필요한 모든 문서를 갖춘 신뢰할 수 있는 공급업체로부터 호버보드를 구입하는 것입니다.

안녕하세요 여러분 브레이니악스! 나의 새로운 두뇌 프로젝트에서 나는 자기 균형을 이루는 두뇌 프로젝트를 만들 것입니다. 차량아니면 세그웨이. 이 프로젝트에는 전자공학에 대한 기본 지식과 수동 작업 능력이 필요합니다. 모든 기계 부품은 온라인이나 가까운 매장에서 구입할 수 있습니다.

SEGWAY는 똑바로 서 있는 플랫폼과 배터리로 구동되는 양면 전기 모터로 구성됩니다. 제어 컨트롤러 알고리즘은 안정적인 위치를 보장합니다. 세그웨이의 움직임은 운전자가 몸통을 기울여 제어하고 핸들을 사용하여 이동 방향을 왼쪽/오른쪽으로 선택합니다. 따라서 컨트롤러, 모터 드라이브, 가속도 센서/자이로스코프와 같은 추가 구성 요소가 필요합니다. 기계 설계나무로 만든 이유는 가볍고, 전기적으로 절연되어 있고, 작업하기 쉽기 때문입니다. 이제 세그웨이 만들기를 시작해 볼까요!

1단계: 프로젝트의 기본 특성

이 프로젝트에서는 다음과 같은 특성을 가진 장치를 제조해야 합니다.

— 거리 주행은 물론이고 도로 주행에도 충분한 힘과 안정성 자갈길;
— 1시간 연속 작동
총 비용최대 500유로
— 무선 제어 가능성
— 고장 감지를 위해 SD 카드에 데이터 기록

2단계: 시스템 설계

기울기 센서는 x축을 따라 수평으로, y축을 따라 수직으로 장착됩니다.

5단계: 테스트 및 구성

모터에는 충분한 전력이 있어야 합니다. 부상이나 손상을 방지하기 위해 넓고 안전한 장소에서 장치를 테스트하십시오. 보호막과 헬멧을 착용하는 것이 좋습니다.

단계별 절차를 따르십시오. Arduino 마이크로컨트롤러 프로그래밍(다운로드)으로 시작한 다음 센서 및 브리지 제어 회로와의 통신을 확인하세요.

Arduino 터미널은 프로그램 코드를 디버깅하고 기능을 테스트하는 데 사용할 수 있습니다. 예를 들어, PID 게인은 모터의 기계적, 전기적 매개변수에 따라 달라지므로 조정이 필요합니다.

게인은 다음 절차를 사용하여 조정됩니다.
1. Kp 매개변수는 밸런싱을 위한 것입니다. 밸런싱이 불안정해질 때까지 Kp를 늘리고 Ki와 Kp는 0으로 유지됩니다. Kp를 약간 줄여 안정적인 상태를 얻습니다.
2. Ki 매개변수는 기울일 때 가속도를 가속/감소시키는 데 사용됩니다. 앞으로 몸을 기울일 때 넘어지는 것을 방지하기 위해 올바른 가속도를 얻으려면 Ki를 높이십시오. Kp는 0으로 유지됩니다. 이제 균형이 안정되어야 합니다.
3. Kd 매개변수는 스위치를 켜고 안정된 위치로 돌아가는 것을 보상하는 데 사용됩니다.

터미널 프로그램에서는 다양한 "?" 명령을 실행할 수 있습니다.
? – 명령 선택에 대한 도움말
p,i,d [정수 값] - PID 게인 설정/가져오기, 값 0~255
r [정수 값] – 엔진 속도의 강제 증가, -127에서 127 사이의 값
v – 소프트웨어 버전
"p" 명령을 사용하면 Kp 매개변수에 액세스할 수 있습니다. "p 10" 명령을 사용하면 Kp를 10 값으로 설정할 수 있습니다.

Arduino에 전원이 공급되면 센서가 초기화되고 대기 상태로 들어갑니다. 푸시 버튼을 누르면 수직 위치에 있는 SEGWAY 컨트롤러에 제어 신호가 전송되어 모터가 초기 위치에 따라 전진 또는 후진하도록 활성화됩니다. 이 시점부터 버튼을 계속 누르고 있어야 합니다. 그렇지 않으면 모터가 꺼지고 컨트롤러는 대기 상태로 들어갑니다. 수직 위치에 도달한 후 컨트롤러는 일반적으로 운전자가 플랫폼에 있는 동안 발로 누르는 "운전자 위치" 부하 제한 스위치 신호를 기다립니다. 그 후, 균형 조정 알고리즘이 시작되고 모터는 직립 위치를 유지하기 위해 앞으로 또는 뒤로 활성화됩니다. 앞으로 기울이면 앞으로 움직이는 동작이 생성되고 그 반대의 경우도 마찬가지입니다. 기울어진 자세로 있으면 움직임이 더 빨라집니다. 반대 방향으로 기울면 속도가 감소합니다. 핸들을 이용해 좌우로 움직일 수 있습니다.

6단계: 데모

아래 완성된 기기의 영상을 보시고 많은 관심 부탁드립니다!