Могу ли я управлять этим ESC /Brushless Motor с помощью малины Pi и /или Arduino

Мы с моим другом читали статьи о контроле ESC /Brushless Motors от Arduino или Raspberry Pi. Статьи, которые я прочитал, предостерегают от идеи, что управление такими системами зависит от характеристик ESC. Например, одна статья, которую я прочитал, рассказывает о контроле 20А или 30А ESC, но ESC, который мы пытаемся контролировать, превышает это.

Вот ссылка на двигатель ESC и Brushless, который я пытаюсь контролировать через Arduino и /или Raspberry Pi. http://www.hobbyking.com/hobbyking/store/__25137__turnigy_trackstar_waterproof_1_10_brushless_power_system_3000kv_80a.html

Есть ли кто-нибудь, кто может дать мне некоторую информацию о том, можно ли управлять ESC /Motor с помощью Arduino и /или Raspberry Pi. Я хотел бы получить некоторую обратную связь перед моим другом, и я пройду с приказом.

4 голоса | спросил Shane C. Yost 4 J0000006Europe/Moscow 2014, 00:07:00

2 ответа


4

ESCs (Electronic Speed ​​Controllers) обычно контролируются так же, как вы контролируете хобби серво - с сигналом PWM. Существует множество руководств по управлению сервоприводом, которые должны быть применимы к ESC.

Так как Raspberry Pi - это устройство на 3,3 В, вам может понадобиться переключение уровня, если ваш ESC нуждается в сигнале 5 В.

Вот учебник для малины Pi: http://playground.arduino.cc/Learning/SingleServoExample

ответил Craig 4 J0000006Europe/Moscow 2014, 20:00:37
1

Я вижу, что я опаздываю на вечеринку, извините за это. Тем не менее, только недавно я начал возиться с Pi, поэтому вам придется простить меня.

Я считаю, что нашел для вас возможный ответ, если вам все еще нужен один, если не большой. Я предоставил его в любом случае, если кто-то еще наткнется на эту нить, как и я, и ищет способ контролировать ESC с помощью малины.

В настоящее время у меня есть очень простой бит кода для управления 320A ESC (Zjchao 7.2-16v High Voltage Version 320a Brushed ESC Tow Way с тормозом для Rc Car Truck <- найдено на амазонке) с использованием малины Pi и PCA9685 PWM-плата (ADAFRUIT 16-CHANNEL 12-BIT PWM /SERVO DRIVER - I2C INTERFACE <- найдена на adafruit). Вам придется простить мой код раньше времени, так как я не мастер. Я сделал некоторые поиски заранее, чтобы увидеть, сделал ли кто-нибудь это, но я продолжал рисовать короткие соломки. Я не увенчался успехом в управлении ESC прямо из Pi и нашел код здесь и там, но никогда ничего не работал.

Я почти сдался, но позже перебегал через этот поток , который предложил использовать PCA9685. Поэтому я схватил свою использованную в моем ящике старую часть проекта, связал все и запустил код из ранее упомянутого потока. У него были некоторые проблемы, в основном у меня возникла проблема «имитация полного задействования дроссельной заслонки, а затем ее полное изменение», чтобы ESC выполнил правильную загрузку. Я понял это, прочитав фактический поток и увидев, что вам нужно сначала нажать и удерживать стрелку ВВЕРХ, а затем нажать и удерживать стрелку ВНИЗ. Хорошо, конечно, не проблема.

Поняв это, я отключил все, снова подключил все, перезапустил скрипт python (из вышеупомянутого потока) и продолжил «следовать указаниям» и BOOOOOM !!! Я услышал волшебный звуковой сигнал Beep-BEEP-Boop-Beep-Boop и понял, что он работает! Затем я приступил к изменению кода, так как я не хотел вручную выполнять эту последовательность каждый раз, когда я хочу контролировать свои моторы от отключения. Ниже мой аромат кода, измененный из ранее упомянутого потока еще раз ... просто давая кредит, где его должное.

from Adafruit_PWM_Servo_Driver import PWM
import time, curses

pwm = PWM(0x40, debug=True)
pwm.setPWMFreq(60)

screen = curses.initscr()

curses.noecho()
curses.cbreak()

screen.keypad(True)

running = True
fwdmax = 600
stop = 400
revmax = 200
go = 400
inc = 20
spinup = 1

def bootup():
    boot = 200
    while boot < fwdmax:
        boot += inc
        pwm.setPWM(0,0,boot)
        time.sleep(0.1)
        if boot > fwdmax:
            while boot > revmax:
                 boot -= inc
                 pwm.setPWM(0,0,boot)
                 time.sleep(0.1)
                 if boot < revmax:
                     boot = 400
                     pwm.setPWM(0,0,boot)
                     spinup = 0
                     break

while running:
        char = screen.getch()
        if char == ord('q'):
                running=False
        else:
                if char == ('b') and spinup == 1:
                    bootup()
                if char == curses.KEY_UP:
                        if go < fwdmax:
                                go += inc
                elif char == curses.KEY_DOWN:
                        if go > revmax:
                                go -= inc

                elif char == ord(' '):
                        go = stop
        pwm.setPWM(0, 0, go)
# shut down cleanly
curses.nocbreak(); screen.keypad(0); curses.echo()
curses.endwin()

Итак, вот что я делаю:

  1. подключить pi к плате хлеба и подключить PWM9685 для тестирования
  2. подключите внешний источник питания к плате PWM.
  3. подключите двигатель и аккумулятор для двигателя к ESC, как и ваш автомобиль RC

Здесь вы должны быть осторожны, если ваш ESC не любит частоту 60 Гц или значения, которые выталкиваются через мой код

  1. запустите предоставленный код, но НЕ нажимайте ничего.
  2. подключить ESC к первому месту на PWM (0)
  3. нажмите 'b', чтобы загрузить ESC

ВВЕРХ стрелка = ехать быстрее x20

DOWN arrow = идти медленнее x20

, который я изменил из кода, найденного из ранее упомянутого потока

'q' = выйти из программы

«Пробел» остановит двигатель

Надеюсь, это поможет!

Вот почему мне нужно выполнить эту задачу, интересный проект: 3d печатный бак

ответил user2833494 12 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowSat, 12 Sep 2015 10:46:00 +0300 2015, 10:46:00

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132