Arduino и все, что с ней связано

Автор infizer, Май 30, 2022, 07:44

« назад - далее »

infizer

Arduino возможно использовать с программами PSA Coder (разработчик я), PSA-Arduino-NAC и PSA-Arduino-Cirocco (разработчик Ludwig, You are not allowed to view links. Register or Login), Canhacker.

Для сборки оборудования необходимы микроконтроллер Arduino (Nano или Uno), модуль кан-шины MCP2515.

Схема подключения для Arduino Nano
Вы не можете просматривать это вложение.

Схема подключения для Arduino Uno
Вы не можете просматривать это вложение.
 
После сбора по данной схеме необходимо прошить скетчи. Перед этим необходимо обратить внимание на частоту кварца, установленную в модуле mcp2515.

Прошивка осуществляется с помощью программы XLoader. Вы не можете просматривать это вложение.

Вы не можете просматривать это вложение. 


Для использования моей программы и Canhacker (скорость выбирается в программе):
Скорость UART 115200:
- Вы не можете просматривать это вложение.
- Вы не можете просматривать это вложение. 

Скорость UART 250000:
- Вы не можете просматривать это вложение.
- Вы не можете просматривать это вложение.

Скорость UART 500000:
- Вы не можете просматривать это вложение.
- Вы не можете просматривать это вложение.

Для использования программ PSA-Arduino-NAC и PSA-Arduino-Cirocco:
- Вы не можете просматривать это вложение.
- Вы не можете просматривать это вложение.
- Вы не можете просматривать это вложение.
- Вы не можете просматривать это вложение.   

После прошивки можно приступать к использованию программ.

Дима

Доброго дня.
Отличная работа. Прошилась атмега вроде.
Зачем внешнее питание для Arduino Nano, вроде от усб есть 5в, или по току не потянет усб?

infizer

Нет необходимости во внешнем питании при использовании для диагностики. Просто такое изображение попалось.

tigerby

