Радиоуправляемый кораблик своими руками.
Re: Радиоуправляемый кораблик своими руками.
гугл...
Подтвердите номер телефона
В целях безопасности мы должны убедиться, что это действительно вы. Мы отправим вам SMS с 6-значным кодом подтверждения. Плата за доставку сообщений взимается в соответствии с вашим тарифом.
я не даю свой номер телефона... тем более всяким гуглам))
яндекс диск -10 гигабайт бесплатно... без дуратских SMS... качай сколько влезет... без регистрации...))
сюда кидай .. в архиве))
Добавлено after 1 minute 41 second:
всё потому что в кораблике до сих пор нет сервера... на виртуальной машине))
Подтвердите номер телефона
В целях безопасности мы должны убедиться, что это действительно вы. Мы отправим вам SMS с 6-значным кодом подтверждения. Плата за доставку сообщений взимается в соответствии с вашим тарифом.
я не даю свой номер телефона... тем более всяким гуглам))
яндекс диск -10 гигабайт бесплатно... без дуратских SMS... качай сколько влезет... без регистрации...))
сюда кидай .. в архиве))
Добавлено after 1 minute 41 second:
всё потому что в кораблике до сих пор нет сервера... на виртуальной машине))
- Реклама
- sashamelja
- Говорящий с текстолитом
- Сообщения: 1565
- Зарегистрирован: Пт янв 20, 2012 16:25:02
Re: Радиоуправляемый кораблик своими руками.
Ни знаю ни про какие смс в гугле, и никогда не видел (я только что скачал на другом кампе с отцовского гугл акуанта без проблем)Я вобще не понемаю как можно щас без гугловского сервиса обходиться (весь мир висит на нем)
Китай попробовал спригнуть в лице хуавея, и через год назад вернулся..
Но это так как говорят..
У меня лично нету акуанта Яндекса и никогда не будет, но качать я с него могу без проблем если вам удобно пожалуйста загружайте то что не получаетса тут..
Чтобы не роз водить теорию заговора итд..
Вы пользуетесь телеграмом?
Как у вас с ютубом?
________________
Телега рулит, ни один железный занавес не может с ней справиться

Китай попробовал спригнуть в лице хуавея, и через год назад вернулся..
Но это так как говорят..
У меня лично нету акуанта Яндекса и никогда не будет, но качать я с него могу без проблем если вам удобно пожалуйста загружайте то что не получаетса тут..
Чтобы не роз водить теорию заговора итд..
Вы пользуетесь телеграмом?
Как у вас с ютубом?
________________
Телега рулит, ни один железный занавес не может с ней справиться
И опыт сын ошибок трудных и гений парадоксов друг
Re: Радиоуправляемый кораблик своими руками.
как можно щас без гугловского сервиса обходиться ?
))
yandex.ru диск - 10 гигов нахаляву.
mail.ru диск - 8 гигов нахаляву.
локальная сеть - 10 терабайт нахаляву.
корпоративный FTP сервер - 100 терабайт нахаляву.
самодельный Java сервер рулит, ни один железный занавес не может с ним справиться))
Добавлено after 2 minutes 49 seconds:
мы забыли посчитать CRC для Ethernet... ))
http://we.easyelectronics.ru/STM32/crc3 ... stm32.html
yandex.ru диск - 10 гигов нахаляву.
mail.ru диск - 8 гигов нахаляву.
локальная сеть - 10 терабайт нахаляву.
корпоративный FTP сервер - 100 терабайт нахаляву.
самодельный Java сервер рулит, ни один железный занавес не может с ним справиться))
Добавлено after 2 minutes 49 seconds:
мы забыли посчитать CRC для Ethernet... ))
http://we.easyelectronics.ru/STM32/crc3 ... stm32.html
- sashamelja
- Говорящий с текстолитом
- Сообщения: 1565
- Зарегистрирован: Пт янв 20, 2012 16:25:02
Re: Радиоуправляемый кораблик своими руками.
#include <Arduino.h>
#include <SPI.h>
static const int spiClk = 1000000; // 1 MHz
// неинициализированные указатели на объекты SPIN
SPIClass * vspi = NULL;
void vspiCommand();
void setup() {
// инициализируем экземпляра SPIClass, прикрепленных к VSPI
vspi = new SPIClass(VSPI);
//clock miso mosi ss
//SCLK = 18, MISO = 19, MOSI = 23, SS = 5
vspi->begin();
// настраиваем выводы выбора ведомого в качестве выходов как Arduino API
// не обрабатывает автоматическое понижение SS
pinMode(5, OUTPUT); //VSPI SS
}
// функция цикла запускается снова и снова, пока не отключится питание или не сбросится
void loop() {
// используем шины SPI
vspiCommand();
delay(100);
}
void vspiCommand() {
byte data = 0b01010101; // нежелательные данные для иллюстрации использования
// используйте его, как обычный SPI API для Arduino
vspi->beginTransaction(SPISettings(spiClk, MSBFIRST, SPI_MODE0));
digitalWrite(5, LOW); // медленно тянуть SS, чтобы подготовить другой конец для передачи
vspi->transfer(data);
digitalWrite(5, HIGH); // поднимаем ss высоко, чтобы обозначить конец передачи данных
vspi->endTransaction();
}
#include <SPI.h>
static const int spiClk = 1000000; // 1 MHz
// неинициализированные указатели на объекты SPIN
SPIClass * vspi = NULL;
void vspiCommand();
void setup() {
// инициализируем экземпляра SPIClass, прикрепленных к VSPI
vspi = new SPIClass(VSPI);
//clock miso mosi ss
//SCLK = 18, MISO = 19, MOSI = 23, SS = 5
vspi->begin();
// настраиваем выводы выбора ведомого в качестве выходов как Arduino API
// не обрабатывает автоматическое понижение SS
pinMode(5, OUTPUT); //VSPI SS
}
// функция цикла запускается снова и снова, пока не отключится питание или не сбросится
void loop() {
// используем шины SPI
vspiCommand();
delay(100);
}
void vspiCommand() {
byte data = 0b01010101; // нежелательные данные для иллюстрации использования
// используйте его, как обычный SPI API для Arduino
vspi->beginTransaction(SPISettings(spiClk, MSBFIRST, SPI_MODE0));
digitalWrite(5, LOW); // медленно тянуть SS, чтобы подготовить другой конец для передачи
vspi->transfer(data);
digitalWrite(5, HIGH); // поднимаем ss высоко, чтобы обозначить конец передачи данных
vspi->endTransaction();
}
- Вложения
-
- multiple_bus.png
- (65.69 КБ) 83 скачивания
И опыт сын ошибок трудных и гений парадоксов друг
- Реклама
- sashamelja
- Говорящий с текстолитом
- Сообщения: 1565
- Зарегистрирован: Пт янв 20, 2012 16:25:02
Re: Радиоуправляемый кораблик своими руками.
Даные нелегасом переправлять))
И опыт сын ошибок трудных и гений парадоксов друг
Re: Радиоуправляемый кораблик своими руками.
без таможни ?
круто))
а теперь попробуй в обе стороны - туда товар - обратно мани))
Подсказка: ))
Если SS настроить как вход, то на нем должен присутствовать высокий лог. уровень, чтобы гарантировать работу ведущего SPI. Если SPI настроен как мастер, у которого выв. SS настроен как вход, то подача на этот вход низкого уровня внешней схемой будет интерпретирована как перевод в подчиненный режим по запросу другого ведущего SPI...

