Отправка информации (например, строки) через цифровые контакты

Я не хочу отправлять информацию с моих цифровых контактов Arduino на цифровые контакты другого Arduino, например строку или символ. Могу ли я сделать это без чего-то вроде Software Serial?

Причина, по которой я спрашиваю, заключается в том, что я хочу отправить информацию с нескольких последовательных устройств на мой Raspberry Pi с Arduino. Дело в том, что Raspberry Pi имеет только один набор контактов UART, поэтому я подумал, поскольку у меня есть дополнительные Arduino Uno, почему бы не отправить затем информацию на Arduino и заставить его записать полученную информацию на цифровые контакты Raspberry Pi.

Теперь, когда я пишу это, я думаю, что подключу два Arduino через последовательное соединение и использую последовательное программное обеспечение для записи на Raspberry Pi в три разных этапа, чтобы передать информацию на Pi.

р>

Причина, по которой я использую PI, заключается в том, что я хочу отображать эту информацию на большом экране с множеством различных опций. Короче говоря, возможности графического процессора — это то, для чего я использую PI, а также обработку.

Однако вопрос остается открытым: можете ли вы отправлять информацию через цифровые контакты?

, 👍1

Обсуждение

Если у вас есть RPi, зачем вам Arduino?, @Ignacio Vazquez-Abrams

@IgnacioVazquez-Abrams Мне нужен один Arduino для удаленного управления платформой и получения показаний от различных датчиков, подключенных к ней, которые будут передавать эти данные по беспроводной сети на Raspberry Pi, но для этого также потребуется несколько подключенных к нему последовательных устройств ... отсюда и моя проблема , несколько UART и хороший графический процессор., @Radmation


3 ответа


Лучший ответ:

1

Да, вы можете отправлять информацию на/с ваших цифровых контактов Arduino, используя метод Bit Banging. Википедия (еще больше в Google!)

Вы можете использовать Arduino для вывода в качестве специального последовательного порта или параллельного порта. Последовательный порт может быть асинхронным (UART/RS232/I2C) или синхронным (например, SPI).

Обратной стороной является то, что вам придется написать немного больше программного обеспечения для отправки/интерпретации данных.

Из вашего описания я понимаю, что данные передаются только в одном направлении — от Arduino к Pi. Лично я бы выбрал SPI, так как считаю, что это будет проще всего и не потребует точного времени.

,

Спасибо за ответ. Я буду иметь это в виду! Я просто собираюсь использовать Arduino для нескольких последовательных соединений с использованием последовательного программного обеспечения ... так что я не думаю, что мне придется «немного хлопать», но, тем не менее, это полезно. Спасибо за ответ на вопрос!, @Radmation

@sa_leinad, Не знаю, почему вы идете таким путем, если хотите агрегировать все данные в RaspberryPi. Чтобы использовать SPI или I2C, вам придется внести изменения в ядро RaspberryPi Linux. Если вы используете RS232, вам придется запускать программы getty на RaspberryPi для каждого последовательного порта, который вам удастся настроить. Решение USB/FTDI, возможно, проще всего реализовать на RaspberryPi. И чип FTDI уже есть на большинстве Arduino Uno., @st2000


2

RaspberryPi — довольно полноценный компьютер с ОС Linux. Таким образом, он может быть USB-хостом для многих USB-устройств. Если вам нужно больше последовательных портов, просто купите кабели USB-последовательный порт с поддержкой FTDI, подключите их к USB-концентратору и подключите его к Raspberry Pi.

,

Спасибо за ответ. Если бы я не хотел покупать какие-либо дополнительные детали, могу ли я использовать Arduino в качестве нескольких последовательных соединений для PI?, @Radmation

Также могу ли я взять существующий USB-кабель и отрезать конец, чтобы получить это? Или здесь имеет место что-то другое?, @Radmation

На самом деле да. (Большинство) Arduino Uno содержат чип FTDI. Именно так Arduino общается с главным компьютером. Я думаю, что вам все равно понадобится (если у вас RasPi с большим количеством USB-портов) — это USB-концентратор для объединения всех USB-кабелей Uno., @st2000

Ваш второй вопрос: протокол USB очень сложен. Вполне вероятно, что вы никогда не будете перерезать USB-кабель, чтобы добраться до данных. Только чтобы добраться до 5 Вольт на внешних контактах., @st2000


2

Существует много разных способов общения.

В дополнение к последовательному протоколу вы можете использовать такой протокол, как SPI или I²C. Если Arduino находится в непосредственной близости, I²C позволяет многим устройствам обмениваться данными по общей шине.

,