хм, а инфа про can hi/lo пропала отсюда или я где-то в другом месте про 3, 8 пины читал? Забыл где hi, а где lo :(

infizer


impulse

Подключать нужно к ОБД разъему?

infizer

Не обязательно. Есть возможность выбора скорости соединения, поэтому можно и в шину, где блок стоит, и напрямую к нему

BAM

Автомобиль DS4 2012 г.в.
собрал канхакер на ардуино уно по схеме выше. с модуля mcp2515 сигналы идут в каншину.
в программе канхакер вижу данные с шины и могу отправлять посылки в шину.
при подключении программой блоки автомобиля не видит и на панели приборов загорается много ошибок (абс, есп и т.д.) при нажатии кнопки начать сканирование. Это происходит на всех версиях программы (19,20,26).
минус с Разьема ОБД на ноге GND.
прошивал модуль mcp2515 прошивками 8 бит и 16 бит. работают оба варианта.
скиньте ссылку на репозитарий, который нормально работает с программой PSA Coder.

infizer

Скорость соединения в сети can 500 и место подключения обд? Блоки должны отображаться. Ошибки на есп и абс загораются только при запущенном двигателе в этом типе подключения, поскольку есп переходит в диагностику

DZK200

#9
Если у вас есть ArduinoUNO и вы так же невежественны, как и я, просто следуйте этому:

Скачайте You are not allowed to view links. Register or Login и You are not allowed to view links. Register or Login и You are not allowed to view links. Register or Login.

Откройте ArduinoIDE и вставьте это:

#include <can.h>
#include <mcp2515.h>

#include <CanHacker.h>
#include <CanHackerLineReader.h>
#include <lib.h>

#include <SPI.h>
#include <SoftwareSerial.h>

const int SPI_CS_PIN = 9;
const int INT_PIN = 2;

const int SS_RX_PIN = 3;
const int SS_TX_PIN = 4;

CanHackerLineReader *lineReader = NULL;
CanHacker *canHacker = NULL;

SoftwareSerial softwareSerial(SS_RX_PIN, SS_TX_PIN);

void setup() {
    Serial.begin(115200);
    while (!Serial);
    SPI.begin();
    softwareSerial.begin(115200);

    Stream *interfaceStream = &Serial;
    Stream *debugStream = &softwareSerial;
   
   
    canHacker = new CanHacker(interfaceStream, debugStream, SPI_CS_PIN);
    //canHacker->enableLoopback(); // uncomment this for loopback
    lineReader = new CanHackerLineReader(canHacker);
   
    pinMode(INT_PIN, INPUT);
}

void loop() {
    CanHacker::ERROR error;
 
    if (digitalRead(INT_PIN) == LOW) {
        error = canHacker->processInterrupt();
        handleError(error);
    }

    error = lineReader->process();
    handleError(error);
}

void handleError(const CanHacker::ERROR error) {

    switch (error) {
        case CanHacker::ERROR_OK:
        case CanHacker::ERROR_UNKNOWN_COMMAND:
        case CanHacker::ERROR_NOT_CONNECTED:
        case CanHacker::ERROR_MCP2515_ERRIF:
        case CanHacker::ERROR_INVALID_COMMAND:
            return;

        default:
            break;
    }
 
    softwareSerial.print("Failure (code ");
    softwareSerial.print((int)error);
    softwareSerial.println(")");

    digitalWrite(SPI_CS_PIN, HIGH);
    pinMode(LED_BUILTIN, OUTPUT);
 
    while (1) {
        int c = (int)error;
        for (int i=0; i<c; i++) {
            digitalWrite(LED_BUILTIN, HIGH);
            delay(500);
            digitalWrite(LED_BUILTIN, LOW);
            delay(500);
        }
       
        delay(2000);
    } ;
}

Загрузите на плату ArduinoUNO, после чего вы сможете использовать PSA CODER.

amidler

Хочу поделиться своим опытом.
Купил Arduino UNO (клон), You are not allowed to view links. Register or Login, You are not allowed to view links. Register or Login на алиэкспрессе и все это собрал.
После сборки нашел You are not allowed to view links. Register or Login статью. Забрал все ПО от You are not allowed to view links. Register or Login скомпилировал, тыкнул в машину, а оно не работает... Проверил схему, скетч, проверил подключение пинов несколько раз и так по кругу... В какой-то момент начал подозревать, что проблема в скрипте и указании частоты кварца. На шилде кварц 16Мгц... В общем спустся несколько дней и вялых поисков в интернетах понял, что в большинстве проектов используется You are not allowed to view links. Register or Login. В нем то кварц 8МГц.. В файле CanHacker.h
в месо: CAN_CLOCK canClock = MCP_8MHZ;
пишу: CAN_CLOCK canClock = MCP_16MHZ;
Думаю проблема решена! Мчусь в машину, тыкаю разъем, запускаю CanHacker v2.00.02, а данных в окне Recieve как не было так и нет. Я уже начал скорости перебирать и чувствую безысходность, возвращаясь к стандартным настройкам скорости, отключаю галочку в настройках соединения "Listen Only"...
... Подключаюсь, и все поперло! Попробовал повторить с галкой и без.. Оказалось дело все в ней и в кварце/скрипте.
 
 


slako

You are not allowed to view links. Register or Loginотключаю галочку в настройках соединения "Listen Only"...
тоже с этим столкнулся. С включенной этой галкой программа коннектится к дуне но ничего не видит. Снимаю галку и всё заработало

Udal

Доброе время суток. Своим вопросом могу получить бан, но всё-таки спрошу. Я электронщик, в программировании Ардуино не очень, но возможно ли объединить 2 программы и производить переключение между ними путем установки перемычки на плате (переключатель на корпусе устройства), свободных портов ещё куча. Будет универсальный шнурок. Так же и выбор тактовой частоты кварца завязать на порт. Все модификации можно переключать через состояния портов с присвоенными к ним переменными в программе.

infizer

You are not allowed to view links. Register or LoginДоброе время суток. Своим вопросом могу получить бан, но всё-таки спрошу. Я электронщик, в программировании Ардуино не очень, но возможно ли объединить 2 программы и производить переключение между ними путем установки перемычки на плате (переключатель на корпусе устройства), свободных портов ещё куча. Будет универсальный шнурок. Так же и выбор тактовой частоты кварца завязать на порт. Все модификации можно переключать через состояния портов с присвоенными к ним переменными в программе.
Памяти в ардуино мало. Немного не понимаю, зачем так делать. Проще скетч перезалить

Motorhead

#14
Я правильно понимаю,что имея в наличии Ардуино и MCP 2515 ,папу ОБД2 и программу PSA Coder,то можно будет сконфигурировать цветной матричный дисплей,купленный на Али,под конфигурацию своего авто?