Добавлено after 47 seconds:
Если SS настроен на вывод, то он работает как обычная линия цифрового вывода и не оказывает влияния на систему SPI. Обычно он используется для управления выводом SS подчиненного SPI...
а теперь попробуй в обе стороны - туда товар - обратно мани))
Подсказка: ))
Если SS настроить как вход, то на нем должен присутствовать высокий лог. уровень, чтобы гарантировать работу ведущего SPI. Если SPI настроен как мастер, у которого выв. SS настроен как вход, то подача на этот вход низкого уровня внешней схемой будет интерпретирована как перевод в подчиненный режим по запросу другого ведущего SPI...
Добавлено after 47 seconds:
Если SS настроен на вывод, то он работает как обычная линия цифрового вывода и не оказывает влияния на систему SPI. Обычно он используется для управления выводом SS подчиненного SPI...
- sashamelja
- Говорящий с текстолитом
- Сообщения: 1565
- Зарегистрирован: Пт янв 20, 2012 16:25:02
Re: Радиоуправляемый кораблик своими руками.
без таможни ?
круто)) 
а теперь попробуй в обе стороны - туда товар - обратно мани))
Харе прикалываться, я присматриваюсь к вариантам
Я сразу понял что та ардуиновская хардовая библа, хочет быть мастером (вот что то пока не понимаю как там сделать чтение даных мастером со слейва)
Конкретно как?
Паралельный пропускаем..
Юарт оставим про запас.
Добавлено after 35 minutes 56 seconds:
Понял но тут байты
//SPI MASTER (ARDUINO)
//SPI COMMUNICATION BETWEEN TWO ARDUINO
//CIRCUIT DIGEST
#include<SPI.h> //Library for SPI
#define LED 7
#define ipbutton 2
int buttonvalue;
int x;
void setup (void)
{
Serial.begin(115200); //Starts Serial Communication at Baud Rate 115200
pinMode(ipbutton,INPUT); //Sets pin 2 as input
pinMode(LED,OUTPUT); //Sets pin 7 as Output
SPI.begin(); //Begins the SPI commnuication
SPI.setClockDivider(SPI_CLOCK_DIV8); //Sets clock for SPI communication at 8 (16/8=2Mhz)
digitalWrite(SS,HIGH); // Setting SlaveSelect as HIGH (So master doesnt connnect with slave)
}
void loop(void)
{
byte Mastersend,Mastereceive;
buttonvalue = digitalRead(ipbutton); //Reads the status of the pin 2
if(buttonvalue == HIGH) //Logic for Setting x value (To be sent to slave) depending upon input from pin 2
{
x = 1;
}
else
{
x = 0;
}
digitalWrite(SS, LOW); //Starts communication with Slave connected to master
Mastersend = x;
Mastereceive=SPI.transfer(Mastersend); //Send the mastersend value to slave also receives value from slave
if(Mastereceive == 1) //Logic for setting the LED output depending upon value received from slave
{
digitalWrite(LED,HIGH); //Sets pin 7 HIGH
Serial.println("Master LED ON");
}
else
{
digitalWrite(LED,LOW); //Sets pin 7 LOW
Serial.println("Master LED OFF");
}
delay(1000);
}
Добавлено after 4 minutes:
А что и сколько нам надо чтобы передать туда-сюда (широту долготу ну и пару команд)?
Я в этих битах и байтах мягко говоря ни фига не дуплю
Вы же мозг тут
помогайте настроить процес 
а теперь попробуй в обе стороны - туда товар - обратно мани))
Харе прикалываться, я присматриваюсь к вариантам
Я сразу понял что та ардуиновская хардовая библа, хочет быть мастером (вот что то пока не понимаю как там сделать чтение даных мастером со слейва)
Конкретно как?
Паралельный пропускаем..
Юарт оставим про запас.
Добавлено after 35 minutes 56 seconds:
Понял но тут байты
//SPI MASTER (ARDUINO)
//SPI COMMUNICATION BETWEEN TWO ARDUINO
//CIRCUIT DIGEST
#include<SPI.h> //Library for SPI
#define LED 7
#define ipbutton 2
int buttonvalue;
int x;
void setup (void)
{
Serial.begin(115200); //Starts Serial Communication at Baud Rate 115200
pinMode(ipbutton,INPUT); //Sets pin 2 as input
pinMode(LED,OUTPUT); //Sets pin 7 as Output
SPI.begin(); //Begins the SPI commnuication
SPI.setClockDivider(SPI_CLOCK_DIV8); //Sets clock for SPI communication at 8 (16/8=2Mhz)
digitalWrite(SS,HIGH); // Setting SlaveSelect as HIGH (So master doesnt connnect with slave)
}
void loop(void)
{
byte Mastersend,Mastereceive;
buttonvalue = digitalRead(ipbutton); //Reads the status of the pin 2
if(buttonvalue == HIGH) //Logic for Setting x value (To be sent to slave) depending upon input from pin 2
{
x = 1;
}
else
{
x = 0;
}
digitalWrite(SS, LOW); //Starts communication with Slave connected to master
Mastersend = x;
Mastereceive=SPI.transfer(Mastersend); //Send the mastersend value to slave also receives value from slave
if(Mastereceive == 1) //Logic for setting the LED output depending upon value received from slave
{
digitalWrite(LED,HIGH); //Sets pin 7 HIGH
Serial.println("Master LED ON");
}
else
{
digitalWrite(LED,LOW); //Sets pin 7 LOW
Serial.println("Master LED OFF");
}
delay(1000);
}
Добавлено after 4 minutes:
А что и сколько нам надо чтобы передать туда-сюда (широту долготу ну и пару команд)?
Я в этих битах и байтах мягко говоря ни фига не дуплю
Вы же мозг тут
И опыт сын ошибок трудных и гений парадоксов друг
Re: Радиоуправляемый кораблик своими руками.
Паралельный пропускаем..
Ну и зря)) Он самый быстрый))
Конкретно как? В библе ардуино - без понятия)) знаю только как через регистры AVR...
а ардуина разве не умеет работать с регистрами ? должна... (где то видел)...
в SPI всего три регистра: ))
SPCR=0b01010000; // Регистр управления
// 0... .... SPIE разрешение прерывания...
// .1.. .... SPE разрешается работа SPI.
// ..0. .... DORD порядок сдвига данных DORD=0 первым передается старший разряд.
// ...1 .... MSTR (1-мастер, 0-подчиненный).
// .... 0... CPOL 0 = SCK имеет низкий уровень в состоянии ожидания. (полярность синхро).
// .... .0.. CPHA 0 = установка-задний фронт/выборка передий фронт SCK (фаза синхро).
// .... ..00 SPR1, SPR0
// где SPR1, SPR0 - это делитель частоты SPI:
// .... ..00 SPR1, SPR0 f/4 - SCK = кварц 4 Мгц/4 = 1 МГц (частота).
// .... ..01 SPR1, SPR0 f/16
// .... ..10 SPR1, SPR0 f/64
// .... ..11 SPR1, SPR0 f/128
SPSR=0b10000000; // Регистр статуса
// 1... .... Флаг SPIF завершении последовательной передачи. Сбрасывается при чтении SPDR .
// .1.. .... Флаг повторной записи (устанавливается, если выполнена запись в регистр данных SPI (SPDR) во
// время передачи данных).
// .... ...1 SPI2X - удвоенная скорость передачи. SCK = кварц 4 Мгц/2 = 2 МГц (частота).
// (период SCK будет равен двум периодам синхронизации ЦПУ).
// Если SPI работает как подчиненный, то работа SPI гарантирована только на частоте fosc /4 или менее.
SPDR=0b00000000; //Регистр данных SPI
//Запись в данный регистр инициирует передачу данных.
//При чтении данного регистра считывается содержимое приемного буфера сдвигового регистра.
Примеры (из даташита AVR):
1. Режим мастер:
=============
передача (мастер):
Одноуровневая система. Передающий буфер: SPDR > (сдвиговый регистр передатчика).
/* Настройка выводов*/
PORTB=0b00000000;
DDRB=0b00101100;
// SCK-Out (PB5)
// MISO-In (PB4)
// MOSI-Out (PB3)
// SS-Out (PB2)
while (1) {
PORTB.2=0; // SS- разрешение передачи в подчиненное устройство.
/* Запуск передачи данных в подчиненное устройство.*/
SPDR =x;
/* Ожидание завершения передачи данных. Ждём флаг SPIF. */
while(!(SPSR & (1<<7)));
PORTB.2=1; // SS- запрет передачи в подчиненное устройство.
/* Чтение принятых данных из подчиненного устройства.*/
x=SPDR;
};
2. Режим слейв:
==============
приём (подчиненный):
Двухуровневая система. Приёмный буфер: SPDR(1) + (сдвиговый регистр приёмника).
/* Настройка выводов*/
PORTB=0b00000000;
DDRB=0b00010000;
// SCK-In (PB5)
// MISO-Out (PB4)
// MOSI-In (PB3)
// SS-In (PB2)
Если на вывод SS подать высокий лог. уровень во время приёма, то подчиненный SPI
сбросит передающую и приемную логику и потеряет любые не полностью принятые
данные в сдвиговом регистре.
while (1) {
/* Ожидание завершения передачи от мастер. Ждём флаг SPIF.*/
while(!(SPSR & (1<<7)));
/* Чтение принятых данных из мастер*/
x=SPDR;
};
3. Режим мастер / слейв:
====================
мастер
char x;
char x1;
char x2;
char bufer[8]={0,0,0,0,0,0,0,0};
////////////////////////////////////////////// SPI аппаратный
DDRB.5=1; // SCK
PORTB.5=1; // SCK (!)
DDRB.4=0; // MISO
PORTB.4=0; // MISO
DDRB.3=1; // MOSI
PORTB.3=0; // MOSI
DDRB.2=1; // SS
PORTB.2=1; // SS
//////////////////////////////////// Master > Slave
PORTB.2=0; // SS
SPCR=0x50; // 4 МГц/4 = 1 МГц -мастер
SPDR=0b00000000; while(!(SPSR & (1<<7))); //
PORTB.2=1; // SS
SPCR=0x00; // 4 МГц/4 = 1 МГц -мастер
/////////////////////
x=SPDR;
///////////////////////////////////////////////////
//////////////////////////////////// Slave > Master
if (x==0x10) {
x2=0;
for (x1=1; x1<8; x1++) {
/////////////////////
PORTB.2=0; // SS
SPCR=0x50; // 4 МГц/4 = 1 МГц -мастер
SPDR=x1; while(!(SPSR & (1<<7))); // мастер
PORTB.2=1; // SS
SPCR=0x00; // 4 МГц/4 = 1 МГц -мастер
/////////////////////
bufer[x2]=SPDR;
x2++;
};
/////////////////////
PORTB.2=0; // SS
SPCR=0x50; // 4 МГц/4 = 1 МГц -мастер
SPDR=0b00000000; while(!(SPSR & (1<<7))); //
PORTB.2=1; // SS
SPCR=0x00; // 4 МГц/4 = 1 МГц -мастер
/////////////////////
bufer[x2]=SPDR;
};
//////////////////////////////////////////////////
4. Режим слейв (приём через прерывания):
====================
слейв
char x;
// SPI interrupt service routine
interrupt [SPI_STC] void spi_isr(void)
{
x=SPDR;
}
////////////////////////////////////////////// SPI аппаратный
DDRB.5=0; // SCK
PORTB.5=0; // SCK
DDRB.4=1; // MISO
PORTB.4=0; // MISO
DDRB.3=0; // MOSI
PORTB.3=0; // MOSI
DDRB.2=0; // SS
PORTB.2=0; // SS
//////////////////////////////////////////////
SPCR=0x40; // 4 МГц/4 = 1.000.000 Hz -Режим слейв
// Global enable interrupts
#asm("sei")
//////////////////////////////////////////////
///////////////////////////////////////////////
while (1) {
};
И т.д. )) Примерно так))
Ну и зря)) Он самый быстрый))
Конкретно как? В библе ардуино - без понятия)) знаю только как через регистры AVR...
а ардуина разве не умеет работать с регистрами ? должна... (где то видел)...
в SPI всего три регистра: ))
SPCR=0b01010000; // Регистр управления
// 0... .... SPIE разрешение прерывания...
// .1.. .... SPE разрешается работа SPI.
// ..0. .... DORD порядок сдвига данных DORD=0 первым передается старший разряд.
// ...1 .... MSTR (1-мастер, 0-подчиненный).
// .... 0... CPOL 0 = SCK имеет низкий уровень в состоянии ожидания. (полярность синхро).
// .... .0.. CPHA 0 = установка-задний фронт/выборка передий фронт SCK (фаза синхро).
// .... ..00 SPR1, SPR0
// где SPR1, SPR0 - это делитель частоты SPI:
// .... ..00 SPR1, SPR0 f/4 - SCK = кварц 4 Мгц/4 = 1 МГц (частота).
// .... ..01 SPR1, SPR0 f/16
// .... ..10 SPR1, SPR0 f/64
// .... ..11 SPR1, SPR0 f/128
SPSR=0b10000000; // Регистр статуса
// 1... .... Флаг SPIF завершении последовательной передачи. Сбрасывается при чтении SPDR .
// .1.. .... Флаг повторной записи (устанавливается, если выполнена запись в регистр данных SPI (SPDR) во
// время передачи данных).
// .... ...1 SPI2X - удвоенная скорость передачи. SCK = кварц 4 Мгц/2 = 2 МГц (частота).
// (период SCK будет равен двум периодам синхронизации ЦПУ).
// Если SPI работает как подчиненный, то работа SPI гарантирована только на частоте fosc /4 или менее.
SPDR=0b00000000; //Регистр данных SPI
//Запись в данный регистр инициирует передачу данных.
//При чтении данного регистра считывается содержимое приемного буфера сдвигового регистра.
Примеры (из даташита AVR):
1. Режим мастер:
=============
передача (мастер):
Одноуровневая система. Передающий буфер: SPDR > (сдвиговый регистр передатчика).
/* Настройка выводов*/
PORTB=0b00000000;
DDRB=0b00101100;
// SCK-Out (PB5)
// MISO-In (PB4)
// MOSI-Out (PB3)
// SS-Out (PB2)
while (1) {
PORTB.2=0; // SS- разрешение передачи в подчиненное устройство.
/* Запуск передачи данных в подчиненное устройство.*/
SPDR =x;
/* Ожидание завершения передачи данных. Ждём флаг SPIF. */
while(!(SPSR & (1<<7)));
PORTB.2=1; // SS- запрет передачи в подчиненное устройство.
/* Чтение принятых данных из подчиненного устройства.*/
x=SPDR;
};
2. Режим слейв:
==============
приём (подчиненный):
Двухуровневая система. Приёмный буфер: SPDR(1) + (сдвиговый регистр приёмника).
/* Настройка выводов*/
PORTB=0b00000000;
DDRB=0b00010000;
// SCK-In (PB5)
// MISO-Out (PB4)
// MOSI-In (PB3)
// SS-In (PB2)
Если на вывод SS подать высокий лог. уровень во время приёма, то подчиненный SPI
сбросит передающую и приемную логику и потеряет любые не полностью принятые
данные в сдвиговом регистре.
while (1) {
/* Ожидание завершения передачи от мастер. Ждём флаг SPIF.*/
while(!(SPSR & (1<<7)));
/* Чтение принятых данных из мастер*/
x=SPDR;
};
3. Режим мастер / слейв:
====================
мастер
char x;
char x1;
char x2;
char bufer[8]={0,0,0,0,0,0,0,0};
////////////////////////////////////////////// SPI аппаратный
DDRB.5=1; // SCK
PORTB.5=1; // SCK (!)
DDRB.4=0; // MISO
PORTB.4=0; // MISO
DDRB.3=1; // MOSI
PORTB.3=0; // MOSI
DDRB.2=1; // SS
PORTB.2=1; // SS
//////////////////////////////////// Master > Slave
PORTB.2=0; // SS
SPCR=0x50; // 4 МГц/4 = 1 МГц -мастер
SPDR=0b00000000; while(!(SPSR & (1<<7))); //
PORTB.2=1; // SS
SPCR=0x00; // 4 МГц/4 = 1 МГц -мастер
/////////////////////
x=SPDR;
///////////////////////////////////////////////////
//////////////////////////////////// Slave > Master
if (x==0x10) {
x2=0;
for (x1=1; x1<8; x1++) {
/////////////////////
PORTB.2=0; // SS
SPCR=0x50; // 4 МГц/4 = 1 МГц -мастер
SPDR=x1; while(!(SPSR & (1<<7))); // мастер
PORTB.2=1; // SS
SPCR=0x00; // 4 МГц/4 = 1 МГц -мастер
/////////////////////
bufer[x2]=SPDR;
x2++;
};
/////////////////////
PORTB.2=0; // SS
SPCR=0x50; // 4 МГц/4 = 1 МГц -мастер
SPDR=0b00000000; while(!(SPSR & (1<<7))); //
PORTB.2=1; // SS
SPCR=0x00; // 4 МГц/4 = 1 МГц -мастер
/////////////////////
bufer[x2]=SPDR;
};
//////////////////////////////////////////////////
4. Режим слейв (приём через прерывания):
====================
слейв
char x;
// SPI interrupt service routine
interrupt [SPI_STC] void spi_isr(void)
{
x=SPDR;
}
////////////////////////////////////////////// SPI аппаратный
DDRB.5=0; // SCK
PORTB.5=0; // SCK
DDRB.4=1; // MISO
PORTB.4=0; // MISO
DDRB.3=0; // MOSI
PORTB.3=0; // MOSI
DDRB.2=0; // SS
PORTB.2=0; // SS
//////////////////////////////////////////////
SPCR=0x40; // 4 МГц/4 = 1.000.000 Hz -Режим слейв
// Global enable interrupts
#asm("sei")
//////////////////////////////////////////////
///////////////////////////////////////////////
while (1) {
};
И т.д. )) Примерно так))
- sashamelja
- Говорящий с текстолитом
- Сообщения: 1565
- Зарегистрирован: Пт янв 20, 2012 16:25:02
Re: Радиоуправляемый кораблик своими руками.
ДА может вот типа слейв через регистры
//SPI SLAVE (ARDUINO)
//SPI COMMUNICATION BETWEEN TWO ARDUINO
//CIRCUIT DIGEST
//Pramoth.T
#include<SPI.h>
#define LEDpin 7
#define buttonpin 2
volatile boolean received;
volatile byte Slavereceived,Slavesend;
int buttonvalue;
int x;
void setup()
{
Serial.begin(115200);
pinMode(buttonpin,INPUT); // Setting pin 2 as INPUT
pinMode(LEDpin,OUTPUT); // Setting pin 7 as OUTPUT
pinMode(MISO,OUTPUT); //Sets MISO as OUTPUT (Have to Send data to Master IN
SPCR |= _BV(SPE); //Turn on SPI in Slave Mode
received = false;
SPI.attachInterrupt(); //Interuupt ON is set for SPI commnucation
}
ISR (SPI_STC_vect) //Inerrrput routine function
{
Slavereceived = SPDR; // Value received from master if store in variable slavereceived
received = true; //Sets received as True
}
void loop()
{ if(received) //Logic to SET LED ON OR OFF depending upon the value recerived from master
{
if (Slavereceived==1)
{
digitalWrite(LEDpin,HIGH); //Sets pin 7 as HIGH LED ON
Serial.println("Slave LED ON");
}else
{
digitalWrite(LEDpin,LOW); //Sets pin 7 as LOW LED OFF
Serial.println("Slave LED OFF");
}
buttonvalue = digitalRead(buttonpin); // Reads the status of the pin 2
if (buttonvalue == HIGH) //Logic to set the value of x to send to master
{
x=1;
}else
{
x=0;
}
Slavesend=x;
SPDR = Slavesend; //Sends the x value to master via SPDR
delay(1000);
}
}
Добавлено after 2 minutes 36 seconds:
Вопрос в том как правельно и оптимально спарить атмега128 и есп32 по spa (кто мастер кто слейв) (чтобы можно было надежно обмениватса инфой постояно)..
//SPI SLAVE (ARDUINO)
//SPI COMMUNICATION BETWEEN TWO ARDUINO
//CIRCUIT DIGEST
//Pramoth.T
#include<SPI.h>
#define LEDpin 7
#define buttonpin 2
volatile boolean received;
volatile byte Slavereceived,Slavesend;
int buttonvalue;
int x;
void setup()
{
Serial.begin(115200);
pinMode(buttonpin,INPUT); // Setting pin 2 as INPUT
pinMode(LEDpin,OUTPUT); // Setting pin 7 as OUTPUT
pinMode(MISO,OUTPUT); //Sets MISO as OUTPUT (Have to Send data to Master IN
SPCR |= _BV(SPE); //Turn on SPI in Slave Mode
received = false;
SPI.attachInterrupt(); //Interuupt ON is set for SPI commnucation
}
ISR (SPI_STC_vect) //Inerrrput routine function
{
Slavereceived = SPDR; // Value received from master if store in variable slavereceived
received = true; //Sets received as True
}
void loop()
{ if(received) //Logic to SET LED ON OR OFF depending upon the value recerived from master
{
if (Slavereceived==1)
{
digitalWrite(LEDpin,HIGH); //Sets pin 7 as HIGH LED ON
Serial.println("Slave LED ON");
}else
{
digitalWrite(LEDpin,LOW); //Sets pin 7 as LOW LED OFF
Serial.println("Slave LED OFF");
}
buttonvalue = digitalRead(buttonpin); // Reads the status of the pin 2
if (buttonvalue == HIGH) //Logic to set the value of x to send to master
{
x=1;
}else
{
x=0;
}
Slavesend=x;
SPDR = Slavesend; //Sends the x value to master via SPDR
delay(1000);
}
}
Добавлено after 2 minutes 36 seconds:
Вопрос в том как правельно и оптимально спарить атмега128 и есп32 по spa (кто мастер кто слейв) (чтобы можно было надежно обмениватса инфой постояно)..
И опыт сын ошибок трудных и гений парадоксов друг
Re: Радиоуправляемый кораблик своими руками.
ууу... фиг поймёшь что куда... с вашими библами))
Одно забыли... SPI у меги всего ОДИН и на нём все экранчики и НРФ и т.д. ...
работу SPI низя прерывать... иначе будет глюк системы))
https://docviewer.yandex.ru/view/0/?pag ... 3D&lang=ru
Зато есть два юарт... да не простых, а золотых )) синхронных ))
Добавлено after 1 minute 34 seconds:
есть ещё куча вариантов... от однопроводных... частотных... до многопроводных... на таймерах... и прерываниях...
короче... дофига всего можно сделать из простой AVR ))
Добавлено after 5 minutes 8 seconds:
сейчас атмега128 работает в режиме МАСТЕР. поэтому проще сделать есп32 в режиме слейв.
атмега128 будет опрашивать есп32 как обычную НРФ или W5100 или датчик... атмега128 без разницы кого опрашивать))
Параллель сделай да и всё... если выводов хватит ))
Добавлено after 5 minutes 49 seconds:
[uquote="sashamelja",url="/forum/viewtopic.php?p=3954098#p3954098"]А что и сколько нам надо чтобы передать туда-сюда (широту долготу ну и пару команд)?[/uquote]
вообще то... дофига всего)) пакетная передача у нас... с CRC...
Добавлено after 1 hour 14 minutes 44 seconds:
Наша атмега128 научилась сама считать CRC_32...
https://ru.wikipedia.org/wiki/Циклическ ... точный_код
для Ethernet стандарта IEEE 802.3
https://ru.wikipedia.org/wiki/IEEE_802.3
сама... без калькулятора... ! ))
http://www.sunshine2k.de/coding/javascr ... rc_js.html

Одно забыли... SPI у меги всего ОДИН и на нём все экранчики и НРФ и т.д. ...
работу SPI низя прерывать... иначе будет глюк системы))
https://docviewer.yandex.ru/view/0/?pag ... 3D&lang=ru
Зато есть два юарт... да не простых, а золотых )) синхронных ))
Добавлено after 1 minute 34 seconds:
есть ещё куча вариантов... от однопроводных... частотных... до многопроводных... на таймерах... и прерываниях...
короче... дофига всего можно сделать из простой AVR ))
Добавлено after 5 minutes 8 seconds:
сейчас атмега128 работает в режиме МАСТЕР. поэтому проще сделать есп32 в режиме слейв.
атмега128 будет опрашивать есп32 как обычную НРФ или W5100 или датчик... атмега128 без разницы кого опрашивать))
Параллель сделай да и всё... если выводов хватит ))
Добавлено after 5 minutes 49 seconds:
[uquote="sashamelja",url="/forum/viewtopic.php?p=3954098#p3954098"]А что и сколько нам надо чтобы передать туда-сюда (широту долготу ну и пару команд)?[/uquote]
вообще то... дофига всего)) пакетная передача у нас... с CRC...
Добавлено after 1 hour 14 minutes 44 seconds:
Наша атмега128 научилась сама считать CRC_32...
https://ru.wikipedia.org/wiki/Циклическ ... точный_код
для Ethernet стандарта IEEE 802.3
https://ru.wikipedia.org/wiki/IEEE_802.3
сама... без калькулятора... ! ))
http://www.sunshine2k.de/coding/javascr ... rc_js.html
- sashamelja
- Говорящий с текстолитом
- Сообщения: 1565
- Зарегистрирован: Пт янв 20, 2012 16:25:02
Re: Радиоуправляемый кораблик своими руками.
Параллель сделай да и всё... если выводов хватит ))
Много проводов, я думаю что такая большая скорость не понадобитса.
Да спай рацыонально было бы сделать слейвом на esp32 (есть примеры но они замутные и как по мен не надежные)
Привет старый добрый человеческий юарт
Много проводов, я думаю что такая большая скорость не понадобитса.
Да спай рацыонально было бы сделать слейвом на esp32 (есть примеры но они замутные и как по мен не надежные)
Привет старый добрый человеческий юарт
- Вложения
-
- carpbot4.rar
- (475.95 КБ) 161 скачивание
И опыт сын ошибок трудных и гений парадоксов друг
Re: Радиоуправляемый кораблик своими руками.
Для загрузки картинок рекомендуем воспользоваться нашим клевым хостингом - img.radiokot.ru
https://img.radiokot.ru/files/60690/med ... horxl6.JPG
А ещё люди конвертор придумали)) человеческий юарт...
вопрос спорный))
параллельный интерфейс используется часто... Причём с разным количеством проводов... Например в экранчиках количество проводов от 4 до 18...
-Старый LCD может работать на 4 провода D4...D7 -Старый LCD может работать на 8 провода D0...D7 -Новый TFT работать на 8 провода D0...D7
...
-Новый TFT работать на 16 провода D0...D15
...
-Новый TFT работать на 18 провода D0...D17 И т.д. и т.п. ))
точно так же может работать ATmega128 - от 1 до 8.
Больше 8 проводов смысла нет , потому что ATmega128 - 8-разрядный процессор ))
За один такт больше 8 бит ATmega128 не выдаст всё равно.))
Поэтому, что с 8 проводов... что с 18 проводов... ATmega128 будет работать с одинаковой скоростью))
Это вам не 64-разрядный процессор intel... Этот может за один такт выдать 64 бит... Для него имеет значение количество проводов ))

Добавлено after 9 hours 46 minutes 51 second:
А где наша последняя версия... я уже и забыл)) Там столько вносилось изменений...Хоть бы номер версии поменял...
По поводу подключения ATmega128 по SPI.
У ATmega128 только один аппаратный SPI. Можно сделать программный SPI, но не рекомендуется)) Почему ? А помнишь мы подключали пульт к компу по Ethernet с модулем W5100... даже видео сняли)) Там модуль W5100 работал через программный SPI. Долго мы с этим модулем W5100 провозились... В итоге всё таки запустили (куда он от нас денется
) , но тормоза там конкретные !!! А я сразу не понял откуда тормоза... теперь я знаю почему
Оказалось всё дело в самой ATmega128 !
Вот так вот неожиданно ))
Сначала подумали что во всём виноват W5100... Почему так решили ? Потому что у меня W5500 и он работает без тормозов на ATmega8 с программный SPI ))
Но потом я подключил W5500 к ATmega128 с программный SPI... И тут началось самое интересное - нифига не заработало
Но потом я подключил LCD экран к ATmega128 с программный SPI... И опять - нифига не заработало...
При этом на ATmega8 с программный SPI - работало всё ! И без тормозов))
Кусок кода - програмный SPI
*******************************
////////////////////////////// программный SPI:
unsigned char x; // x - Data SPI
unsigned char tx; // tx - SPI
unsigned char rx; // rx - SPI
unsigned char mask; // mask - SPI
////////////////////////////// функция программный SPI:
void SPI(void)
{
rx=0; // сброс RX
mask=0b10000000;
do {
if (tx & mask) PORTA.1 = 1;// выход MOSI
else PORTA.1 = 0;// выход MOSI
delay_us(2);
PORTA.3=1; // выход SCK
if (PINA.0) rx |= mask; // вход MISO
PORTA.3=0; // выход SCK
mask=(mask>>1);
}
while (mask);
delay_us(2);
PORTA.1 = 0; // сброс MOSI
}
void main(void)
{
////////////////////////////////////////////// программный SPI:
DDRA.0=0; // MISO
PORTA.0=0; // MISO
DDRA.1=1; // MOSI
PORTA.1=0; // MOSI
DDRA.2=1; // SS
PORTA.2=1; // SS
DDRA.3=1; // SCK
PORTA.3=0; // SCK
////////////////////////////////////////////// TX, RX - Data SPI
PORTA.2=0; // SS
tx=x; SPI(); x=rx;
PORTA.2=1; // SS
//////////////////////////////////////////////
}
*************************************
С этим куском кодом ATmega8 работает прекрасно ! А ATmega128 - нифига не работает ! ))
Точнее так: ATmega128 начинает работать... на LCD экране появляются первые буковки... и всё)) Дальше ATmega128 просто тупо "зависает" и перестаёт реагировать на любые кнопки... и даже не работает вывод RESET !
Кто знает почему так происходит - пишите. У меня не хватает мозгов это понять ))
Такое впечатление, что глюк на аппаратном уровне ATmega128...
Поэтому если будешь подключать свой W5100 к ATmega128, то подключай на аппаратный SPI.
Теперь ты понимаешь, почему я не советую подключать ATmega128 через программный SPI.

Добавлено after 27 minutes 34 seconds:
P.S.
Я долго искал причину...
Почему при передачи коротких последовательностей байт через программный SPI ATmega128 работает...
А при передачи длинных последовательностей байт через программный SPI ATmega128 зависает...
Изучал архитектуру... смотрел блоки... вместе и по отдельности... нифига не понятно почему так... ))
Архитектура у них одинаковая - и там и там обычный 8-разрядный процессор... Тут уже нужен микроскоп... )) Обычный не подойдёт... Нужен электронный ! )) )))
Короче... замучал я бедную ATmega128... В итоге она сдохла... точнее залочила... Ну и фиг с ней ))
Главное что причину я так и не понял.
https://img.radiokot.ru/files/60690/med ... horxl6.JPG
А ещё люди конвертор придумали)) человеческий юарт...
параллельный интерфейс используется часто... Причём с разным количеством проводов... Например в экранчиках количество проводов от 4 до 18...
-Старый LCD может работать на 4 провода D4...D7 -Старый LCD может работать на 8 провода D0...D7 -Новый TFT работать на 8 провода D0...D7
...
-Новый TFT работать на 16 провода D0...D15
...
-Новый TFT работать на 18 провода D0...D17 И т.д. и т.п. ))
точно так же может работать ATmega128 - от 1 до 8.
Больше 8 проводов смысла нет , потому что ATmega128 - 8-разрядный процессор ))
За один такт больше 8 бит ATmega128 не выдаст всё равно.))
Поэтому, что с 8 проводов... что с 18 проводов... ATmega128 будет работать с одинаковой скоростью))
Это вам не 64-разрядный процессор intel... Этот может за один такт выдать 64 бит... Для него имеет значение количество проводов ))
Добавлено after 9 hours 46 minutes 51 second:
А где наша последняя версия... я уже и забыл)) Там столько вносилось изменений...Хоть бы номер версии поменял...
По поводу подключения ATmega128 по SPI.
У ATmega128 только один аппаратный SPI. Можно сделать программный SPI, но не рекомендуется)) Почему ? А помнишь мы подключали пульт к компу по Ethernet с модулем W5100... даже видео сняли)) Там модуль W5100 работал через программный SPI. Долго мы с этим модулем W5100 провозились... В итоге всё таки запустили (куда он от нас денется
Оказалось всё дело в самой ATmega128 !
Сначала подумали что во всём виноват W5100... Почему так решили ? Потому что у меня W5500 и он работает без тормозов на ATmega8 с программный SPI ))
Но потом я подключил W5500 к ATmega128 с программный SPI... И тут началось самое интересное - нифига не заработало
Но потом я подключил LCD экран к ATmega128 с программный SPI... И опять - нифига не заработало...
При этом на ATmega8 с программный SPI - работало всё ! И без тормозов))
Кусок кода - програмный SPI
*******************************
////////////////////////////// программный SPI:
unsigned char x; // x - Data SPI
unsigned char tx; // tx - SPI
unsigned char rx; // rx - SPI
unsigned char mask; // mask - SPI
////////////////////////////// функция программный SPI:
void SPI(void)
{
rx=0; // сброс RX
mask=0b10000000;
do {
if (tx & mask) PORTA.1 = 1;// выход MOSI
else PORTA.1 = 0;// выход MOSI
delay_us(2);
PORTA.3=1; // выход SCK
if (PINA.0) rx |= mask; // вход MISO
PORTA.3=0; // выход SCK
mask=(mask>>1);
}
while (mask);
delay_us(2);
PORTA.1 = 0; // сброс MOSI
}
void main(void)
{
////////////////////////////////////////////// программный SPI:
DDRA.0=0; // MISO
PORTA.0=0; // MISO
DDRA.1=1; // MOSI
PORTA.1=0; // MOSI
DDRA.2=1; // SS
PORTA.2=1; // SS
DDRA.3=1; // SCK
PORTA.3=0; // SCK
////////////////////////////////////////////// TX, RX - Data SPI
PORTA.2=0; // SS
tx=x; SPI(); x=rx;
PORTA.2=1; // SS
//////////////////////////////////////////////
}
*************************************
С этим куском кодом ATmega8 работает прекрасно ! А ATmega128 - нифига не работает ! ))
Точнее так: ATmega128 начинает работать... на LCD экране появляются первые буковки... и всё)) Дальше ATmega128 просто тупо "зависает" и перестаёт реагировать на любые кнопки... и даже не работает вывод RESET !
Кто знает почему так происходит - пишите. У меня не хватает мозгов это понять ))
Такое впечатление, что глюк на аппаратном уровне ATmega128...
Поэтому если будешь подключать свой W5100 к ATmega128, то подключай на аппаратный SPI.
Теперь ты понимаешь, почему я не советую подключать ATmega128 через программный SPI.
Добавлено after 27 minutes 34 seconds:
P.S.
Я долго искал причину...
Почему при передачи коротких последовательностей байт через программный SPI ATmega128 работает...
А при передачи длинных последовательностей байт через программный SPI ATmega128 зависает...
Изучал архитектуру... смотрел блоки... вместе и по отдельности... нифига не понятно почему так... ))
Архитектура у них одинаковая - и там и там обычный 8-разрядный процессор... Тут уже нужен микроскоп... )) Обычный не подойдёт... Нужен электронный ! )) )))
Короче... замучал я бедную ATmega128... В итоге она сдохла... точнее залочила... Ну и фиг с ней ))
Главное что причину я так и не понял.
- sashamelja
- Говорящий с текстолитом
- Сообщения: 1565
- Зарегистрирован: Пт янв 20, 2012 16:25:02
Re: Радиоуправляемый кораблик своими руками.
Вот на этом мы остоновились
Добавлено after 2 minutes 12 seconds:
128 надо любить а не мучать
Добавлено after 6 minutes 40 seconds:
модуль

пульт

Добавлено after 2 minutes 12 seconds:
128 надо любить а не мучать
Добавлено after 6 minutes 40 seconds:
модуль
пульт
- Вложения
-
- V_3_2_pul.c
- (209.96 КБ) 137 скачиваний
-
- V_3_2_mod.c
- (47.15 КБ) 140 скачиваний
И опыт сын ошибок трудных и гений парадоксов друг
Re: Радиоуправляемый кораблик своими руками.
ясно)) а почему не подписано ? ни кнопки... ни экранчик... ни формат пакетов...
вообще лучше Splan кидать...
Добавлено after 5 minutes 32 seconds:
бесплатный диск нужен... чтоб качать без регистрации))
https://yadi.sk/d/czLKezV6vPFf0w
https://yadi.sk/d/FLn8IuJE2LwjGQ
Добавлено after 7 minutes 52 seconds:
а мне не нравится ATmega128... щас ATmega328Р мучаю))
у ATmega328Р меньше потребление...
ATmega8 - 5 mA (при 3,3v).
ATmega328 - 3 mA (при 3,3v).
у ATmega328Р больше частота...
ATmega8 - 16 MHz (MAX 25 MHz).
ATmega328 - 20 MHz (MAX ??? MHz).
последний вопрос крайне интересный...
если ATmega328Р выдаст 30 MHz, то можно сделать Ethernet))

Добавлено after 34 minutes 23 seconds:
Такую связь хочу))
выше подключал через роутер разные вирт. машины...
Прикол в том, что когда Windows 7 отправляет пакет, то Windows 7 не считает контрольную сумму заголовка IP (Header checksum)...
Это же нарушение Ethernet стандарта IEEE 802.3... !
в более ранних версиях типа Windows XP... и т.д. такой проблемы не было...
Из-за этого Java машина не работает... я так понял Microsoft вообще офигел !)) хорошо что роутер возвращает нормальный пакет))
Но к счастью наша ATmega128 (и ATmega328Р и ATmega8) ... все умеют считать все контрольные суммы))
Header checksum Protocol IP: 0x41, 0x83
Protocol UDP checksum: 0x29, 0x02
Ethernet checksum: 0xB3, 0x31, 0x88, 0x1B
я так понял Microsoft решил уже перейти на Ethernet версии 6 (IPv6)...
В новой версии IPv6 нет Header checksum Protocol IP.
А то что все сидят на Ethernet версии 4 (IPv4)... Microsoft это вообще не волнует ))
Мда... ))

Добавлено after 5 minutes 32 seconds:
бесплатный диск нужен... чтоб качать без регистрации))
https://yadi.sk/d/czLKezV6vPFf0w
https://yadi.sk/d/FLn8IuJE2LwjGQ
Добавлено after 7 minutes 52 seconds:
а мне не нравится ATmega128... щас ATmega328Р мучаю))
у ATmega328Р меньше потребление...
ATmega8 - 5 mA (при 3,3v).
ATmega328 - 3 mA (при 3,3v).
у ATmega328Р больше частота...
ATmega8 - 16 MHz (MAX 25 MHz).
ATmega328 - 20 MHz (MAX ??? MHz).
последний вопрос крайне интересный...
Добавлено after 34 minutes 23 seconds:
Такую связь хочу))
Это же нарушение Ethernet стандарта IEEE 802.3... !
в более ранних версиях типа Windows XP... и т.д. такой проблемы не было...
Из-за этого Java машина не работает... я так понял Microsoft вообще офигел !)) хорошо что роутер возвращает нормальный пакет))
Но к счастью наша ATmega128 (и ATmega328Р и ATmega8) ... все умеют считать все контрольные суммы))
Header checksum Protocol IP: 0x41, 0x83
Protocol UDP checksum: 0x29, 0x02
Ethernet checksum: 0xB3, 0x31, 0x88, 0x1B
я так понял Microsoft решил уже перейти на Ethernet версии 6 (IPv6)...
В новой версии IPv6 нет Header checksum Protocol IP.
А то что все сидят на Ethernet версии 4 (IPv4)... Microsoft это вообще не волнует ))
Мда... ))
- sashamelja
- Говорящий с текстолитом
- Сообщения: 1565
- Зарегистрирован: Пт янв 20, 2012 16:25:02
Re: Радиоуправляемый кораблик своими руками.
ясно)) а почему не подписано ? ни кнопки... ни экранчик... ни формат пакетов...
Потому что пока не ясны все моменты.
__________
У меня тоже была идея про 328 в модуле караблика, но она испарилась быстро потому что не хватает портов (и там никак не выкрутится, розшерители не вариант)
___________________
вообще лучше Splan кидать...
Как? конкретно(телеграм или гугл)
или дроббокс
https://www.dropbox.com/s/psdw8g9wxdf9u ... .spl7?dl=0
Потому что пока не ясны все моменты.
__________
У меня тоже была идея про 328 в модуле караблика, но она испарилась быстро потому что не хватает портов (и там никак не выкрутится, розшерители не вариант)
___________________
вообще лучше Splan кидать...
Как? конкретно(телеграм или гугл)
или дроббокс
https://www.dropbox.com/s/psdw8g9wxdf9u ... .spl7?dl=0
И опыт сын ошибок трудных и гений парадоксов друг
Re: Радиоуправляемый кораблик своими руками.
https://ru.wikipedia.org/wiki/Dropbox
пойдёт))
Добавлено after 2 minutes 55 seconds:
если выводов мало... ставим две 328 )) выше поставили две 128 в пульт... и нормально)) никто не жалуется))

пойдёт))
Добавлено after 2 minutes 55 seconds:
если выводов мало... ставим две 328 )) выше поставили две 128 в пульт... и нормально)) никто не жалуется))
- sashamelja
- Говорящий с текстолитом
- Сообщения: 1565
- Зарегистрирован: Пт янв 20, 2012 16:25:02
Re: Радиоуправляемый кораблик своими руками.
Ставить два проца для того чтобы было больше рук и ног (как то не по феншую) лутше брать процесор по надобности как в прочем мы и сделали.
И опыт сын ошибок трудных и гений парадоксов друг
Re: Радиоуправляемый кораблик своими руками.
Всех с Рождеством Христовым.
Флудить не буду только по делу.
Объясните мне тупому зачем:
столько серв плюс датчики положения серв, два акка, и многое другое. Всего этого хватит на управлением флотилии линкоров. Давайте поставим три экранчика а лучше четыре, и меленький контролер для каждого. В итоге разгоним пульт до размеров посылочного ящика.
Можно пойти иным путем. Оставить всего столько сколько нужно. Освободить пины и память МК. Взять экранчик по больше (понятно он будет немного дороже) добавить блок вай фая или блютуз (для тех кто любит на рыбалку ездить с планшетом или ноутом) и дублировать показания на телефон в крайнем случае.
Теперь немножко флуда --- Два мужика лежат в луже, один выпил бутылку водки а второй две --- Вопрос «Зачем пить меньше. Если результат один»
Флудить не буду только по делу.
Объясните мне тупому зачем:
Можно пойти иным путем. Оставить всего столько сколько нужно. Освободить пины и память МК. Взять экранчик по больше (понятно он будет немного дороже) добавить блок вай фая или блютуз (для тех кто любит на рыбалку ездить с планшетом или ноутом) и дублировать показания на телефон в крайнем случае.
Теперь немножко флуда --- Два мужика лежат в луже, один выпил бутылку водки а второй две --- Вопрос «Зачем пить меньше. Если результат один»
- sashamelja
- Говорящий с текстолитом
- Сообщения: 1565
- Зарегистрирован: Пт янв 20, 2012 16:25:02
Re: Радиоуправляемый кораблик своими руками.
roman.com
Я думаю что нужно поставить точку с сонаром дна (за прошедшие время я не нашёл лучшего варианта чем то что мы пробовали)
_______________
Но на да сделать чтобы он работал как на схеме и на пульту и на модуле, в меню сделать выбор или с пульта или с модуля (рисуем постоянно на экране эхолот)
В меню надо сделать эхолот (пульт-модуль-выключен)
____________________
Для роботы, того сонара чтобы получать получать Gap=1000mm (ему надо получать в рх любой символ)
Возможно ли в подменю сделать регулировку переодичности например (0.5сек, 1 сек, 2 сек, 3 сек)
https://www.dropbox.com/s/qlr4uunj1dxed ... .spl7?dl=0
___________________________
И все наработки по поводу парсинга строки gps (перенести с модуля на пульт)как нарисовано на схеме избавитса от компасов акселерометров и оставить только рисовалку gpc как на схеме на втором єкране (+кнопка переключения подрежимов будет дальше использована но не щас)
_________________________
Нащет пакета итд что будут приходить с есп32 и что ей надо получать (надо обсуждать и думать, кароче надо время)
Я думаю что нужно поставить точку с сонаром дна (за прошедшие время я не нашёл лучшего варианта чем то что мы пробовали)
_______________
Но на да сделать чтобы он работал как на схеме и на пульту и на модуле, в меню сделать выбор или с пульта или с модуля (рисуем постоянно на экране эхолот)
В меню надо сделать эхолот (пульт-модуль-выключен)
____________________
Для роботы, того сонара чтобы получать получать Gap=1000mm (ему надо получать в рх любой символ)
Возможно ли в подменю сделать регулировку переодичности например (0.5сек, 1 сек, 2 сек, 3 сек)
https://www.dropbox.com/s/qlr4uunj1dxed ... .spl7?dl=0
___________________________
И все наработки по поводу парсинга строки gps (перенести с модуля на пульт)как нарисовано на схеме избавитса от компасов акселерометров и оставить только рисовалку gpc как на схеме на втором єкране (+кнопка переключения подрежимов будет дальше использована но не щас)
_________________________
Нащет пакета итд что будут приходить с есп32 и что ей надо получать (надо обсуждать и думать, кароче надо время)
И опыт сын ошибок трудных и гений парадоксов друг


