Это копия, сохраненная 22 августа 2020 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Вопросы по основам радиоэлектроники НУЖНО спрашивать в первом прикрепленном треде на доске.
В данном треде обсуждается только Arduino и AVR (с использованием библиотек Arduino)
Коротко - о главном:
- Что такое Arduino?
- Ардуина - это конструктор из Atmega<X> и своей IDE с библиотеками, который будет выполнять написанные тобой команды - программу, или же просто - скетч.
- Что такое IDE?
- IDE - это ПО для разработки скетчей, брать тут -
https://www.arduino.cc/en/Main/Software
Профи берут ПО здесь -
http://www.besplatnyeprogrammy.ru/notepad.html
- Сильно ли я сосну, купив arduino your name, в плане того, что она использует 3.3в вместо 5в как у остальных?
- Если берешь побаловаться и закинуть, то строго похуй. Если какой проект мутишь, то тут уже смотря чем питать будешь.
- Как, например, я могу сжечь Arduino?
- Подать больше 5В на входы. И ещё 1000 способов от русского Ивана, не умеющего в инструкции.
- Зачем нужны всякие борды-хуёрды?
- Чтобы ты не запорол своим лудилом из-за ошибок схематики пару сотен МК
- Я купил Arduino, но не знаю, зачем. Что делать?
- Идеи для анона -
http://cxem.net/arduino/arduino.php
http://arduino-projects.ru/
http://arduino-diy.com/arduino_proekty-0
- Я хочу вкатиться по-серьёзному, что делать?
- Читать -
http://publ.lib.ru/ARCHIVES/R/REVICH_Yuriy_Vsevolodovich/_Revich_Yu.V..html
- Я не умею читать, что делать?
- Смотреть годные каналы -
https://www.youtube.com/channel/UC7aH7HVqDvwB1xNHfSl-fDw
https://www.youtube.com/user/0arduinoLab
https://www.youtube.com/watch?v=bO_jN0Lpz3Q&list=PL944BA86E715C5FEE
- Я осознал, что могу мигать светодиодом в СОЗИДАНИЕ, что делать?
- Брать Arduino Starter Pack Edition -
https://ru.aliexpress.com/item/NEWEST-RFID-Starter-Kit-for-Arduino-UNO-R3-Upgraded-version-Learning-Suite-With-Retail-Box/32714696336.html
- МНЕ МАЛО
- Что ж, дорогой друг, настало время НАСТОЯЩИХ ПОДДЕЛОК! -
Модулей MEGA PACK https://ru.aliexpress.com/item/37-Arduino/32243738985.html
- МНЕ ВСЁ ЕЩЁ МАЛО
- Поздравляю! Вы прошли игру. Самое время зарабатывать 300kk/ns и наставлять молодых оленят на путь истинный ITT
И помни, анон, ардуинщики - (не) дети
Предыдущий тред меряет температуру там - https://2ch.hk/ra/res/255973.html (М)
https://ru.aliexpress.com/item/37-IN-1-SENSOR-KITS-FOR-ARDUINO-HIGH-QUALITY-FREE-SHIPPING-Works-with-Official-for-Arduino/32562935199.html?spm=a2g0s.9042311.0.0.274233edUDGQLV
https://ru.aliexpress.com/item/Free-shipping-MEGA-2560-R3-ATmega2560-R3-AVR-USB-board-Free-USB-Cable-for-Arduino-2560/32561166297.html?spm=a2g0s.9042311.0.0.274233edUDGQLV
Ну ты психанул, конечно.
А для чего это всё? Какой-то определённый проект или просто чтоб в столе валялось?
Вообще хочу себе стимпанковские очки, чтобы реагировали на моргания глаз и закрывали диафрагму, + сужались на свету. Ещё заказал 5 сервомоторчиков самых дешевых, буду собирать схему для ММГ (считывание мышечных сокращений) и буду ебашить бионический протез на 3д принтере, для этого, собственно, и датчики давления, чтобы они откликались вибрацией прямо пропорционально давлению. Так чтобы инвалид имел хоть какую-то обратную связь со своей рукой. Короче, для развлечения. Ещё есть идея в машине сделать доводчик багажника. Открывается он сам, а закрывать нужно руками, так дела не делаются. Управляется там замок -12 вольтами, подаётся импульс, замок открывается, хочу сделать, чтобы на каждый второй импульс ардуина запускала моторчик, который будет багажник закрывать до концевика. Концевик разомкнулся, моторчик с небольшой задержкой отключился. Чтобы в итоге получилось типа: нажимаешь кнопку на сигналке, багажник на пружинах открывается, нажимаешь второй раз, ардуина вертает всё в зад, как было.
Короче идей дохерища. Что ещё посоветуете докупить?
Итак, я хочу программировать микроконтроллеры записью значений в регистры, без использования различных библиотек (за исключением CMSIS).
Собственно вопрос заключается в следующем: "А какие есть пути что бы узнать в какой последовательности инициализировать периферию, включать тактирование и т.п.?". Конечно, я могу получить некоторую информацию из даташита или посмотреть исходники HALa, но это занимает уйму времени. Неужели вся эта информация добывается логическим путём при помощи даташита?
Практически все уроки и статьи на форумах что мне попадались, вызывают ощущение что авторы таковых сами не до конца понимают что и зачем они делают, либо копипастят с других источников меняя слова на сой лад. Остальная часть книжечек и прочего - это использование высокоуровневых библиотек.
Быть может я чего-то не знаю или не внимательно читаю даташит? Тогда почему такое говённое качество статей и уроков в интернете и книгах? Наставьте на путь истинный, я не хочу обучаться по принципу "нашёл несколько примеров в гугле и написал рабочий код".
>реагировали на моргания глаз и закрывали диафрагму, + сужались на свету.
>Одно моргание человеческого глаза длится приблизительно 0,05 секунды
Ебать ты гений
Я в этом ничего не понимаю, но на attiny13 (микруха центов за 30 с 1кб памяти) аж 176 страниц
http://ww1.microchip.com/downloads/en/DeviceDoc/doc2535.pdf
Мне кажется там вообще всё есть.
А на ATmega48A/PA/88A/PA/168A/PA/328/P вообще 660 листов нахуй.
http://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-8271-8-bit-AVR-Microcontroller-ATmega48A-48PA-88A-88PA-168A-168PA-328-328P_datasheet_Complete.pdf
Какие проблемы подсветить глаз ИК диодом и читать изменения уровня отраженного света, при открытом глазе роговица будет больше света отражать, чем кожа при закрытом. Или частоты дискретизации не хватит?
Да и не обязательно с такой же скоростью моргать, будет достаточно закрываться в синхрон с глазами.
Для доводчика схема собирается на транзисторах, дуина не нужна. Серьёзно.
ММГ работает, 100мВ есть на руке, около глаза не пробовал считывать. Но ты лучше мимическую мышцу попробуй найти на атласе тела, а потом по трём контактам вычислять напряжённость. Но диафрагму придется делать из металла, ибо микросерва пластик будет с усилием сжимать, что приведет к её повышенному износу.
Протезы работают, сам сделал, сам ММГ обработал. Кустарно, работает от павербанка "3,7 -> 5". Пришлось в серву ставить многооборотный резистор, чтобы длину хода увеличить. Идея годная, но сжатие-разжатие кисти медленное.
> мимическую мышцу попробуй найти на атласе тела
Да я и так знаю, где она, я ж медик. Только вот электроды там некуда зацепить и изменение потенциала совсем крошечное.
> Для доводчика схема собирается на транзисторах, дуина не нужна. Серьёзно.
Можно инфы, если не жалко?
>электроды там некуда зацепить и изменение потенциала совсем крошечное
Ты просто медик же! Потенциал там если есть хотя бы 10мВ, то AD620 вытянет его двумя каскадами до читаемого.
>Можно инфы, если не жалко?
Концевик, транзисторы ну и триггер, про который я сразу забыл. Вот сейчас не нарисую, лучше сходи в поисковике поищи.
С датчиком тока уже не нужна задержка будет.
Есть вопрос, имеет ли кто-то здесь стартовый кит от keyestudio
Ну серьёзно. Ну тебя же просто разводят на бабло. Ты 2-3 модуля этих поюзаешь, а дальше сам сможешь паять нужные тебе устройства. Надеюсь.
Хотя чёрт тебя знает.
У меня такой, только с обычной Уно.
Только для надежности я бы еще поставил резистор и стабилитрон перед выходом оптопары
Если критична скорость размыкания то убери диод и поставь стабилитрон между стоком и истоком транзистора.
О - ОПТОПАРА
Они вообще бесплатные. Только за доставку заплати.
https://www.aliexpress.com/item/20pcs-lot-Free-shippin-817C-optical-coupling-optocoupler-817-DIP4-PC817-PC817C-new-original/32870792508.html
С одной стороны через резистор питаешь внутренний светодиод, он открывает транзистор с другой стороны. А там у тебя уже 12 вольтовое всё.
Эти оптопары изолируют до 5000 вольт по даташиту если не ошибаюсь.
Если в комплекте действительно годный гайдбук с примерами проектов и все необходимое для их сборки, то неплохой вариант для начинающего. Ибо проблема большинства этих китайских наборов - куча ненужной рандомной хуйни в комплекте, и хуй знает куда ее применить. В этом плане опять же хороши наборы Амперки: с точки зрения железок в комплекте - дикий оверпрайс, но гайдбук, документация на русском языке, примеры кода с подробными комментариями и даже обучающие видосики делают старт для нуба гораздо проще
>>36067
>>36069
Кстати, зацените мой первый скетч на ардуине вообще. Навыков программирования только паскаль в школе.
Ебашил всё на эмуляторе т.к моя дуина ещё едет.
#define PIN_ENDER1 2
#define PIN_ENDER2 3
#define PIN_SIGNAL 4
#define PIN_LEDE1 8
#define PIN_LEDE2 9
#define PIN_LEDEIN 10
void setup()
{
pinMode(PIN_ENDER1, INPUT_PULLUP);
pinMode(PIN_ENDER2, INPUT_PULLUP);
pinMode(PIN_SIGNAL, INPUT_PULLUP);
pinMode(PIN_LEDE1, OUTPUT);
pinMode(PIN_LEDE2, OUTPUT);
pinMode(PIN_LEDEIN, OUTPUT);
//digitalWrite(PIN_LEDEIN, HIGH);
}
void loop()
{
int val1 = digitalRead(PIN_SIGNAL); //Читаем сигнал открытия багажника
int val2 = digitalRead(PIN_ENDER1); //Читаем коцевик закрыт
int val3 = digitalRead(PIN_ENDER2); //Читаем концевик открыт
if (val1 == LOW && val2 == HIGH){ //Если пришёл "-" и багажник закрыт
digitalWrite(PIN_LEDE1, HIGH); //Даём сигнал открыть багажник
}
if (val2 == LOW && val3 == HIGH){ //Если багажник открыт
delay(500); //Задержка 0.5с
digitalWrite(PIN_LEDE1, LOW); //Выключаем электродвигатель
}
if (val1 == LOW && val3 == HIGH){ //Если багажник открыт и пришел "-"
digitalWrite(PIN_LEDE2, HIGH); //Даём сигнал закрыть багажник
}
if (val3 == LOW && val2 == HIGH){ //Если багажник закрыт
delay(500); //Задержка 0.5с
digitalWrite(PIN_LEDE2, LOW); //Выключаем электродвигатель
}
}
У меня есть шансы? Что-нибудь посоветуете?
>>36067
>>36069
Кстати, зацените мой первый скетч на ардуине вообще. Навыков программирования только паскаль в школе.
Ебашил всё на эмуляторе т.к моя дуина ещё едет.
#define PIN_ENDER1 2
#define PIN_ENDER2 3
#define PIN_SIGNAL 4
#define PIN_LEDE1 8
#define PIN_LEDE2 9
#define PIN_LEDEIN 10
void setup()
{
pinMode(PIN_ENDER1, INPUT_PULLUP);
pinMode(PIN_ENDER2, INPUT_PULLUP);
pinMode(PIN_SIGNAL, INPUT_PULLUP);
pinMode(PIN_LEDE1, OUTPUT);
pinMode(PIN_LEDE2, OUTPUT);
pinMode(PIN_LEDEIN, OUTPUT);
//digitalWrite(PIN_LEDEIN, HIGH);
}
void loop()
{
int val1 = digitalRead(PIN_SIGNAL); //Читаем сигнал открытия багажника
int val2 = digitalRead(PIN_ENDER1); //Читаем коцевик закрыт
int val3 = digitalRead(PIN_ENDER2); //Читаем концевик открыт
if (val1 == LOW && val2 == HIGH){ //Если пришёл "-" и багажник закрыт
digitalWrite(PIN_LEDE1, HIGH); //Даём сигнал открыть багажник
}
if (val2 == LOW && val3 == HIGH){ //Если багажник открыт
delay(500); //Задержка 0.5с
digitalWrite(PIN_LEDE1, LOW); //Выключаем электродвигатель
}
if (val1 == LOW && val3 == HIGH){ //Если багажник открыт и пришел "-"
digitalWrite(PIN_LEDE2, HIGH); //Даём сигнал закрыть багажник
}
if (val3 == LOW && val2 == HIGH){ //Если багажник закрыт
delay(500); //Задержка 0.5с
digitalWrite(PIN_LEDE2, LOW); //Выключаем электродвигатель
}
}
У меня есть шансы? Что-нибудь посоветуете?
Там входной сигнал -12V, я его через реле развязал, которое просто замыкает на дуине землю и 4 цифровой пин.
Реле то как подключал? Напрямую от пина питал?
Так можно выжечь ногу, слишком высокий ток.
А ещё если ты диод не поставил, в момент выключения там ебанутый скачок обратного напряжения, мог вообще микруху выжечь.
Или у тебя модуль с реле? Тогда всё нормально.
Не, реле там 12в сетью питается. Дуина на выходах сидит.
Просто у меня с сигнализации выходит -12в, вот я на один контакт обмотки подал +12в, а на другой этот управляющий. Получается когда мы жмем кнопку реле срабатывает и замыкает на ардуине GND и 4 пин.
вискомуфта это называется
Можно же сделать задержку проверки, скажем в 1 секунду. Если через секунду после старта ток превышает заданный, все хуйня, давай по новой
ПРАВИЛЬНЫЙ порядок действий.
Во первых выкидываем ардуину и покупаем отладочную плату STM32 и/или STM32 и STM8. У AVR не лучшие времена, она проигрывает гонку STM. Но даже изучая AVR пользы будет больше чем от богомерзкой ардуинки. Ардуину можно нужно шить как простой AVR камень, считай что это дешёвая отладочная плата. Не забудь скачать даташит на свой камень.
Во вторых, идём в программач, в Си трэд. Качаем книгу Стивен Прата "Язык программирования Си" 6-е издание. Продаётся на торрентах. Книги от K&R немного отклоняются о принятого сейчас стандарта С11 но написаны попроще. Не надо боятся, Си простой и понятный язык. С++ хорош но нуб в нём утонет нахуй. И к тому же, не на все камни есть компилятор С++. Алсо, от компилятора тоже дохуя чего зависит. И да их много.
Немного конкретики, микроконтроллеры это не процессоры.
Не используй операции с плавающей точкой! На камнях нет сопроцессора для этого говна на с STM32 4m есть и такие вычисления идут МЕДЛЕННО. Ничего не высчитывай во время работы, что можно посчитать до компиляции - нужно посчитать до компиляции, и использовать готовые значения а не ебать камень во время работы.
Ардуина нужна чтобы помигать светодиодом ощутить всю прелесть дребезга контактов и не ссаться при виде кода. ВСЁ. Освоил базу пиздуй дальше не задерживайся на этом говне. Изучая ардуину ты изучаешь ТОЛЬКО ардуину.
неплохое видео от уважаемого человека - https://youtu.be/m3ViTkyPUKo почему ардуина говно.
Ребята, давайте жить дружно, запилите единый трэд по МикроКонтроллерам.
Нахуя в сотый раз срывать покровы? С поразительно регулярностью возникают кадры, попытавшиеся построить дом из детского лего и внезапно обнаруживающие, что из кирпичей дом всё же лучше.
Во первых иди нахуй Во-первых, мы тут без тебя разобрались бы что, кому, и куда нужно. А во-вторых, давай жить дружно и не срать больше сюда.
>Не надо боятся, Си простой и понятный язык.
Си может и нет, но вот эта всякая залупа авровская
>//Interrupt Service Routine for INT0
>ISR(INT0_vect)
>GICR = 1<<INT0; // Enable INT0
>MCUCR = 1<<ISC01 | 1<<ISC00;// Trigger INT0 on rising edge
Этож ебанись.
Только всё ровно непонятно, нахуя это новичку, который хелоуворлд еле осиливает.
Операции это хорошо, но я как я буду запоминать вот это всё
ISR GICR INT0 MCUCR ISC01 ISC00 HUYSOSI
У всяких Лилий и Промини памяти нема же, а если еще и свои библиотеки зашивать...уф, не хватит
Может быть и так, только на ногодрыге микроконтроллеры не заканчиваются. Более того, иногда вообще без ногодрыга обходятся.
И когда (если) тебе перестанет хватать ногодрыга, придется начать изучать регистры.
>>36733
Это не требуется помнить наизусть, считай это справочной информацией. Обычно непосредственно с регистрами работают небольшие, относительно всей программы, кусочки кода. Написать эти кусочки, заглядывая в даташит, совсем недолго по сравнению с затратами времени на написание остального кода. Хотя, если ты делаешь одни мигалки, то да, сложно будет.
Они в IDE, ты когда их подключаешь, компилятор интерпретирует твои команды из библиотеки в машинный код.
Закидывается только та часть библиотеки, которая используется в работе. Так что везде памяти хватает, не еби мозг.
20в многовато будет. Если до 5-и вольт, то можно ардуиной мерить.
Ультраньюфаг врывается.
Есть необходимость запилить что-то типа обратного таймера, ну или зуммера/пищалки с задержкой в 30/60/120сек., не суть. Для этих задач хватит встроенной считалки ардуины, которой она миллисекунды задержки тикает, или понадобится какой-нибудь модуль часов реального времени?
Супер точность не нужна, если за минуту наврет на полсекунды, то все равно будет норм.
Откуда там возьмется такая ошибка? Ардуина же от кварца тактируется, разве нет? Миллисекунды эти по прерываниям от таймера считаются, соответственно все упирается в точность кварца. В самом худшем случае это 100ppm=0,01. Ошибки могут появиться только если где-нибудь запрещаются прерывания.
Удивительный какой-то тред, даже в ньюфаготреде такой концентрации бреда нет.
Купи приставку типа Hantek или Instrustar, самые дешёвые по 3.5К где-то.
Есть варик старый телек с кинескопом переделать под осциллограф. Схема есть в журнале радио бородатого года.
Пусть есть цепь с фиксированным напряжением N и огромной силой тока М, а также резистор рассеивающий N ватт.
Замыкаем цепь этим резюком, через него пойдет лишь ток 1A, больше не будет? Или если резюк - единственный путь для тока - тогда через него пойдет M ампер и он сгорит впердоч?
Не понял вопрос, но советую почитать школьный учебник по физике или википедию.
https://ru.wikipedia.org/wiki/Закон_Ома
https://ru.wikipedia.org/wiki/Правила_Кирхгофа
Все, что нужно знать о современных радачах-еще-не-бородачах.
Запускаешь таймер на 10мкс, по таймеру обрабатываешь "0" или "1" на ножке светодиода. от 0 до 250 крутишь эти самые 10мкс, получаешь ШИМ сигнал и кучу цветов.
Есть у меня такой вот сенсор. Я цепляю 1 на 5вольт, 3 - на землю, а 2, через резистор на землю и на аналоговый вход ардуины. Теперь я читаю (например каждые 500мс), что он мне дает и офигеваю. Потому, что выдает он мне какую-то полную чушь. Например может сперва несколько раз подряд ~50, а потом один раз ~120 и так циклично. Это, если я ничего не делаю. Если приблизить руку, то иногда реагирует, но такие прыжки остаются.
Что я делаю не так?
Ты все не так делаешь. Для начала мог бы прочитать о том что такое пироэлектрический эффект. Заряд в пироэлектрике появляется при изменении температуры. И заряд этот постепенно стекает на землю. Поэтому тебе нужно приделать полосовой фильтр на ОУ.
Спасибо. Почитал и послушал. Действительно я не так понимал, что PIR делает. Получается, что мне как раз эти (или другие) пики ловить и надо? Причем так, чтобы они в обе стороны были?
Я понимаю, что до усилителя сигналы очень слабые. Значит ли это, что считывать их с элемента нет никакого смысла? Мне просто интересно посмотреть, что датчик сам по себе выдает. Ведь я могу их и програмно усилить или они до усиления, какие-то не такие?
>>37392
А вот разъяснить, в чем я кретин, религия не позволяет? Я же за помощью пришел. Ну например сказать что-то типа: "синал слишком слабый, тебе нужно столько-то. Прочесть про это сможешь по ссылке"
датчик твой выдаёт сигнал с размахом 20 милливольт и смещением от нуля в 100 миливольт
иными словами при затемнении на выходе будет ~125 милливольт (0,125 вольт) а при подсветке ~90 милливольт (0,09) (хотя я могу ошибаться и будет наоборот)
и да скорее всего ты его уже прожарил, и можешь выкинуть
Спасибо. Уже понятнее.
>и да скорее всего ты его уже прожарил, и можешь выкинуть
Почему ты так думаешь? Я на него, как и указано, только 5 вольт с ардуины подавал + к аналоговому входу подсоеденил. Как я его мог прожарить?
потому что 20mv PP означает переменку с постоянным(dc) смещением а аналоговый вход ардуины даже отключеный подтянут к +5 через диод (ну если вдруг не подтянут то не выкидывай тогда)
и как выше тебе подсказали сигнал снимать с него нужно при помощи конденсатора включенного последовательно что бы срезать постоянку (офсет)
>тебе нужно приделать полосовой фильтр
>подтянут к +5 через диод
Причем тут это? Диод начнет открываться когда к выводу приложено больше 5 В. А тут датчик питается от 5 В, значит больше 5 В на выходе не будет и диод не откроется.
>снимать с него нужно при помощи конденсатора
Как бы не совсем так. Что такое RC-цепочка слышал? Какая постоянная времени получится в этом случае? Еще отклик от датчика может быть как вверх так и вниз относительно его среднего уровня, соответственно после конденсатора все равно нужен какой-то средний уровень, который больше нуля.
Полосовой фильтр для другого - информация о движении содержится в относительно быстрых изменениях напряжения. Если в помещении будет плавно меняться температура, то датчик как-то на это среагирует, только полезной информацией это не будет. Дополнительно целесообразно отфильтровать слишком быстрые изменения, наводки 50 Гц и прочие шумы. Поэтому если отфильтровать и потом усилить, то можно повысить чувствительность. Иначе можно в микроконтроллере запрограммировать цифровые фильтры.
>>37427
Давно уже можно было спаять первую попавшуюся схему из гугла. Например http://www.circuitdiagramworld.com/sensor_circuit_diagram/RE200B_Pyroelectric_Passive_Infrared_Sensor_5082.html Из этой схемы необходим только фильтр на ОУ IC1A, выход которого можешь подключать к своей дурине. А можно и целиком спаять схему, тоже ничего так.
Хочу сделать робота, который мог бы обнаруживать лица через камеру и поворачивать корпус сторону человека.
Примерно хочу сделать так: камера с сервоприводами подключена к ардуино, камера отправляет видеопоток на компьютер, там обнаруживается лицо с помощью python, определяются координаты, а затем отправляется сигнал сервоприводам двигать камеру так, чтобы лицо было в центре. И у меня возникло несколько вопросов:
1) Можно ли полностью управлять всей конструкцией через python?
2) Какую камеру подключить? Читал про ov7670, но кажись она слабая, не уверен, что точность распознавания будет высокой, но думаю хватит. Можно ли подключить вебкамеру? Если да, то как?
3) И собственно, так как я ньюфаг, какую плату arduino выбрать?в общем выйдет 7 сервоприводов, камера, 4 кнопки и мб круговой светодиод
Жду ваших ответов!
>ov7670
Сомнительная фигня зачем вообще городить камеру к ардуине?. Не проще вебку взять?
>управлять всей конструкцией через python
Гугл говорит можно юзать PySerial.
>7 сервоприводов
Нахуа? Смотря какие. А вообще:
>The Servo library supports up to 12 motors on most Arduino boards and 48 on the Arduino Mega.
А значит подойдёт любая. Оптимально, наверное, Nano Mini Strong типа моей из ОП-поста, чтоб питание на сервы подать с платы. Но если дорого, то с макеткой пойдёт и Nano.
>Nano Mini Strong
Фикс: Nano Srong
Алсо, кнопки можно на аналоговые входы повесить. Что такое "круговой светодиод" я не знаю. Если ардуина будет дополняться со временем, то как вариант можно взять PCA9685 в дополнение к обычной Nano V3 не Strong.
А погуглить? https://toster.ru/q/338386
Никто не отвечает, высру IMHO.
Если я правильно понял, то читать смогут, а писать - нет. Оно и понятно, serial port же. Теоретически можно написать/настроить какой-то софт для маршрутизации, но это явно лучше в /s/ спрашивать. Две ардуины могут оказаться проще.
>Никто не отвечает
Так вопрос соответствует уровню треда, потому и не отвечают.
Ну да, на компе две программы с одним компортом простыми способами не будут работать. Но у многих атмег по два UART-а, никаких проблем в их одновременном использовании нет.
Как написать для микроконтроллера программу, выполняющую несколько задач? Ну разные способы есть, можно в прерываниях что-то делать, или делать программу в виде конечного автомата, или использовать ОС с многозадачностью.
>у многих атмег по два UART-а
Это где такое? Я видел только у СТМок такое, и ещё библиотеку software serial для ардуины. С ней и конвертером тоже можно попробовать наверняка.
Теперь понял почему.
ATtiny2313A - 1
ATmega8A/16A/32A - 1
ATmega48PB/88PB/168PB/328PB - 1/2 (PB, а где обычная P?)
ATmega16U4/32U4 - 1
Это Quick Reference Guide, там вроде бы не все микроконтроллеры перечислены.
>Теперь понял почему.
Неужели ПЕРДУИНО ИДЕ не поддерживает микроконтроллеры с двумя USART-ами?
Почему нет? Просто эти контроллеры в ходовых ардуиномодулях, кроме Mega, не видел.
https://www.arduino.cc/en/Tutorial/MultiSerialMega
Спасибо. В принципе логично, один порт - одно соединение. Но думал может какие готовые обертки есть, но это не про нано наверное, и так мозгов мало.
>нано
Либо Software serial с конвертером на второй USB
Либо искать/писать маршрутизатор для потока данных, с виртуальными адресами, портами, арбитражем, бла-бла в /s/
Либо ищи Ардуину на чипе 16U4 / 32U4, либо ищи как пользоваться библиотекой V-USB.
Звук "ты-дынь" подключения есть? Если нет, то накрылась CH340. Сможешь - меняй.
Звук "ты-дынь" подключения есть?
Комплюхтер в беззвучном режиме работал, так что не знаю. Сейчас нет возможности проверить, только завтра утром.
> Там ATmega16U2 для serial порта
> или ATmega8U2
Нагуглил вот такой гайд по перепрошивке ATmega8U2 http://arduino.ru/forum/obshchii/arduino-ne-opredelyaetsya-kompyuterom-i-kak-eto-ispravit#comment-663 но там у чела L-индикатор моргал, а у меня только индикатор питания красным горит.
Аноны, посоветуйте что мне делать - пердолиться с перемычками и перепрошивкой порта в надежде на маловероятное воскрешение, или забить и заказывать новую ардуину? Пердолиться будет очень сложно, потому что в электронике я нуб, да и паяльник в руках давненько не держал, а про самостоятельную замену порта без подробного пошагового гайда вообще бессмысленно говорить - для меня это что-то из ряда фантастики.
Алсо, сразу реквестирую где можно заказать оригинальную Arduino Mega 2560 с быстрой доставкой в мухосрань.
А когда коротнул плату, она была запитана через круглый разъём? ХЗ кто как и куда, но на твоём месте я бы сначала запитал её через пин 5V от внешнего источника, или замерил напряжение на пине 5V в штатном режиме. Если напряжение низкое или ардуина заведётся от внешних 5В, то сдох регулятор/предохранитель/диод. Если без изменений и напряжение соответствует, то на тест всех компонентов отдельно, начиная с меги2560.
Эта плата из 3d принтера. Коротнуло нагревательный элемент на экструдере, принтер вырубился и тут же перестал опознаваться пекарней. Разобрал корпус - на плате подключенной к ардуине через пины на пике зеленая два живых предохранителя, а в блоке включения обычный 0/1 переключатель предохранитель сгорел. Заменил предохранитель - принтер заработал, но компом не определяется.
Сама ардуина напрямую через круглый разъем не запитывалась, но к разъему от верхней зеленой платы припаяны два провода как на пике. Я нихуя в электронике не разбираюсь, но, как понял, они как-то выходят на блок питания через зеленую плату.
Придется, видимо, покупать новую плату, потому как все эти мелкие компоненты от ардуины в мою мухосрань приедут не раньше чем через месяц, а целую новую ардуину привезут за неделю с платной доставкой. Ждать месяц и, с большой вероятностью, соснут хуйца, а потом еще неделю ждать ардуину - слишком долго.
Жаль, я бы ради интереса попердолился будь возможность пойти в магазин и купить все нужные компоненты без ожидания доставки.
amperka - нормальный магазин? Не пришлют китайскую подделку?
Не знаю об этой плате ничего, но я бы сказал, что у тебя самого - сорт оф "подделка", хотя как они там её вертят, и кто её может производить - хз.
https://store.arduino.cc/usa/arduino-mega-2560-rev3
Китайская копия вполне себе ОК, да и цена приятная.
https://ru.aliexpress.com/item/Mega-2560-R3/32707155227.html
Про амперку тоже хотелось бы узнать.
> я бы сказал, что у тебя самого - сорт оф "подделка"
Не исключаю что так и есть - в рашке предприимчивые разрабы даже в принтер за 100к могут любое говно запихать.
Загуглил - амперка в списке официальных дистрибьютеров на сайте ардуино, так что должны продавать оригинальные платы.
>>38338
Амперка дорохо, заказывал клон Меги тут
https://robotdyn.ru
работает заебись, оригиналы для пидоров
> Амперка дорохо
Меня цена не особо интересует - платить будет работодатель, я должен только заставить принтер работать. Оригинал хочу брать потому что это хоть какая-то гарантия качества и снижение вероятности получить бракованное говно.
Они стоят косарь, а оригинал 3.5к - разница небольшая, зато, если плата полетит, мне никто не сможет предъявить за то что я говно поддельное купил.
Для себя я бы тоже хорошую подделку брал чтобы не переплачивать.
Какой ссылке? Две моих, одна на роботдин, а там Classic Mega R3 стоит 1к.
Ах, ты предлагаешь ему версию с CH340G. Ну, этодругое. Хрен знает как там дело обстоит с софтом, драйверами и вообще. Если он написал, что не разбирается, то нефиг такие меги покупать.
Ещё часы DS3231, кнопка и пищалка.
Почти всё развелось на первый взгляд без проблем кроме двух исключений. Там я соединяю то, что по идее нельзя соединять. Поэтому воткнул по диоду, которые на мой взгляд должны помочь.
Так как в редакторе нет используемых компонентов, раскрасил проводки как смог.
Короче будет оно работать или чего поменять?
Сорян за лапшу
https://www.tinkercad.com/things/gzBwrM9DTL4
Распиновки:
arduino nano http://elref.ru/_fr/18/4457249.png
esp8266 d1 mini http://myiot.co.uk/wemos/wemos_pins.JPG
DS3231 https://ae01.alicdn.com/kf/HTB1CbRhdBfM8KJjSZPiq6xdspXae.jpg
128x64 1 http://ae01.alicdn.com/kf/HTB10W92SXXXXXawXXXXq6xXFXXXg.jpg
128x64 2 https://i.ebayimg.com/images/i/182793875977-0-1/s-l1000.jpg
еспшка снизу под большим бредбордом, экранчики справа снизу
Есть время, но мало денег. Заинтересовала ваша ардуинка, а вот цена за плашку не очень. Стоит ли покупать китайский (или другой) аналог для начала, или лучше поднакомить и ккпить нормальную ардуину? А, может быть, купить свовсем что-то другое?
Можете отпиздить тапками, но ответьте пожалуйста
Покупай китайскую.
Либо Arduino Pro Mini (5V или 3.3V) + отдельно USB-UART конвертер типа CP2102, или CH340G, или какой-то другой.
Либо BluePill/BlackPill + отдельно USB-UART чтоб пользоваться как ардуиной, или ST-LINK отладчик чтоб вкатываться в байтоёбство уже по-взрослому.
Всё китайское по 100р. за платку/конвертер/программатор, всё с Али, всё отлично работает.
>Стоит ли покупать китайский (или другой) аналог для начала, или лучше поднакомить и ккпить нормальную ардуину?
В них стоят одинаковые атмеги (процы). Только корпуса процов разные, а кристаллы внутри одинаковые во всех.
Только в оригинале ещё стоит atmega16 для связи с пекой, в дешевых клонах стоят USB-TTL чипы.
Тебе нужна это атмега16? Я не думаю.
Но даже если нужна, есть клоны и с ней.
Вот дешевая, SMD корпус атмеги328, USB-TTL
https://www.aliexpress.com/item/DCcduino-UNO-R3-ATMEL-AVR-MCU-Development-Board-Ch340G-ATmega328-ATmega328P-for-Arduino-Compatible-Freeshipping/32666011543.html
У меня такая. Отличная вещь.
А вот дорогая
https://www.aliexpress.com/item/Uno-R3-Compatible-Electronic-ATmega328P-Microcontroller-Card-for-Arduino-Robotics-and-DIY-Projects/32836425521.html
Копия 1 в 1 оригинала. Вместе с atmega16.
Кроме uno есть ещё другие, но они нахуй не нужны ящитаю. Uno самая популярная, по ней больше всего информации найдёшь в интернетах и решение любой проблемы, которая у тебя появится.
Вот я бы не советовал ньюфагу брать. ESP8266 сложный. И GPIO там намного меньше. Там штук 7 доступно, так ещё и некоторые должны быть подтянуты в правильное место при включении.
А ещё комьюнити никакое, нет IDE как у ардуины, нет нихуя. В ESP8266 нужно вкатываться уже после ардуины, когда ты понимаешь что ты делаешь.
На самом деле под проекты уно уже нахуй не нужна, она для экспериментов. А когда приходит время делать практический проект охлаждения стула при перегреве жопы, на него идет мини/нано/attiny.
Я тоже пользую attiny, но начинал я с raspberry pi и ардуины. Но ньюфаг никогда в неё не вкатится.
На ебаную attiny13, которая стоит 30 центов и имеет 1кб флешку и 64 байта (БАЙТА, БЛЯДЬ) оперативки даташит аж, мать его, 176 листов.
http://ww1.microchip.com/downloads/en/devicedoc/doc2535.pdf
Хотя я всё равно нихуя не понимаю, просто пользую MicroCore для ArduinoIDE и копипащу код из гугла .
>Но ньюфаг никогда в неё не вкатится.
Чего блядь? Как раз и надо вкатываться прямо в аттини, а не в это все ардуино, нихуя там сложного нет.
>На ебаную attiny13, которая стоит 30 центов и имеет 1кб флешку и 64 байта (БАЙТА, БЛЯДЬ) оперативки даташит аж, мать его, 176 листов
Так там описание регистров-хуистров и прочего говна, практически одинаковое для всего семейства.
>Как раз и надо вкатываться прямо в аттини
Охуеть какой ты простой.
А умеет ли ньюфаг паять?
А есть ли у него вообще паяльник, чтоб это всё спаять?
Так ему ещё и плату самому делать надо что ли? Ему сразу с первого дня в ЛУТ вкатываться?
А ещё купить USBasp и припаять 5 проводов от него только для перепрошивки.
А фьюзы? Он же если не поймёт что такое фьюзы, он себе закирпичит микруху одним неверным кликом.
И ты вот правда советуешь человеку, который в жизни микрухи не видел, лезть вот в это всё с первого дня?
Откуда вы такие лезете.
Вполне успешно начинал с ассемблера для PIC16, умея при этом только паять. В PIC16 с памятью еще хуже чем с attiny13 - там страничная организация.
Но советовать что-то в этом треде - глупость.
Другой анон.
Что-то мешает взять ардуину, подключить к ней программатор и прошивать? Чтоб пограмировать контроллеры абсолютно не нужно уметь паять, ЛУТать и прочее, отладочных плат кучи на любой вкус.
>отладочных плат кучи на любой вкус
А я о чём? Я предлагаю купить отладочную плату с atmega328p - и называется эта плата Arduino Uno
А умник выше советует покупать тиньки и самому всё паять и шить.
А почему именно Uno? Лучше брать Pro Mini с макеткой. Там выбор среди двух стульев (3.3В/5В), и в случае чего её можно применить в автономное устройство без потраченного конвертера usb-uart. Программатор, в конце-концов, должен быть инструментом.
мимодурачок ОП треда
что работают через https://github.com/esp8266/Arduino
Там все работает как на обычной ардуинке, ног до 17, но ацп один.
Короче тут две пары i2c пинов, с которыми нужно как-то совладать. Придумал делать пикрил чтобы сигнал не шёл туда, куда не нужно, но есть сомнения по поводу того, что i2c пины не всегда являются выходами. т.е. могут быть настроены на приём и тогда схема не будет работать.
Что скажите?
Долбоёб, я не знаю что ты там намалевал, но ты в курсе что к 1 шине TWI подключается несколько устройств одновременно? Да-да - ты не ослышался! К этим двум проводочкам несколько устройств. А теперь будь добр рассказать чем тебя не устраивает одна шина и что мешает твою ебаную esp228 использовать в качестве Master, а обои аурдании в качистви Slaves???7
Видишь ли, дурашка, я не хочу использовать два контроллера одновременно. Если ты прочитаешь мой первый пост, то может быть поймёшь суть. Попробуй. А я тебе ещё и эту картинку разъясню.
А нахрена? Если есть редакторы как этот? Да и я вообще кодер. Если бы был электриком собирал бы хреновены на голых контроллерах.
Ты вопрос можешь сформулировать или будешь продолжать выёбываться?
1) У тебя одновременно втыкнуто в макетки esp и avr. Кто-то из них абсолютно всегда выключен.
2) У тебя одновременно втыкнуто в макетки esp и avr. Кто-то из них выключен в определённые моменты времени, но бывает что работают оба одновременно (нет блять, не по i2c, а просто питание подано).
3) У тебя всегда такая ситуация, что в макетки воткнута только ардуина или только esp.
4) Одновременно в макетки всё воткнуто и бывает что иногда ардуина шлёт данные, а иногда esp.
А теперь, будь добр, выбрать соответствующий вариант ответа и расписать его поподробнее, если он не отражает сути до конца.
3.
Нужна универсальная плата, в которую можно воткнуть либо нану, либо есп.
По переферии:
-Экран 128x64 либо 4-пиновый, либо 7-пиновый. Опять же, либо-либо, но не вместе.
-Часы. Тут один вариант - DS3231.
-кнопка
-пищалка
Тут последняя версия схемы: https://www.tinkercad.com/things/dWOHfdCN0p6
Там каждая пара диодов должна исключать ситуацию когда сигнал с одного пина при использовании, например, ардуины идёт на другой пин, который является источником этого же сигнала на есп и наоборот.
Такая система диодов кажется должна работать с пинами, являющимися либо источниками, либо приёмниками сигнала.
А вот с i2c не понятно. Потому что мне кажется что i2c контакты могут менять input на output и наоборот во время работы. Если так, то нужно как-то обыграть эту ситуацию чтобы не нужно было механически ничего менять при смене контроллера.
Короче, выкидываешь из схемы диоды и провода. SCL наны соединяешь с SCL есп, аналогично для SDA и у тебя в итоге получается 2 провода для устройств. Только не забудь резисторами 10К подтянуть линии, как на картинке выше. Вариант 1) Каждый из контроллеров программируешь как Slave. Далее алгоритм такой. Если контроллер получает по i2c сигнал о том что ему нужно стать Master, он становится им через некоторое время после некоторой задержки. Тот контроллер который был изначально мастером становится Slave. Текущий мастер должен слать сигнал другому микроконтроллеру, например, каждые 10 секунд. В противном случае, если slave не получил скажем в течении 10 секунд + некоторая задержка (а ты её можешь в виде переменной делать и менять каждый раз по i2c) сигнал о том что ему нужно оставаться slave, он автоматически переходит в master.
Т.к. ты кодер, то идею надеюсь, понял. Ты можешь через отдельный пин переключать режимы каждого контроллера, тут похуй, пару лишних проводов. Алгоритму, как видишь похуй на любые комбинации. Ты даже можешь ебануть такой алгоритм когда у тебя и esp будет гонять сигнал и arduino, да хоть блять 1 esp или 1 arduino.
Тебе не нужны никакие диоды, просто следи за конфигурацией пинов ПРОГРАММНО, вот здесь прочитай подробно: https://hubstub.ru/stm32/152-push-pull-vs-open-drain.html
Забыл, случай когда на линии 2 мастера описан в даташите - скачай и читай его:
Вечерком перечитаю ещё раз, а пока хочу уточнить: ты точно третий вариант расписал? Сдаётся мне что у тебя тут про первый вариант.
Я ещё про slave и master не понял. Может, конечно, это задаётся где-то внутри библиотек, но чтобы экранчик заработал я всего-лишь выбираю правильный конструктор класса и всё.
Про все сразу расписал.
У меня в тексте написано: "Вариант 1)" ибо я под вторым подразумевал использование не интерфейса i2c, а 2-х проводов с других пинов, но забыл написать "Вариант 2".
Ты не забывай что в arduino ide (ты по всей видимости именно её используешь) в библиотеках дохуя ошибок и они медленные. Я даже не знаю есть ли там возможность такой настройки. Советую тебе, раз начал МК, писать все программы используя по максимуму регистры (без разницы хоть на плюсах, хоть на чистом). Абстракции это, конечно, здорово, но именно на микроконтроллерах на них далеко не уехать, ибо как я писал выше функционал не весь есть в библиотеках и надо делать свои, да ещё и ошибок дохуя. Вот ты пользуясь абстракциями не понимаешь ни про конфигурацию пинов, ни про SCL и SDA, а без этого далеко не уехать, как бы ты не хотел, но придётся тебе опускаться на более низкие уровни, иначе вечно будешь страдать на таких простых вопросах и путать других.
Хорошо, но как-то всё равно сложно. Хоть брать да выводить пару проводов, которые подключать механически к i2c в зависимости от платформы.
Не убьёт - я через gcUploader шил и всё работало. Только не забудь драйвера на ch340 установить.
Спасибо, тогда еще вопрос - на моей плате (UNO) стоит мега16 как "мост" USB-UART. Где можно найти описание протокола между "мостом" и целевым контроллером, если я хочу пообщаться с целевым контроллером с компа через виртуальный COM-порт? Короче, на какие настройки программировать USART целевого контроллера, чтобы они с "мостом" друг друга поняли?
Бля, я тупой вопрос задал - там же наверняка настройки приемопередатчика "моста" задаются с помощью драйвера виртуального COM-порта на хост-машине.
Купи AVRку, она 150 рублей стоит.
Сейчас такая проблема: память наны перегружается при подключении библиотек экранчика. Остаётся 350 байт для переменных. При этом сам контроллер начинает глючить и код не выполняется. (В моём случае отваливается работа со строками через String класс)
Пробовал две библиотеки: U8g2 и Adafruit. Обе они уже на демках загружают память на 70-75%.
А мне ведь для моего кода нужен ещё запас по памяти.
И вот что мне делать?
Я же написал что у меня нана. И юзать нужно именно её. Без вариантов.
Уже кучу либ перепробовал. Было пару лёгких, но они только на i2c.
Возьми код из тестера транзисторов. Или сам напиши, это не так сложно и заняло бы меньше времени, чем ты уже потратил на поиски. И научись рисовать схемы по человечески. Даже школьникам в учебниках по физике нормально рисуют.
Чё за тестер?
Свою либу писать не хочу. С моим-то знанием сишки далеко не уйду.
Ну а где мне схемы рисовать? Я только это нашёл. Оно лагает только, а так мне норм.
Появился в голове проект, ничего оригинального. Есть одна вэбка, которую я хочу установить на шаговик 28byj и рулить ей через интернет, в идеале.
Беда в том, что знаний катастрофически не хватает. С шаговиком я разберусь и смогу его поворачивать на нужные мне углы, подавая команды на сериал из ардуино иде. Но если его закрыть, то я совершенно не представляю, что делать и как сделать так, чтобы я мог сидя на работе нажимать в смартфоне кнопочку и наблюдать поворот моей вэбки на экране.
Насколько я понимаю, мне нужно создать некую вэб страничку, которая будет выводить картинку с вэбки и иметь ряд кнопок, по нажатию на которые в нужный com порт будет уходить нужная команда. Как это сделать я в душе не ебу.
Вторая половина беды, что к этой страничке нужно как-то обращаться из интернетов. И я совершенно не имею представления, как это сделать. Я могу постучаться по внешнему айпишнику своего роутера, даже допустим на определенный порт, обращения к которому я могу заранее перенаправить на внутренний айпишник компа, к которому подключена вэбка. Но на этом мои полномочия всё.
Подскажи, в какую сторону мне копать и как правильно гуглить, чтобы слепить все эти разные кусочки во едино
>Подскажи, в какую сторону мне копать и как правильно гуглить, чтобы слепить все эти разные кусочки во едино
Вэбстроничка нинужна, нужен сервер смотрящий в ынторнет на который приходит команды, можно в джисон, в ответ на заданный инторнет адрес или какуюнить файлопомойку сервер будет отправлять кортингу. Ну или подними фтп на который будет срать камера.
Для управления esp-шкой через мобилку я юзал протокол MQTT. Через твою страничку на пыхе думаю тоже можно.
Да, но у них ограничен угол поворота (90 в обе стороны). Тоже недавно взял пару штук для баловства, но с направленными датчиками.
https://ru.aliexpress.com/item/9g/32409482939.html
https://ru.aliexpress.com/item/Platform/32301668307.html
700мс <-> 2300мс - стандарт, это что-то около 230 градусов, всего 1500мс. Есть и постоянного вращения, есть и на 360 градусов. Но поверь, тебе хватит и 230.
БП соответствующей мощности и ттл совместимые мосфеты, тоже подходящей мощности, по одному на каждый из трёх каналов(rgb)
Слушай я нуб в электронике, знаю только минимальные азы.
>БП соответствующей мощности
Планирую от компютерного БП питать, 5в с молекса взять.
>ттл совместимые мосфеты
Это что такое и для чего?
Вот этот был ближе всех >>38899
Я понимаю, что один шд для ip камеры далекое от идеала решение. И что проще было бы сделать с сервами и через esp или хотя бы через ethernet модуль. Но дело не в простоте, а наоборот, в освоении сложного
Берёшь rgb ленту. Бывает разной плотности(количество диодов на метр), питается разным напряжением(5, 12, 18, 24 вольт, обычно). Чтобы узнать мощность для БП нужно знать какая лента и сколько метров. При покупке мощность ленты на метр может быть указана, если нет, надо считать по типу светодиодов. Мощность блока питания должна быть на 20% больше мощности ленты.
Вбей в гугол слово мосфет, там тебе все расскажут.
Нужны они потому, что ардуина не сможет своими выходами рулить лентой, слишком большие токи, сгорит. Поэтому ардуина в твоей задаче будет рулить мосфетом, а мосфет уже лентой
Ттл совместимые значит что управляются напряжением в 5 вольт
Хайли лайкли их там нет
Из всего вот этого:
>цепочке смартфон-интернет-(роутер)-пека-ардуинавюсбпорту.
Треду соответствует только ардуинавюсбпорту. А вообще ты сделал меня погуглить, и я нагуглил кучу последовательных вопросов (смартфон-интернет, интернет-(роутер), (роутер)-пека), в которых я, как некий ардуинщик, не понимаю почти нихуя. Хотя и представляю, что вариантов несколько, и это самое что ни на есть изобретение IP-камеры с сервером "где-то там" в случае серого ай-пи.
http://nabludaykin.ru/videonablyudenie-cherez-internet/
>Задача стоит именно разобраться во взаимодействии в цепочке смартфон-интернет-(роутер)-пека-ардуинавюсбпорту.
Арендуй у прова статический ИП и прописывый правила на доступ из вне на роутере, далее все завязывай на веутренней адресации.
>которые будут резаться
Хотя, можешь не отвечать. Этих камер и сраных веб-нян уже миллионы из каждой будки вещают. Тут уже приходил мамкин рантье с похожим вопросом. Советовали как DynDNS, так и его вариации, а для камер есть ещё облачные сервисы:
http://nabludaykin.ru/oblachnoe-videonablyudenie/
И вообще похуй как-то, тред для мигания 13-м.
Писец у вас там в роиссях, у меня на некроПК через no-ip DNS сервер для теплицы стоит и замечательно работает.
может даже скоро вам и интернет проведут
На 155ла3 можно сделать
Смотря что называть sdr-радиоприемником. Если что-то уровня rtl-sdr, то даже близко нельзя.
>Чё за тестер?
Может быть этот?
https://github.com/svn2github/transistortester/tree/master/Software/trunk
https://elchupanibrei.livejournal.com/23402.html
Алсо, у меня кастомная прошивка с русским языком и энкодером не влезла в мегу 328, когда делал такой с SSD1306. Пришлось оставить на английском.
Да, я про этот писал. Все влезает вместе с довольно большим количеством логики. Но тому анону не поможет, скорее всего.
>кастомная прошивка с русским языком и энкодером
В каком смысле кастомная? Там же все это в исходниках есть. Нужно лишь указать необходимые флаги в мейкфайле.
>не влезла в мегу 328
У меня все влезло с некоторым запасом. Только у меня без энкодера, но сомнительно что это сильно изменит объем прошивки. Тулчейн брал с сайта микрочипа, а не ардуиновский, возможно в этом причина того что влезло.
Блин сложна! Мне, ардуино ИДЕ ребёнку, нужно как-то проще. Просто лёгкую библиотеку с поддержкой spi и i2c интерфейса и русскими шрифтами. А у вас там мейкфайлы какие-то, ни одного ini скрипта.
Забыл написать, что вывожу через мост USB-UART на атмеге16.
Или важно оставить нетронутым только ресет, подтянутый через резистор к питанию?
Если у меня, например, mosi будет настроен как выход или на нем будет висеть прерывание, компаратор, выход таймера, то будет ли работать? Аналогичные вопросы про miso и sck как входы.
Нифига не нашел этой инфы, даже в доках по усбаспу.
Как он работает и какие условия нужны?
Вот смысл писать, если нихуя толком по делу не сказал?
Касательно фьюзов, как я понял, все же обязательно нужно сохранить ресет, т.е. не активировать RSTDISBL. Ок. Что насчет SELFPRGEN, нужно ли активировать, или он нужен только для для функционирования загрузчика и возможности программной записи в прогфлэш? Пиздец, тупо нигде нет четкой инфы какие условия нужны для ISP прошивки.
Бля, неужели тут только начинающие ардуинщики? Ау, бывалые техномаги, явите себя и разжуйте мне это дерьмо.
>даже в доках по усбаспу.
Ну это логично, ведь сам процесс программирования описан в документации на микроконтроллер.
https://www.avrfreaks.net/forum/can-i-reuse-isp-pins-other-taskstarget-atmega164p
Говорят, что можно, только резисторы поставь.
смотря какая плата. У меня приезжала какая то дудуина без лодыря, там фьюзы все о дефолту.
Кланяюсь в благодарствие.
Оттащил на работу и прочитал. Только в процессе подключения перепутал MOSI MISO, каким-то образом попортил лок-биты, пришлось вытаскивать из панельки, ставить на макетку, давать внешнюю частоту с программатора, делать полное стирание и восстанавливать все. Восстановил, работает. Зато теперь точно знаю, какие фьюзы у меня прошиты.
ищу кастомное решение на ардуино. Мне нужна система, чтобы замерять индукцию в разных точках, чтобы на выходе на хард писалась матрица значений. Алсо нужна мехническая часть под всё это. Проще говоря, под ключ. Я знаю, что есть люди, которых бы это заинтересовало, но не знаю где их искать.
>замерять индукцию
А тесламетр у тебя какой? Или ты индукцию тоже пердуиной собираешься мерять?
Есть большой промышленной и он не подойдет, потмоу что нужно реализацию делать в механике. Лучше пердуиновский.
Я не понял, что ты спросил, но если ты фьюзы хочешь прошить просто прочитай их сначала и зашей обратно с изменениями, которые тебе нужны.
Скачай avrdudess и там всё кнопочками делается.
>Если у меня, например, mosi будет настроен как выход или на нем будет висеть прерывание, компаратор, выход таймера, то будет ли работать? Аналогичные вопросы про miso и sck как входы.
Будут. Делай с ними что хочешь. Если ты подключаешь программатор, то твой код не запускается - mosi/miso/sck будут работать на программатор. А без него уже работает твой код и в нём можешь их инициализировать как хочешь и делать всё, что хочешь. Кодом ничего убить невозможно, только фьюзами.
анон помоги какие фьюзы шить чтобы с ардуины нельзя было сделать копию программы
>>39573
>с ардуины
Прям с ардуины? Это когда ты USB кабелем подключаешь ардуину к пеке?
Там вообще нельзя фюзы прошить. Твоя пека разговаривает с бутлоадером, который заранее прошит в атмегу. Это вообще не прошивка, а загрузка скетчей.
Чтоб фьюзы шить, тебе нужен программатор.
Я не умею в фьюзы. Но как я понял, там всё не так то просто. Даже если запретить чтение, можно наебаться и оставить какой-то там дебаг на одной из ног, через который можно слить всю память и прошивку твою.
>ю в фьюзы. Но как я по
судя по видосам с ютуб можно зашить лок биты и не будет доступа ни к еепром ник прошивке из вне
Прошить на ардуине, подключив её к пеке USB кабелем?
Нельзя. Нужен программатор.
https://www.aliexpress.com/item/USBasp-ISP-3-3V-5V-AVR-Programmer-USB-ATMEGA8-ATMEGA128-New-Wire-Support-Win7-64Bit-lcd/32647598702.html
Если есть вторая ардуина, то её можно превратить в программатор.
https://www.arduino.cc/en/Tutorial/ArduinoISP
Я не уверен, что это обязательно, но на GND и RESET Ардуины лучше повесить электролитический конденсатор на 10 мкФ. После того как ты залил скетч, естественно.
Тоже как-то задавался этим вопросом. Есть там везде или почти везде debugWIRE, на многих атмегах и JTAG имеется. Только там сильные ограничения на количество брекпойнтов и возможно еще на что-то. Вроде почти все хорошо, но почему-то почти не пользуются.
Бегло погуглил и нашёл тему
https://www.eevblog.com/forum/microcontrollers/cheap-atmega-debugging-interface/
Мда, походу 50 баксов за отладчик действительно дорого. Как там сказал один чувак, printf, мигания светодиодом и программной симуляции хватает для отладки в 99% случаев
Есть и более дешевые варианты, правда только для JTAG, который не везде. http://easyelectronics.ru/vnutrisxemnaya-otladka-avr-cherez-jtag-ice.html На алиэкспрессе тоже что-то подобное есть. Только это вроде как предыдущий отладчик, он уже не везде работает "из коробки". И ограничений вроде больше, по сравнению с современным.
>Мда, походу 50 баксов
Кому как. Если покупать как один из основных инструментов, то по моему нормально.
Тоже немного погуглил и обнаружил удивительную штуку. Оказывается в ардуинах без доработки платы нельзя было использовать debugWIRE, потом несколько доработали. Но тоже немного забавным образом - сэкономили на резисторе-перемычке.
Ну охуеть теперь. А из существующего ничего не собрать? Нахуй тогда вообще эти rtc нужны?
>От батарейки
Это. Если бы был гпс модуль, обновлял бы при каждом включении, и не заморачивался бы.
>Модуль с ТСХО
Как на ангельском гуглить?
>Это. Если бы был гпс модуль, обновлял бы при каждом включении, и не заморачивался бы.
RTC уже встроен в атмегу. И он может тикать пока все остальное в микроконтроллере выключено.
>Как на ангельском гуглить?
Если модуль, то на DS3231.
Еще добавлю, чтобы иллюзий не было. В документации DS3231 указана точность ±2ppm (т.е. две миллионные доли) - это означает что за год оно может уйти на минуту, не больше. Разумеется может и меньше, как повезет.
Читал, что CMOS как раз могут в эту фичу.
В мышках такие, только кроме чувствительности скорее всего. Еще не уверен что из них можно кадры забирать, т.к. коррелятор у них внутри.
Камера для ардуины или STM32 - это не вполне адекватно звучит. Смысла в таких камерах нет, кроме как поиграться.
Все правильно сделал? Взял синюю с напаянной гребенкой. Так и не понял, в чем разница между синей и черно, кроме 15 центов
PU соответствуют пластиковому DIP (PDIP), AU пластиковому TQFP, MU пластиковому QFN.
С мышками люди пробовали, вроде говно выходит, даже в качестве сканера:
https://www.bidouille.org/hack/mousecam
>The frame dump routines are a bit slow so if you dump a full frame you'll get only about 5 fps.
>Смысла в таких камерах нет, кроме как поиграться.
Ок, есть ли просто универсальная сверхскоростная камера низкого разрешения, с которой можно было бы считать поток данных 1000 fps по ардуиновскому серийнику? При этом формата камеры для смартфона, а не килограммового кирпича 10х10х20 см.
Я где-то или читал или видел, что в этих модулях отбраковка вместо кварца. Попробуй заменить на нормальный.
Хотя забейте, ардуино для моих целей говно из за смехотворной памяти. Мне нужно для опытов хотя бы 25Кб SRAM, там постоянные матричные переобразования и LUT гиперболического тангенса. Ардуино однозначно не то. Попробую STM
У кварцевых генераторов без термокомпенсации стабильность около 20-50ppm, а то и хуже. Это в 10-25 раз больше >>39860 Уход часов на пол часа за год с таким генератором это нормально. Вот и получается минута за пару недель >>39861 В этом модуле можно только подстроить частоту конденсаторами, которые рядом с кварцем припаяны, тогда будет получше некоторое время.
>>39914
У тебя даже не с памятью была бы проблема, а с быстродействием. Если 32х32х1000 = 1 миллион байт в секунду, а при этом тактовая частота у AVR всего лишь 16 МГц. Одна команда выполняется минимум один такт. Считать в память и выдать в другой интерфейс можно успеть, но что-то посчитать уже крайне сомнительно. Даже если брать 16х16, тоже ничего толком посчитать не успеешь.
>Попробую STM
Не знаю что ты там считать собрался, но может на компе сделаешь для начала?
>Не знаю что ты там считать собрался, но может на компе сделаешь для начала?
А, ничего такого, банальный сверточный классификатор объектов. Троллейбус, одним словом. На компе выдает около 80%. Думал, как его можно встроить в простейшие ЦП, чтобы работал на максимальной скорости без прерываний системы и прочей ерунды. Еще посматриваю в сторону связки малинки+мовидиус, но эти решения уже переусложнены, и работают очень медленно. Ключ как раз в малом количестве входов и их быстрой обработке.
Я так и не понял сколько ты сверток на один кадр считаешь. STM32, даже самые старшие, возможно слабоваты для такого. Тут скорее DSP посерьезнее нужны или ПЛИС.
Смсис на арме успешно запускает сверточную нейронку, натренированную на cifar-10, которая может классифицировать 10 объектов на цветном изображении 32x32
https://github.com/ARM-software/ML-examples/blob/master/cmsisnn-cifar10/README.md
То есть в принципе, её можно перетренировать на распознавание лиц, и она научится их не только детектить, но и различать
Можно линукс на AVR запускать через эмулятор ARM. А под этим линуксом можно запустить...
https://dmitry.gr/?r=05.Projects&proj=07. Linux on 8bit
Вот и я о том же. С чего бы эта нейронка должна потянуть 1000 fps. Даже если потянет, то почему она должна лучше распознавать требуемые объекты? Может тому анону требовалось распознавать кружок на ровном фоне.
Действительно, нахуя? Я бы вот от ОС избавился настолько, насколько это возможно, и от многозадачности тоже, я в свое время еще под ДОС писал.
Перенаправлю на полумертвый малинко-тред, там решил спросить: https://2ch.hk/diy/res/393987.html#459745 (М)
>>39922
>ПЛИС, может DSP
Какие именно? В какие проще всего вкатиться хую с поверхностным знанием МК? Где самая большая база примеров и помощи?
https://www.aliexpress.com/item/Spartan6-development-board-XILINX-FPGA-SDRAM-Spartan-6-core-board-XC6SLX16/32851234772.html
>>39931
Нет, не кружок. 1000fps это запас, условно. И косвенная функция чувствительности. Иными словами, 1000 = 100 fps при в 10 раз худшем освещении с сохранением уровня сигнал-шум Зависимость же линейная, определяется уровнем заряда на ячейках.
Ну раз уж разговор пошёл про распознавание изображений на микроконтроллерах, то это стоит упомянуть, хоть там и не 1000 фпс, а 10. Вот нахуя в этом разговоре ты ввернул эксперимент с линуксом на микроконтроллере, который представляет чисто академический интерес - непонятно. Как будто в лужу пернул
Добавлю, как я это вижу:
Лавинный фотодиод регистрирует фотон (или 10. или 100.) - в элемент памяти ячейки идет инкремент - когда в одной из всех опрашиваемых ячеек уровень достигает предельного, все содержимое сбрасывается контроллером матрицы по серийнику куда нам нужно (в наш МК или ПЛИС или ЦП) Получаем картинку с такими-то градациями. Тепловой шум пока не учитываем.
> Все известные матрицы
Матрицы с лавинными фотодиодами и 1000 фпс, с выводами откаждого элемента? О да, они очень известны, я вот только забыл. Напомни, плиз
>с лавинными фотодиодами
Без понятия, есть ли гражданские. Специального назначения точно есть, еще и с системой охлаждения. Но прогресс идет, все может быть. Не придирайся.
>с выводами откаждого элемента
КМОП технология. Не выводы, а возможность снять значения с произвольного участка матрицы
Прошу пардон, насрал в первый и понял, что есть свежий.
Код:
void loop()
{
val = analogRead(PotPin);
val = map(val, 0, 1023, 0, 1000);
val = constrain(val, 0, 1000);
if(val >= 600) {
tone(Buzzer, 500, 2000);
if(val < 600)
noTone(Buzzer);
}
Есть теория. Может этот модуль с пика буззер (а тебе нужен не-буззер) и он пищит при низком уровне на I/O.
Когда ты делаешь noTone там появляется 0 и он пищит. А когда tone то он пищит половину времени.
В общем подай на I/O руками питание или землю, он будет пищать?
Если будет, то это буззер и им нужно управлять через digitalWrite. И его тональность нельзя менять.
Если хочешь через tone() то тебе другой нужен. Я забыл как он называется, но не buzzer.
В общем то, я уже за время горения перепробовал и digitalWrite с управлением через low/high, и tone с разными частотами и разными таймингами, и через if/else, и через if/if, я сдаюсь, и инвертировал high/low
Проблема в том, что реагирует на if он адекватно и верно, а вот выключаться не хочет ни при инверсионном управлении, ни по истечению таймера на сигнал, ни от noTone
Ты делаешь что-то не так. У тебя - активный. На его I/O надо подавать или 0 или питание.
И на пузе у него написано low level trigger.
digitalWrite(Buzzer, LOW); - будет пищать
digitalWrite(Buzzer, HIGH); - не будет пищать
>Какие именно? В какие проще всего вкатиться хую с поверхностным знанием МК? Где самая большая база примеров и помощи?
Наверное никакие. Ты ведь даже не посчитал требуемое количество арифметических операций в секунду. С такой логикой мышления бесполезно вкатываться.
>>39932
>1000fps это запас, условно. И косвенная функция чувствительности. Иными словами, 1000 = 100 fps при в 10 раз худшем освещении с сохранением уровня сигнал-шум
Ну сложишь 10 раз, динамический диапазон увеличится на 10 дБ. Но эти 10 дБ это (почти совсем) ерунда по сравнению с динамическим диапазоном обыкновенных камер. И с тем же успехом ты мог просто складывать соседние пиксели с камеры с большим разрешением, но с обыкновенным fps.
>digitalWrite(Buzzer, LOW); - будет пищать
digitalWrite(Buzzer, HIGH); - не будет пищать
Та вот в том то и дело, я пробовал и так тоже писать:
if(val>=600) {
digitalWrite(Buzzer, LOW);
}
else {
digitalWrite(Buzzer, HIGH);
}
А ему похуй, вместо того, чтобы отключаться, он просто меняет тональность. И на пины разные пробовал и вообще хуй знает уже. Может он тупо бракованный? Хотя как он может быть бракованным я хз, там особо ломаться нечему, а сигнал не в нём генерится, а с дуинки подаётся. Я уже второй день с этим баззером блядским ебусь, со сраной пищалкой
Ничего не нужно там менять. Там три детальки всего. Пищит та большая круглая штука. Пищит потому что туда встроен генератор. Подаешь напряжение - пищит. Напряжение снимаешь - не пищит.
Но выводы атмеги большой ток не тянут, поэтому туда поставили ключ на транзисторе. Транзистор открывается - пищит, закрывается - не пищит. Мультиметром можно проверить меняется ли напряжение на выводе ардуины и на самой пищалке.
>только заказал
Купил бы лучше в местных магазинах, если там есть.
Окей, тогда попробую все эти дела, если нет, то просто ебану какое нибудь реле и буду работать с ним, а не напрямую с баззером и гори оно всё синим пламенем нахуй.
Та я всё с arduino.ua заказываю, приходит за день ко мне под двери, удобно и цены у них отличные, едва ли дороже, чем на али, учитывая доставку за каждый товар.
Хотя есть же мосфет
Сап нужна помощь, написал простенький код, но он не работает, что нужно сделать? Будет ли код работать циклично?
Пока нигде, но если не получится решить с этим баззером проблему, то подключу реле или мосфет и буду через него дёргать
Ну ты прогромист пиздец, конечно лол. После else в твоём случае не надо проверки условия. Ты видишь вообще внизу компилятор ошибку выдаёт? Если ты уж решил проверить условие, то после else нужен if. Но опять же, в твоём случае digitalRead может возвращать либо low, либо high, поэтому в ветке else проверять ничего не нужно
Пости, а нахуя тебе часовая сборка arduino ide 2015 года? Она какая-то особенная?
Ты для начала руками на VCC подай питание, на GND землю, на I/O землю. Пищит? А должен.
А теперь на I/O подай питание. Пищит? А не должен.
И нам расскажи.
Удали то, что после else идёт. Там же не else if
Подал питание на VCC – пищит. Подал на I/O – не пищит.
Прилагаю весь код, который есть на данный момент, может таки в нём проблема и даун тут я.
Что у тебя на A0 происходит? Что туда физически подключено?
Может там шум ёбаный и случайные уровни читаются?
Руками на A0 воткни сначала землю, а потом питание.
Работает?
>пин потенциометр
Смотри на пикрелейтед.
Ты так сделал? Ты подключил на одну ногу питание, а на другую землю? Без неё это будет просто переменный резистор. С а ней будет делитель, который будет контролировать напряжение.
А ещё зачем тебе в коде map и constrain? Судя по коду они делают одно и то же у тебя - из 0-1023 делают 0-1000. Оставь один. А лучше выброси оба, нахер оно там надо? Пользуй 0-1023.
Проиграл с твоего говнокода. Приглядись, у тебя условие if(val < 600) никогда не выполняется, так как оно стоит в теле if (val>=600), и, очевидно, если значение больше 600, то оно уже никак не может быть меньше 600
Алсо, "выводим на экран значения потенциометра с шагом в 100" - это вообще блять что? Во-первых, у тебя в ветки case зайдёт только если val ровно 100, 200, 300 и т. д. Во-вторых, нахуя это всё, если у тебя во всех case выполняется одинаковый код, лол?
Питание там выдаёт LM1117, который до 20 вольт может пережевать. Рекомендовано до 15.
Так что можешь туда хоть свинцовую автомобильную батарею поставить.
Неправильно, нужно еще учитывать рассеиваемую мощность. На 16 МГц атмега8 потребляет 2.5мА, таким образом будет рассеиваться (20-5)х0,0025=0,0375 Вт. Это ерунда, но если прибавить выходной ток GPIO, то может оказаться намного хуже. Максимально допустимый суммарный ток с одного выхода - 40 мА, но суммарный ток потребления 200 мА. Допустим подключили кучу светодиодов к выводам - и вот уже 100 мА как нефиг делать, а это уже 1,5 Вт (при 20 В на входе). LM1117 с корпусом SOT-223 столько не вытянет. У корпуса SOT-223 тепловое сопротивление кристалл-воздух 60 градусов/Вт, в результате нагреется на 90 градусов (относительно температуры воздуха).
Я игрался с LM1117, цеплял мощный светодиод, при перегреве она просто занижает напряжение, а потом обратно поднимает. А потом снова занижает. Ничего страшного не случится.
Всего лишь работать не будет, но ничего плохого не произойдет.
>А ещё зачем тебе в коде map и constrain?
Потому что я нуб, а map, чтобы ограничить 0-1000, для того чтобы выводить на экран показания потенциометра именно с шагом в 100 и потом в код я буду еще добавлять управление помпой, которая будет работать также в зависимости от этого шага в 100:
помпа качает 80л/час или ~1300мл/60сек
Если выполняется условие case 100, то имеется в виду 100мл и на экран выводится значение 100, а насос включается на ~5сек, чтобы срыгнуть 100мл жидкости. Ну вот как то так.
Алсо по сути пикрил и есть просто движковый переменный резистор, а у меня как раз такой.
>>40110
>>40126
Справедливо, убрал.
Кто-то может опознать стафф? NRF и TL866 я увидел. Интересуют обе базы под NRF и корпуса.
Эти тоже, да. Освежил память, вспомнил где я их видел, спасибо. А ведь удобный корпус для андурин с индикацией.
>обе базы
Обратил внимание на то что на обоих платах имеются двухрядные гребенки по 6 контактов? Может быть для программирования.
ICSP? Маркировка на большом чипе похожа на логотип Atmel. Не, это понятно, но лучше бы узнать о платках побольше. Вдруг что интересное. В гугле не нашёл.
Паяльная станция у них весьма приличная на вид. Не думаю что много ардуинщиков себе такое покупает. Если потратились на такую паяльную станцию, то могли сами такие платки сделать.
>Алсо по сути пикрил и есть просто движковый переменный резистор, а у меня как раз такой.
Тогда тебе надо ногу A0 подтянуть к земле, а через твой резистор питание подводить.
Допустим у тебя переменный резистор на 10кОм, берёшь 1кОм резистор, подтягиваешь ним к земле и получается, что когда твой переменный в максимальном сопротивлении, на A0 будет почти земля.
А если минимальное сопротивление, то питание.
такой https://ru.aliexpress.com/item/NEWEST-RFID-Starter-Kit-for-Arduino-UNO-R3-Upgraded-version-Learning-Suite-With-Retail-Box/32714696336.html?spm=a2g0v.search0104.3.9.345241darrNzEh&ws_ab_test=searchweb0_0,searchweb201602_4_10065_10068_204_318_319_10059_10884_10887_100031_10696_450_320_10084_10083_10103_5723515_452_10618_535_534_10307_533_532_10301_448_449,searchweb201603_60,ppcSwitch_0&algo_expid=7222158b-8399-4211-9a41-878a212f2c77-4&algo_pvid=7222158b-8399-4211-9a41-878a212f2c77
или такой
https://ru.aliexpress.com/item/2017-New-Year-present-Keyestudio-4WD-Bluetooth-Multi-functional-Car-For-Arduino-Robot-with-LCD1602-Bluetooth/32780752178.html?spm=a2g0v.search0104.3.2.63c44a78LMKkAS&ws_ab_test=searchweb0_0,searchweb201602_4_10065_10068_204_318_319_10059_10884_10887_100031_10696_450_320_10084_10083_10103_5723515_452_10618_535_534_10307_533_532_10301_448_449,searchweb201603_60,ppcSwitch_0&algo_expid=5efd2cae-c75c-4ff7-bb23-53146856f64f-0&algo_pvid=5efd2cae-c75c-4ff7-bb23-53146856f64f
>keyestudio
Оверпрайснутая хрень. Первый набор лучше. Алсо, учись писать ссылки нормально: удаляй всё, что идёт после .html , а между /item/ и именем файла пиши какую-нибудь хуету. Пример на твоих ссылках:
https://ru.aliexpress.com/item/RFID-Starter-Kit/32714696336.html
https://ru.aliexpress.com/item/Keyestudio-4WD/32780752178.html
Во первых, выкидывай говно из ссыллок на Али. См. ниже.
Во вторых, есть похоже наборы дешевле:
https://ru.aliexpress.com/item/UDALIHUYNUTUTSUKA/32879857483.html
В третьих, все эти модули кроме Bluetooth можно собрать на коленке, если хочешь конечно. Те же модули BT HC-05 на Али по 200 рублей, микросхемы для двигателей L293D, SN754410NE по те же 200-300, только понадобятся макетные платы, резисторы-конденсаторы и прочая дребедень. "Модуль" для следования по линии делается из макетной платы, 3 фоторезисторов, трёх светодиодов и 6 резисторов. Машинку проще купить за 600 рублей на Али. Но есть вариант играть в ждуна, потому что резисторы, например ещё не пришли, или конденсаторов нет.
В пикрелейтеде, например много схем есть.
Вопрос кстати, что за схемы там в наборе и что там вообще понаписано.
Например, резюки сразу нужных номиналов, а не бесполезную хуйню вразнобой (для МК и светодиодов в первую очередь нужны 100R, 150R, 200R, 300R, 1K, 3K и гора по 10K). Кондеры развязывающие по 10-30nf и кондеры для сглаживания питания, 1000uf. Транзисторы на разные нагрузки - до 0.7А, до 6А, до 25-45А.
Ну и так далее, по каждому виду радиодеталей для пердуины можно подобрать самое оптимальное.
Была такая мысль. Думаю, что стоит попробовать, но у меня получается минимум два магазина:
Fantasy Electronics CO для рассыпухи https://vanxy888.ru.aliexpress.com/store/all-wholesale-products/1911309.html
All Electronics Trading Company для модулей https://ru.aliexpress.com/store/all-wholesale-products/716258.html
Ну магазины-то любой может найти поиском по али, на это много ума не надо. И там не бывает каких-то уж прямо "проверенных" селлеров - сегодня тебе прислали годноту, а завтра она кончилась и начали рассылать выпайку и паленку.
Гайд нужен именно по наименованиям рассыпухи, чтобы ньюфагу было проще получить нормальную производительность/надежность за малые деньги, а не накупить всякой устаревшей срани из assorted kits.
За доставку платить - без штанов не останешься? На фентезях есть любая рассупыха для ньюфагов, только силовые триаки все палёные (ну и похуй). Собрать можно вполне уложившись в два посылки с трековой доставкой по 50р. на каждую.
Я предлагаю все-таки вопросы КАК и ГДЕ ПОКУПАТЬ опустить, все же ньюфаги может и не разбираются в электронике, но они не клинические дебилы и сами сообразят как на доставке сэкономить (если вообще надо эти копейки экономить, может им проще на маузере закупиться).
Самая главная проблема всегда - это какие компоненты выбрать из 100500 аналогов. Хорошо если будет список, от которого можно отталкиваться при решении самых распространенных задач. А задачи в микроконтроллерных проектах чаще всего однотипные - подключение датчиков, отображение/логгирование/обрабротка данных с них, и управление разными видами нагрузок.
Ну так пиши. У меня всё ограничивается не списком деталей, а количеством посылок на которых я проебал больше, чем на количестве компонентов.
Хуй знает, я просто купил на Али пачки диодов / резисторов / конденсаторов и докупаю что нужно. Купил пачку резисторов 1000 штук - 100 номиналов. Надо мне - достал 5 резисторов по 120 Ом и заебись. Тут всё равно всё цифровое - можно вместо 120 чуть побольше поставить, никаких проблем.
Лучше один раз научиться рассчитывать резисторы для светодиодов, вычитая forward voltage из 5 вольт и деля на ток, который выдержит Ардуина, чем каждый раз покупать наборы с готовыми деталями.
>вычитая forward voltage из 5 вольт и деля на ток, который выдержит Ардуина
Оригинально. И как, ноги ардуины у тебя не горят?
Бля, да ты основательно подошёл к миганию светодиодами
>3DPD
Гугл о таком не знает. Или ты про 3DP?
>Корпусов под nano
То есть ты хочешь корпус, в который вставлялась бы одна дурина вообще без ничего? Но зачем? Это бессмысленно, к пердуине все равно придется подключать какие-то платы, или хотя бы разъемы.
Да, но к унам, например, есть куча разных странных корпусов, куда влезает ардубина и еще-чуть-чуть. Вот мне бы такой пригодился для наны (и чтобы шлейф из него торчать мог). А еще можно сделать корпус с _местом под ардуину_, чтобы она там крепилась плотно и разъемом торчала, или корпус контактами наружу.
На пике у тебя ещё 6 ног от A0 до A5 свободны. Они такие же GPIO пины.
А ещё есть лайфхак, который в телевизорах применяют. Если у тебя только один аналоговый порт свободоен, делаешь делитель на резисторах и каждая кнопка цепляет свой резистор. Пикрелейтед.
На аналоговой ноге смотришь напряжение и понимаешь какая кнопка нажата. Правда это не очень надёжно, но ты знай на будущее.
А ещё есть сдвиговые регистры и демультиплексоры, чтоб из пары ног ардуины получить хоть 9999 GPIO. Но там уже сам разберёшься.
>Я правильно понимаю, что для них мне нельзя использовать пины, уже используемые клавиатурой/LCD?
Нет, ты понимаешь не совсем правильно. Посмотри как соединены кнопки в этой клавиатуре.
И научись рисовать схемы нормально.
Сейчас решил разнести инструменты подальше. Подключить их не друг за другом а через одну линию. А те что между ними, повесить на землю. Их можно прямо к земле подпаивать, или через резистор? И что, если сверху над дорожками приклеить кусок, заземленного медного скотча?
Дай схему, как делаешь.
https://www.instructables.com/id/Homemade-Electronic-Drum-Kit-With-Arduino-Mega2560/
Может кто дать советов, как эргономичнее это сделать? Набросок кода приветствуется.
На робокрафт прошу не слать - я уже там.
Какой микропроцессор из ATmega посоветуете конченому нуфане? Знаю: основы электроники, С, ASM. Ардуины не предлагать.
Что вообще нужно иметь кроме компа и рук, чтобы начать прогать микроконтроллеры? Видел видосы, где люди просто подключают микроконтроллер через usb программатор и больше ничего не используют. Можно так?
Вполне
Хотя если у тебя котнроллер сложнее тиньки тебе возможно понадобится обвязка для него либо девборда
>>41319
>Какой микропроцессор из ATmega
Они все одинаковые, отличаются немного лишь по периферии и по объему памяти.
>Ардуины не предлагать.
Писать такое в этом треде как-то странно. Можешь ардуину взять, действительно. Ардуина же это обыкновенный (только сильно устаревший) микроконтроллер AVR, припаянный на плату и с прошитым загрузчиком. Никто не заставляет использовать пердуино IDE для программирования ардуин, можешь хоть в машинных кодах вбивать.
>Знаю: основы электроники, С, ASM.
Если действительно знаешь, то ничто не мешает практически сразу начать программировать любой микроконтроллер.
>Можно так?
Если все что тебе требуется, это только мигать светодиодом и что-нибудь выводить в UART, то вполне можно обойтись одним программатором. Но с отладчиком получше будет, поэтому начинать с AVR не стоит.
Ну, я вообще хотел купить ATmega32A в dip корпусе. Нормально будет?
>Если все что тебе требуется, это только мигать светодиодом и что-нибудь выводить в UART, то вполне можно обойтись одним программатором. Но с отладчиком получше будет, поэтому начинать с AVR не стоит.
Ну, вообще, я хотел, после того как разберусь в микроконтроллерах нормально, конечно, сделать, что-то типа Гейм-Боя с небольшим экранчиком например, как в старой нокии и кнопочками. Чтобы в него можно было загружать мои игры, которые я напишу на С и играть. Возможно это слишком сложная цель, но это то, что я хотел бы сделать в итоге. Между мной - ничего не знающим и этой целью будет, куча всяких проектов, на которых я в итоге научусь, возможно, достаточно хорошо прогать микроконтроллеры, чтобы такое сделать.
Цель - хуйня высосанная из пальца, а значит процесс ты забросишь столкнувшись с первой же трудностью. Нет смысла тратить на тебя время.
Как скажешь. Но, я не собираюсь бросать столкнувшись с первой же трудностью.
Как же хочется ардубойчика, чтоб на диванчике в игори поиграть.
управлять 9 релейными модулями, используя не больше 7 ног?
Мультиплексор купить возможности нет, но есть россыпь транзисторов-резисторов-конденсаторов.
Это сработает если нужно включать какое-нибудь ОДНО реле из всех, а мне нужно чтобы одновременно можно было замкнуть хоть одно, хоть половину или все произвольно.
Ты на вопрос вообще не ответил. Покажи свою ардуину и свободные ноги. Наверняка у тебя есть ещё свободные.
- Насколько хорошая(и реальная) идея сделать Arduino на Atmega328 + v-usb?
- получится ли более-менее рабочий осциллограф(знаю что это одна их первых нубских идей, но вот я тоже нуб).
- стоит ли использовать 3-е состояние выхода(высокоимпедансное) как сигнальное(троичная логика)? Насколько простым может быть дешифратор на транзисторах в такой логике(2+z)?
- реально ли вывести что-то на vga монитор(800/600/60 гц)?
https://www.aliexpress.com/item/DCcduino-UNO-R3-ATMEL-AVR-MCU-Development-Board-Ch340G-ATmega328-ATmega328P-for-Arduino-Compatible-Freeshipping/32666011543.html
Как ее настроить так, чтобы она стала как оригинал? Обычные способы для ардуино не получаются или я тупой Скорее всего, второе
Заранее спасибо
*ch340
1) Создаю новый пустой скетч
2) Говорю "подключи мне SPI"
3) В начале скетча появляется инклюд SPI.h
4) Тыкаю скомпилировать
5) ???
6) FATAL ERRRRORRRORR: SPI.h: no such file or directory
Библиотека SPI, как я понимаю, встроенная - лежит в каталоге самой IDE. Файл SPI.h там есть. Библиотека в менеджере помечена как установленная, для нее доступны примеры (не собирающиеся с той же ошибкой). Каталог настроек IDE сносил, саму IDE переустанавливал, хуйцы сосал, бочку делал - не помогает. ЧЯДНТ?
> - реально ли вывести что-то на vga монитор(800/600/60 гц)?
Да, если тебя устраивают примитивные узоры. Где-то была статья, где чувак выводил полосы (R,G,B) как раз в 800x600@60. На полноценный вывод не хватит мощей: 800х600х60 = 28800000, а у дуинки частота всего 8/16 МГц (китайцы могут в 20, но даже этого мало). И ведь там не просто поток, еще всякие синхронизации... Поэтому тупо простые узоры.
Так крути все в лупе.
Миллисекунды там тоже считаются в прерываниях от таймера, поэтому у тебя не работает. То есть эта твоя задержка останавливает подсчет миллисекунд. Может быть в ардуине возможно настроить приоритет прерываний. Тогда если прерыванию от таймера назначить наивысший приоритет, то такой код у тебя будет работать.
Но вообще-то вставлять задержки в прерывания не рекомендуют по другим причинам. Назначение прерываний - повысить скорость реакции на внешние события. Если в прерывание вставлять задержку, то очевидно что прерываниям с меньшим приоритетом придется ждать и повышения скорости реакции не будет.
Тогда скажи, как мне ее правильно протестировать и включить. Я еще не распаковывал
Да. Давай ньюфагам стм32 советовать, у которого комьюнити, чуть больше, чем нихуя.
Купил ардуину, накопипастил кода из гугла, всё работает, всё заебись.
Купил стм32, я даже программатор подключить не смог. Нихуя не понятно. А пробуешь помощь найти, там там всё в дядьках-инженерах, которые на ассемблере под них пишут.
Заходишь в /ra/, спрашиваешь как подключить программатор, тебя нахуй шлют, закидывают книгами по электронике и советуют купить ардуину.
Что-то пошло не так
> avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x00
> avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x00
> avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0x00
> avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0x00
> avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0x00
> avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0x00
> avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0x00
> avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0x00
> avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0x00
> avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x00
> Произошла ошибка при загрузке скетча
Как идею-то переключить на английский, тут все непонятно
Я все починил, у меня, видимо, старый загрузчик.
Кинь футаж платы
НА А1 ВЕШАЕТСЯ ДЮПОН МАМА-ПАПА, ЗА НЕГО ДЕРЖИТСЯ ИСПЫТУЕМЫЙ
НА ЗЕМЛЮ1 И Д2 ВЕШАЕТСЯ СВЕТОДИОД
НА ЗЕМЛЮ2 И Д4 ВЕШАЕТСЯ ДРУГОЙ СВЕТОДИОД
ЕСЛИ ИСПЫТУЕМЫЙ ПИДОР, ТО ЗАГОРАЕТСЯ ПЕРВЫЙ СВЕТОДИОД, ИНАЧЕ ВТОРОЙ
ГЕНИАЛЬНАЯ РАЗРАБОТКА
НУЖНО ПРИВЛЕЧЬ ИНВЕСТИЦИИ
[CODE]void setup() {
randomSeed(analogRead(14));
if (random(0,1000) % 2 == 0) {
pinMode(2, OUTPUT);
digitalWrite(2, HIGH);
} else {
pinMode(4, OUTPUT);
digitalWrite(4, HIGH);
}
}[/CODE]
Нихуя мне особо не подсказали, только какую-то дичь про плавающую запятую втирали. Но я защитился, похуй.
Замутил мини теплицу с открывающейся дверкой, привязанной к температуре.
Оставляю вам, может кому-то надо будет.
Отклеилось
Ты наверное в гуманитарном каком-то заведении учился, раз дипломная работа на 15 строчек кода?
Да в дефолтной шараге.
В нашей шараге, наверное, до сих пор дипломную по 1К62 сдают. Уж лучше бы диплом ардуинщика давали.
Например, есть фитнес-браслет с кнопкой. По идее, даже если канал зашифрован, а браслет привязан к телефону, raw-сигнал по нажатию кнопки будет один и тот же? Можно его использовать для зажигания светодиода на ардуине?
Я в этом всём не разбираюсь, но там же наверняка блютус лоу энержи или что-то типа того.
В общем с браслете может быть какой-то другой блютус, не такой как в этом модуле.
>даже если канал зашифрован, а браслет привязан к телефону, raw-сигнал по нажатию кнопки будет один и тот же?
В засмеялся-тред
Ардуина в СВ и КВ-диапазонах может работать без радиомодуля, но очень плохо. Получится вроде этого http://runtimeprojects.com/2016/02/a-lightning-detector-for-arduino/
нужна схема подключения рабочая и скетч только для ВКЛ/ВЫКЛ светодиодов
нужна схема подключения рабочая и скетч только для ВКЛ/ВЫКЛ светодиодов
При питании 5V нужен жирненький резистор на 10кОм.
Но ведь фоторезистор и есть резистор? Он ведь тоже копротивляется.
Я своим вопросом дошел до какого-то "делителя напряжения", но так и не понял, что это. Может кто пояснить не на серьезных щщах? Книгу по электричеству для ньюфагов только начал читать.
а если взять фоторезистор с большим сопротивление? например на те же 10кОм или даже чуть жирнее? (в соответствии с источником питания, конечно).
Ты хоть схему то покажи. Из резистора и фоторезистора делается делитель напряжения потому что измерять сопротивление напрямую МК не умеет.
Ардуина отупляет. Даже схему нормально нарисовать не могут.
Закон Ома для участка цепи дети в восьмом классе проходят.
тфу, блять. наоборот.
короч, в первом варианте пьезо пищит только если нет света.
во втором она наоборот пищит все время, но если свет перекрыть - перестает.
Так их много разных бывает. Со встроенным генератором, без встроенного генератора, без управления логическим уровнем, с включением по лог. 1, с включением по лог. 0.
У тебя какой вариант?
У тебя тут делитель напряжения, для него нужно 2 резистора чтобы внезапно делить напряжение между ними.
понятно. заменим пищалку на светодиод.
теперь понял?
при одной коммутации он тухнет ,когда наводишь палец на фоторезистор, а при другой загорается при тех же действиях. Код при этом один.
Есть что по делу сказать или ща будешь рассказывать "а какой резистор, а сколько ампер, а какой вольтаж подаешь, а кто производитель"?
Потому что делитель напряжения.
1) Сумма напряжений на фоторезисторе и резисторе равна напряжению питания. Это второй закон Кирхгофа.
2) Если поменять местами резистор и фоторезистор, п.1 также будет соблюдаться. При этом напряжения на резисторе и фоторезисторе не изменятся (существенно).
3) В одном случае ты измеряешь напряжение на фоторезисторе, во втором на постоянном резисторе.
Теперь понятно? В школе не учился что ли?
И не пытайтесь теперь отрицать, что ардуина не отупляет.
>наверстываю для себя
Научись все-таки нормально рисовать схемы. Если бы ты нарисовал нормально, то может быть сам сообразил что к чему.
И использовать ардуину для обучения - плохой выбор.
>И использовать ардуину для обучения - плохой выбор.
Обизянки из третьего мира с тобой не согласны.
Дуина и есть для обучения. Но на ней пытаются товар делать, лол. Хотя пуринтера и работают на дуинах.
ты, наверное, считаешь, что нужно сразу купить толстый томик по электронике, затариться диодами и прочей комплектухой, взять паяльник и начать самому дороги разводить, да?
ты, наверное, из тех программистов, которые говорят мол "хуле твоя JAVA/Python/языкнейм, если ты не знаешь ассемблер"
Завидую современным детям. Мы на трудах болванки точили из дерева, самотыки для своих мамаш и прочую хуйню с гнутыми гвоздями, а они роботов собирают, программируют.
зато мы можем соединять деревяшки встык, а ещё обладаем навыком резки металла уёбищными ножницами по металлу года эдак 45-го. неточившимися.
Нет, ардуина это для того, чтобы человек далекий от радиотехники, мог не особо вникая сделать что-нибудь простенькое для автоматизации чего-нибудь для себя.
>>43881
>ты, наверное, из тех программистов, которые говорят мол "хуле твоя JAVA/Python/языкнейм, если ты не знаешь ассемблер"
Вот этим ты доказываешь мое утверждение. Ассемблер , особенно для атмеги, изучить проще чем Си. Но знание ассемблера, само по себе, существенных преимуществ не дает.
>>43888
Роботов практически с такой же функциональностью, даже почти сто лет назад, дети могли собирать на шаговых искателях.
Код:
int TWSR_buf;
void IIC_init(unsigned long frq)
{
TWBR = (F_CPU/(2xfrq))-8;//set scl frequency (двач бы убил умножение поэтому заменил на х. В IDE умножение какое надо)
TWSR = 0;
sei();
}
void IIC_start()
{
TWCR = (1<<TWINT)|(1<<TWSTA)|(1<<TWEN)|(1<<TWIE);
while (!(TWCR & (1<<TWINT)));
}
void IIC_stop()
{
TWCR = (1<<TWINT)|(1<<TWEN)|(1<<TWSTO);
}
void IIC_write(unsigned char dat)
{
TWBR = dat;
TWCR = (1<<TWINT) | (1<<TWEN)|(1<<TWIE);
while (!(TWCR & (1<<TWINT)));
}
unsigned char IIC_read()
{
TWCR = (1<<TWINT)|(1<<TWEN)|(1<<TWIE);
while (!(TWCR & (1<<TWINT)));
return TWBR;
}
void main()
{
DDRC = 0xFF;
PORTC = 0;
DDRA = 0xFF;
PORTA = 0;
TWSR_buf = 0;
IIC_init(100000UL);//init freq of iic
for(int i = 255; i != 0; i--)
{
TWSR_buf = 0;
_delay_us(1.3);
IIC_start();
_delay_us(0.6);
IIC_write(i);
_delay_us(0.6);
if(TWSR_buf)//если не равно нулю, то записать текущий адрес
{
PORTA = i;
break;
}
IIC_stop();
_delay_us(1.3);
}
while(1);
}
ISR(TWI_vect)
{
if(TWSR == 0x20)//SLA+W has been transmitted(Адрес раба передан и получен бит подтверждения)
TWSR_buf = TWSR;
}
Код:
int TWSR_buf;
void IIC_init(unsigned long frq)
{
TWBR = (F_CPU/(2xfrq))-8;//set scl frequency (двач бы убил умножение поэтому заменил на х. В IDE умножение какое надо)
TWSR = 0;
sei();
}
void IIC_start()
{
TWCR = (1<<TWINT)|(1<<TWSTA)|(1<<TWEN)|(1<<TWIE);
while (!(TWCR & (1<<TWINT)));
}
void IIC_stop()
{
TWCR = (1<<TWINT)|(1<<TWEN)|(1<<TWSTO);
}
void IIC_write(unsigned char dat)
{
TWBR = dat;
TWCR = (1<<TWINT) | (1<<TWEN)|(1<<TWIE);
while (!(TWCR & (1<<TWINT)));
}
unsigned char IIC_read()
{
TWCR = (1<<TWINT)|(1<<TWEN)|(1<<TWIE);
while (!(TWCR & (1<<TWINT)));
return TWBR;
}
void main()
{
DDRC = 0xFF;
PORTC = 0;
DDRA = 0xFF;
PORTA = 0;
TWSR_buf = 0;
IIC_init(100000UL);//init freq of iic
for(int i = 255; i != 0; i--)
{
TWSR_buf = 0;
_delay_us(1.3);
IIC_start();
_delay_us(0.6);
IIC_write(i);
_delay_us(0.6);
if(TWSR_buf)//если не равно нулю, то записать текущий адрес
{
PORTA = i;
break;
}
IIC_stop();
_delay_us(1.3);
}
while(1);
}
ISR(TWI_vect)
{
if(TWSR == 0x20)//SLA+W has been transmitted(Адрес раба передан и получен бит подтверждения)
TWSR_buf = TWSR;
}
>\t\t
Абу, ты на приколе?
int TWSR_buf;
void IIC_init(unsigned long frq)
{
TWBR = (F_CPU/(2xfrq))-8;//set scl frequency (двач бы убил умножение поэтому заменил на х. В IDE умножение какое надо)
TWSR = 0;
sei();
}
void IIC_start()
{
TWCR = (1<<TWINT)|(1<<TWSTA)|(1<<TWEN)|(1<<TWIE);
while (!(TWCR & (1<<TWINT)));
}
void IIC_stop()
{
TWCR = (1<<TWINT)|(1<<TWEN)|(1<<TWSTO);
}
void IIC_write(unsigned char dat)
{
TWBR = dat;
TWCR = (1<<TWINT) | (1<<TWEN)|(1<<TWIE);
while (!(TWCR & (1<<TWINT)));
}
unsigned char IIC_read()
{
TWCR = (1<<TWINT)|(1<<TWEN)|(1<<TWIE);
while (!(TWCR & (1<<TWINT)));
return TWBR;
}
void main()
{
DDRC = 0xFF;
PORTC = 0;
DDRA = 0xFF;
PORTA = 0;
TWSR_buf = 0;
IIC_init(100000UL);//init freq of iic
for(int i = 255; i != 0; i--)
{
TWSR_buf = 0;
_delay_us(1.3);
IIC_start();
_delay_us(0.6);
IIC_write(i);
_delay_us(0.6);
if(TWSR_buf)//если не равно нулю, то записать текущий адрес
{
PORTA = i;
break;
}
IIC_stop();
_delay_us(1.3);
}
while(1);
}
ISR(TWI_vect)
{
if(TWSR == 0x20)//SLA+W has been transmitted(Адрес раба передан и получен бит подтверждения)
TWSR_buf = TWSR;
}
>\t\t
Абу, ты на приколе?
int TWSR_buf;
void IIC_init(unsigned long frq)
{
TWBR = (F_CPU/(2xfrq))-8;//set scl frequency (двач бы убил умножение поэтому заменил на х. В IDE умножение какое надо)
TWSR = 0;
sei();
}
void IIC_start()
{
TWCR = (1<<TWINT)|(1<<TWSTA)|(1<<TWEN)|(1<<TWIE);
while (!(TWCR & (1<<TWINT)));
}
void IIC_stop()
{
TWCR = (1<<TWINT)|(1<<TWEN)|(1<<TWSTO);
}
void IIC_write(unsigned char dat)
{
TWBR = dat;
TWCR = (1<<TWINT) | (1<<TWEN)|(1<<TWIE);
while (!(TWCR & (1<<TWINT)));
}
unsigned char IIC_read()
{
TWCR = (1<<TWINT)|(1<<TWEN)|(1<<TWIE);
while (!(TWCR & (1<<TWINT)));
return TWBR;
}
void main()
{
DDRC = 0xFF;
PORTC = 0;
DDRA = 0xFF;
PORTA = 0;
TWSR_buf = 0;
IIC_init(100000UL);//init freq of iic
for(int i = 255; i != 0; i--)
{
TWSR_buf = 0;
_delay_us(1.3);
IIC_start();
_delay_us(0.6);
IIC_write(i);
_delay_us(0.6);
if(TWSR_buf)//если не равно нулю, то записать текущий адрес
{
PORTA = i;
break;
}
IIC_stop();
_delay_us(1.3);
}
while(1);
}
ISR(TWI_vect)
{
if(TWSR == 0x20)//SLA+W has been transmitted(Адрес раба передан и получен бит подтверждения)
TWSR_buf = TWSR;
}
Окей, нашел ошибку у себя в коде
ISR(TWI_vect)
{
if(TWSR == 0x18) // 0х18 - SLA+W has been transmitted(Адрес раба передан и получен бит подтверждения)
//0х20 - SLA+W has been transmitted(Адрес раба передан и бит подтверждения не получен)
TWSR_buf = TWSR;
}
Теперь все светодиоды погашены постоянно. Как брутфорсом найти адрес контроллера?
>Как брутфорсом найти адрес контроллера?
Как i2cdetect в линуксе или почитать еще раз описание протокола iic - тупо брутфорсом по очереди перебирать все адреса и смотреть кто ответит ACK и не забыть про таймауты, а то на первом же адресе все раком встанет.
>sdd1306
Открыл за тебя датаshit
“SA0” bit provides an extension bit for the slave address. Either “0111100” or “0111101”, can be selected as the slave address of SD1306. D/C# pin acts as SA0 for slave address selection.
“R/W#” bit is used to determine the operation mode of the I2C-bus interface. R/W#=1, it is in read mode. R/W#=0, it is in write mode.
Пробуй 0x78 или 0x7A.
Я открывал даташит, и читал про адрес. Я хочу написать сканер iic просто.
>void IIC_write(unsigned char dat)
>{
>TWBR = dat;
>TWBR = dat;
>TWBR
Бля, какой же я даун. Вчера целый день проебался с контроллером, а оказывается я дату не в тот регистр писал, пиздос какой-то. Вот зачем делать так, чтобы регистры отличались друг от друга на одну букву? Все, пишу файл со своими названиями регистров, а то это пиздец.
P.S. Все заработало, всем спасибо. Адрес был - 0x3C
Ммм, сладкое байтоебство.
чуть неправильно написал. Нужен аналог сервопривода или сервопривод с двумя осями или что-то похожее, на что я прицеплю деталь и буду вращать по двум осям.
Но как тебе поможет память?
Если ты про обыкновенный ч/б видеосигнал по ГОСТ 7845-92, то для получения полного разрешения (576х768) нужно обновлять данные с частотой 14,75 МГц. То есть AVR с этим явно не справится, особенно если возьмешь SPI.
Более того, что тебе мешает держать в памяти только шрифт?
Можно рисовать графику как в Gameboy - хранить набор тайлов и выводить его на экран.
Я хочу генерировать 3д графику авром и выводить ее на экран. Мне текст не нужен.
Ничего вменяемого не получится, по причинам которые я написал выше.
В обычном телевизионном сигнале пиксели идут с частотой 14,75 МГц, а это практически максимальная частота для AVR. Если ты хочешь получить квадратные пиксели, то тебе необходимо выдавать данные с этой или кратной частотой. Даже если в памяти уже есть изображение, то на вывод одного байта будет тратится вроде как три такта, соответственно по горизонтали получится разрешение лишь 192. При этом потребуется писать на ассемблере и считать такты вручную. С SPI памятью так еще в несколько раз хуже получится.
А еще нужно успеть посчитать само изображение. Как? Еще одну ардуину брать? Или считать во время кадровых синхроимпульсов?
Не проще ли взять что-нибудь более подходящее для задачи?
Как провернуть измерение сопротивления датчиков типа 50М, 100М, Pt100 на Ардуине с приемлемой точностью?
Тебе понадобится что-то помощнее типа STM32.
Ну или тебе понадобится экран, который умеет отрисовывать примитивы. Посмотри тут например:
https://hackaday.com/2016/01/02/better-3d-graphics-on-the-arduino/
Так я не собираюсь выводить на телек гта5 я хочу что-то уровня вращающегося куба сделать.
Там все-таки разрешение было никакое. И вывод видео делался в основном аппаратно, а не программно. Впрочем, если тебя устроит два бита на точку, то можно сделать на AVR с полным разрешением 576х768 с помощью сдвигового регистра. Но опять же, будет очень мало времени на расчет самого изображения.
>>44672
Ну так это можно вообще без процессоров сделать. Всего лишь видеомагнитофон нужен. Если хочешь без ленты, то можешь просто взять ПЗУ побольше и счетчиком считывать.
Ставь пробел в конце ссылки в адресной строке перед тем как скопировать её. Спасибо.
В общем, гугли - спрайт.
>измерение сопротивления датчиков типа 50М, 100М, Pt100 на Ардуине
http://arduinoprom.ru/arduino/179-kak-podkljuchit-termopreobrazovatel-pt100-k-arduino.html
Ну нах, АЦП дороже Пердуины и всей моей затеи. Завтра перерисую входные каскады гОвеновских ТРМ
Готовая плата на али стоит полтора бакса https://ucdev.ru/2017/12/15/измерительный-преобразователь-pt100/
Вот еще
http://ww1.microchip.com/downloads/en/AppNotes/00001154B.pdf
http://c3162852.workcast.net/10216_Digikey_-_Temperature_Sensing_v2_201111119456.pdf
Вот схема почти из гОвна https://www.instructables.com/id/Reading-Temperature-From-PT100-Using-Arduino/
Пока что ощущение что все равно надо ставить еще и ардуину к ним.
Более сотни датчиков и приводов разнесенных в сфере радиусом метров сто.
Нужно как минимум датчики сделать беспроводными.
Ардуина вайфай не умеет, гугли esp8622, он сам по себе кодится и работает без ардуины, в том числе и в ардуиновской ide вроде можно кодить, но не уверен.
А нахуя вайфай? Вайфай это не industrial grade решение, cотня датчиков это дохуя, далеко не каждый роутер сможет это обработать, нужно всякие дорогие рукусы, а там уже скорее те же esp8622 не потянут такой срач в эфире, вайфаю хуево когда очень много клиентов.
Смотри в сторону решений специально заточенных под такие задачи, я тут не шарю, может кто придет подскажет. Lorawan и всякое такое, я бы изучал статьи в англонете по запросам "wirelless iot protocol" "iot mesh solutions" и подобное, вайфай не заточен под такое, вайфай заточен под малое количество клиентов и большие скорости, а тебе наоборот надо, небольшие скорости, дохуя клиентов и большое для вайфая расстояния.
https://www.aliexpress.com/item/Free-shipping-CDSENET-E32-TTL-100-3km-LoRa-SX1278-433MHz-rf-wireless-transmitter-and-receiver-module/32791728376.html
Их можно подключать к той же ардуино (возьми nano, будет компактно, хотя хз какие у тебя датчики и требования к размерам и питанию). Есть либы для ардуино и примеры, гугли "SX1278 arduino"
>Ардуина вайфай не умеет, гугли esp8622
Об этом и речь, чтобы что-то взять с датчика нужен ардуино, чтобы скормить в ESP получается тоже нужен ардуино.
Но по твоим словам ESP автономны и возможно удастся затащить сигнал с платы датчика сразу в ESP.
Будем посмотреть.
Есть мечта сделать нормальные точные часы, чтобы прям годами их не переводить.
Можно ли на основе ардуинки это реализовать? Да ещё шоб оформить можно было как наручные часы.
Есть такой модуль DS3231, он подойдёт для этих целей?
Да.
>Есть мечта сделать нормальные точные часы, чтобы прям годами их не переводить.
ESP8266 и синхронизация по NTP, и можешь никогда не переводить.
Ну не очень-то часы и отстанут за денек-другой без интернета.
Подскажите, чего не хватает Ардуине для того чтобы заменить эту распильную пром-подъебку? Гальванической развязки?
Там нет кастомных чипов. Всего лишь https://www.infineon.com/cms/en/product/microcontroller/32-bit-tricore-microcontroller/
Надежности и репутации, а так же софта который понятен инженерам работающим в этой индустрии. Промышленный контроллер зачастую контролирует оборудование которое стоит намного больше чем он, и если из-за того что ардуинка поймает наводку и зависнет разлетится движок на мегаватт или кого-то намотает на вал, то отвечать будет тот кто решил сэкономить и поставил китайское говно для хипстеров.
Например, есть вот такая штука https://www.youtube.com/watch?v=KsiVaUWkXNA
Сам автор скетчами не делится, а я не в теме. Это что-то из готового шаблона, или он с нуля всё ебашил вручную?
Я так понимаю разница в форм-факторе?
Распиновка выводов одинаковая?
лампово
>! C:\Users\Серёга\Desktop\15421079634210.rar: Ошибка контрольной суммы в LCD_Design.exe, файл повреждён
иногда обломно
Не стоит вскрывать эту тему...
За последнюю ссыль, спасибки!
Разобрал гОвеновский ТРМ, а там на AI стоит AD7705 ценой юолее 400 рупий. Я теперь не сильно и удивляюсь ценам сраных измерителей-регуляторов в 4-5к. Помимо АЦП стоят недешевые гальваноразвязки ADUM1311, PIC заместо контроллера и прочие релюшки. Навскидку рассыпухи одной на пару к, плюс корпус, печатка, сборка, менеджеры продавцы-родины. Не так и дохуя они в прибыли.
Надо повнимательнее на работе присматриваться к списанным железякам. Там оказывается могут быть сочные АЦП за тыщи нефти. А я как еблан в помойку выбрасываю.
Заглядываю иногда. А что?
хочу подключить кнопку к arduino. Но есть трабл, у меня нет резистора 10к, а только 220 и несколько светодиодов. Имеет ли смысл эта схема(вывод-кнопка-светодиод-резистор220-земля)?
Включи внутренние подтягивающие резисторы.
pinMode(13, INPUT_PULLUP);
И дальше просто ставишь кнопку между пином и землей.
https://www.arduino.cc/en/Tutorial/DigitalPins
Есть одна Arduino Uno R3/Nano v3.
Нужно сделать i2c ретранслятор - с одного порта (тут можно использовать TWI) получаем пакеты на скорости до 400к, с ней же и отправляем с другого (тут видимо придётся программно эмулировать)?, "параллельно" отправляя это на сериал-порт компа.
Насколько реально?
И ещё не совсем понимаю, что это за дополнительные SDA/SCL на R3, и как они работают
Батенька, ты упоролся? Понимаю если надо подмену данных делать, но если тупо смотреть - купи тот же нищебродский кетайский клон кетайского клона в виде logic-u или подобный логический анализатор и увидишь во всей красе как все передается и даже с временнЫми интервалами что и когда.
http://we.easyelectronics.ru/AVR/sniffer-emulyator-i2c-i-1-wire.html
http://we.easyelectronics.ru/oss/sniffer-emulyator-i2c-i-1-wire-ftdi.html
Добавлю - иди на сайт производителя и обфапайся:
Общий раздел https://www.nxp.com/products/analog/interfaces/ic-bus:MC_41735
Повторители и расширители https://www.nxp.com/products/analog/interfaces/ic-bus/ic-bus-repeaters-hubs-extenders:MC_41849
Коммутаторы https://www.nxp.com/products/analog/interfaces/ic-bus/ic-multiplexers-switches:MC_41851
Трансляторы уровней (чем не ретранслятор?) https://www.nxp.com/products/analog/interfaces/ic-bus/ic-voltage-level-translators:MC_43683
Начав хотя бы с того что тебе придется прикидываться слейвом и иметь какой-то адрес что бы принимать данные и транслировать их дальше как мастер.
>>45836
Сниффер возьми. Если ты дуинщик, то для тебя такая задача не по зубам пока. Ты по временным рамкам не уложишься и постоянно будет мастер уходить в ошибку.
И подмену тоже, дохуя всего на самом деле. Нужно контроллер другой завести, потом повторять последовательности сигналов, и смотреть что он делает.
У меня есть анализатор, но с него данные доставать будет не удобно.
Я приблизительно понимаю, как реализовать I2C на D портах, но не уверен, что можно максимально достать из них, и как на атмеге работает передача на каком месте ардуина скажет, что с неё хватит.
Тогда хуйню не неси. Если есть дампы трафика - проанализируй как можешь и пиши их дегенератор на пердуине. Как тут выше подсказали - в особо тонких ситуациях можно попробовать проверить как сделан и сделан ли арбитраж когда сразу 2 мастера пытаются занять шину - по окончании обмена настоящим мастером начнешь свое говно в шину вливать.
Займись реверсинженигрингом. Да, долго, тупо, поиск клопов там где их нет. Как минимум примерный протокол будет известен, а дальше особый быдлокод который меняет каждое поле и так же сниффером наблюдаем что происходит.
Намекнешь что ломаешь? Какой-то адовый инвертор на 100500 КВт или что-то другое что может представлять угрозу жизни/здоровью/техпроцессу?
Очень неспешно пилю эмулятор мозгов UPS по дампам обмена(овер 4 часа), но забил, пошел по пути найти реальные мозги (МК залочен, прошивок в сети не нашел да и вряд ли они там есть) и создавать им анальные сигналы, что бы они думали что живут в реальной UPSе. Имея реальные мозги можно очень внимательно изучать тонкие моменты общения с ними, которые расходятся с документацией. Интересно попробовать написать свой netagent.
Понимаю, и? Я собираюсь ставить её вразрыв.
Зачем ещё мне второй I2C порт?
>>45885
Ну устроился на работку, они там реверсят одну железяку. И им (видимо для понимания того что происходит на i2c шине) понадобилось сэмулировать одно из подключенных устройств.
Устройств на шине много, мне надо ретранслировать/записывать только то что приходит на один адрес
Мне кажется это полнейший бред в постановке задачи. Единственное что может изменить мнение - это если то что надо эмулировать работает И МАСТЕРОМ И СЛЕЙВОМ ПОПЕРЕМЕННО. В случае только слейва - курить дампы, курить дампы, курить дампы и делать пердуину slave устройством, на которой через компорт или еще как менять значения выдаваемых байтов. Если же эмулируемое устройство работает и мастером - тоже раскурка дампов и создание slave на другой/других пердуинах.
Когда ты прикидываешься слейвом (при этом тебе надо реального slave отключить, чтобы не было конфликтов на шине) - через тот же компорт сможешь ловить на компе адресованные конкретно тебе байты и что будешь отсылать.
Пердуину стоит брать потолще на ATmega640/1280/2560 - у них 4 компорта, не придется пердолиться с программной эмуляцией компорта (один копия данных, другой управление), в качестве побочки - можно добавив 573 регистр добавить немного внешнего ОЗУ (до 64килобайт).
Как тупой вариант (адрес же знаешь?) сделать тупого слейва, который просто слушает, отправляя на каждый байт NACK (те идите в жопу и не светит свое присутствие на шине) и получишь в регистре данных то что летело слейву. Из тонких моментов - забив на бит ACK - передаешь байт с шины по uart, а как быть с условиями старт-стоп-повторный старт? Как их запихнешь в 8 бит посылки по uart? Перейдешь на 9 битные посылки? Говнокод на компе поймет 9 бит?
PS Похуй на формальности битовости: 400 000 / 9 = 44 500 x 10 = 445 000 у тебя компорт на компе в состоянии принять поток говна на скорости 445 000 бод ? Стандартная максимальная скорость 115 200, те в 4 раза МЕНЬШЕ нужной.
Логический анализатор и ручка - твои лучшие друзья. Долго, нудно, но как без этих данных собрался эмулятор писать? Начни с тупого переписывания в столбик данных декодированных данных с логического анализатора и при "обычной" работе, и как они меняются когда делаются какие-либо воздействия на slave.
Мне кажется основательно соснешь.. И из-за непонимания происходящего и из-за уровня знаний.
Мне кажется это полнейший бред в постановке задачи. Единственное что может изменить мнение - это если то что надо эмулировать работает И МАСТЕРОМ И СЛЕЙВОМ ПОПЕРЕМЕННО. В случае только слейва - курить дампы, курить дампы, курить дампы и делать пердуину slave устройством, на которой через компорт или еще как менять значения выдаваемых байтов. Если же эмулируемое устройство работает и мастером - тоже раскурка дампов и создание slave на другой/других пердуинах.
Когда ты прикидываешься слейвом (при этом тебе надо реального slave отключить, чтобы не было конфликтов на шине) - через тот же компорт сможешь ловить на компе адресованные конкретно тебе байты и что будешь отсылать.
Пердуину стоит брать потолще на ATmega640/1280/2560 - у них 4 компорта, не придется пердолиться с программной эмуляцией компорта (один копия данных, другой управление), в качестве побочки - можно добавив 573 регистр добавить немного внешнего ОЗУ (до 64килобайт).
Как тупой вариант (адрес же знаешь?) сделать тупого слейва, который просто слушает, отправляя на каждый байт NACK (те идите в жопу и не светит свое присутствие на шине) и получишь в регистре данных то что летело слейву. Из тонких моментов - забив на бит ACK - передаешь байт с шины по uart, а как быть с условиями старт-стоп-повторный старт? Как их запихнешь в 8 бит посылки по uart? Перейдешь на 9 битные посылки? Говнокод на компе поймет 9 бит?
PS Похуй на формальности битовости: 400 000 / 9 = 44 500 x 10 = 445 000 у тебя компорт на компе в состоянии принять поток говна на скорости 445 000 бод ? Стандартная максимальная скорость 115 200, те в 4 раза МЕНЬШЕ нужной.
Логический анализатор и ручка - твои лучшие друзья. Долго, нудно, но как без этих данных собрался эмулятор писать? Начни с тупого переписывания в столбик данных декодированных данных с логического анализатора и при "обычной" работе, и как они меняются когда делаются какие-либо воздействия на slave.
Мне кажется основательно соснешь.. И из-за непонимания происходящего и из-за уровня знаний.
>Понимаю, и?
Мне кажется что не понимаешь. Ты сам написал, что втыкать будешь в разрыв. А куда конкретно? Между ведущим и ведомыми? В таком случае ты должен понимать что ведущий начинает обмен с ведомым с посылки адреса, в ответ на который ведомый выдает ACK/NACK. И ты же написал что принимать будешь через TWI. Принимать с какой стороны? От ведущего? Но какой адрес ты назначишь TWI? Или будешь отвечать ACK по всем адресам? А если ведущий захочет проверить наличие отсутствия ведомого? Если принимать будешь от ведомого, то тоже будет не лучше. И так далее, при таком подходе будет много подобных проблем.
>А если ведущий захочет проверить наличие отсутствия ведомого?
Или ведомый будет не готов и ответит NACK.
У меня есть несколько вероятных адресов, с анализатора. Да и в конце концов, адресное пространство всего на 127 адресов.
Я пока сам не вполне понимаю подводных камней сего действия (пока не начну кодить/эксперементировать).
>>45933
Ага, хитрый ты если правильно понял о чем ты. Дампов рома нет, микроконтроллер "слейва" - с прошивкой на встроенном флеше, жтага у него нет, программируется только собственным программатором.
Есть предположение, что он попеременно слейв и мастер, но надеюсь эт не так.
>при этом тебе надо реального slave отключить
Да я ж в курсе, я же говорю что буду ставить вразрыв перед эмулируемым устройством.
>Пердуину стоит брать потолще
Собираю на чем есть, а есть уно/нано.
Ещё вроде где-то есть Blue Pill, но если ардуина аппаратно в мою задачу может, то на ней реализовать было бы проще.
>445 000 бод
Тут ты прав, даже ком-монитор из IDE ардуины, говорит максимум 250к бод. Что, конечно не в 4 раза меньше, а в 2, но всё равно создаст неудобства.
>Логический анализатор и ручка - твои лучшие друзья. Долго, нудно, но как без этих данных собрался эмулятор писать?
Да ясно дело что без них не выйдет, я про наличие данных с анализатора не забываю.
>Говнокод на компе поймет 9 бит?
Я таки не пойму, зачем мне целиком передавать 9 бит, я всё равно ведь от состояний ардуины плясать (она же знает что произошло, что хотел от неё мастер и что она ответила/ей ответили).
Но чувствую мне придётся писать софт под это, так что там я учту всё что надо.
В целом ты наверно прав, стоит начать с эмуляции мастера для слейва, там уже и поэксперементировать можно будет, но для этого, слейва надо завести, а у меня этого пока не вышло.
640x640, 0:46
Петросянишь? Чем дампы снимаешь? Что за логический анализатор?
Про дампы ROMа не было не слова, разговор про дампы трафика с логического анализатора. Покажешь?
А теперь втопчу в дерьмо:
> ставить вразрыв перед
Отлично, можешь сделать физический разрыв проводов SCL и SDA, рекомендую со стороны отрубленного слейва повесить на них по подтягивающему резистору килоом на 10 и больше. Поэтому берешь из дампа несколько посылок в сторону слейва и шлешь их с пердуины под анализатором. Еще раз - НЕСКОЛЬКО разных посылок, снова пропустил слово - НЕСКОЛЬКО разных посылок, в оригинале все какие есть в дампе и смотришь будет ли какая-то обратная активность от него после отправки посылки. Нет? Смотрел/ждал не пару секунд а несколько минут или какой там интервал в дампе между посылками(и взяв с запасам раза в 1.5-2 больше)? Точно ничего нет? Поздравляю, у тебя походу тупой слейв.
А это значит что второй порт IIC тебе не нужен, и добро пожаловать в увлекательный мир эротических фантазий при попытке реализовать софтовый юарт на те же 250килобод для управления или каждый ебаный раз загружать паршивку скетч? с измененными данными и смотреть как будет охуевать мастер когда среди бела дня слейв пропадает в середине обмена. Подключившись параллельно к шине можно слушать что летит к слейву даже НЕ отключая его (NACK наше все).
Можешь конечно попробовать настроить юарт слать только захваченные данные, а прием на изменение (например байт адрес и байт значение и например +++ как в АТ модемах для перехода в режим управления (точнее сброса твоего конченного автомата правки памяти) на случай если налажал в команде правки памяти).
В таком ракурсе у тебя 2(3) задачки для школьников:
0) Сделать мастера для теста слейва по дампам.
1) Сделать настойку первой пердуины слейвом с конченным автоматом, выдающим дерьмо из дампа в ОЗУ и принимающей команды на правку ОЗУ(те выдаваемого говно). Ты же уже выучил уроки^w^w^w^w^w дампы или хотя бы как они меняются? Соснешь если в посылке больше нескольких калобайт передается (лень искать сколько ОЗУ в какой пердуине).
2 ) Сделать настойку второй пердуины слейвом, который всегда шлет NACK и принятое говно в юарт - вот тебе тупая сниффалка, которую на постоянку повесил на другой порт и забыл про нее, причем ее можно и гвоздями прибить к шине - она на нее никак не будет влиять. Если повезет - может все дерьмище в подобие кольцевого буфера скинешь и будешь неспешло сливать в паузах пока твой слейв не активен тов майору.
Для продвинутых - объединить это все вместе. Have a nice holiday! Завтра в школу, а ты еще уроки не сделал.
> Blue Pill
На STM32F1? Ой не, спасибо... В режиме мастера там точно есть аппаратная бага в виде залипающего Busy в режиме мастера, слейва не гонял, скорее всего тоже будет залипать(см errata). Добро пожаловать в софтовую реализацию IIC..
640x640, 0:46
Петросянишь? Чем дампы снимаешь? Что за логический анализатор?
Про дампы ROMа не было не слова, разговор про дампы трафика с логического анализатора. Покажешь?
А теперь втопчу в дерьмо:
> ставить вразрыв перед
Отлично, можешь сделать физический разрыв проводов SCL и SDA, рекомендую со стороны отрубленного слейва повесить на них по подтягивающему резистору килоом на 10 и больше. Поэтому берешь из дампа несколько посылок в сторону слейва и шлешь их с пердуины под анализатором. Еще раз - НЕСКОЛЬКО разных посылок, снова пропустил слово - НЕСКОЛЬКО разных посылок, в оригинале все какие есть в дампе и смотришь будет ли какая-то обратная активность от него после отправки посылки. Нет? Смотрел/ждал не пару секунд а несколько минут или какой там интервал в дампе между посылками(и взяв с запасам раза в 1.5-2 больше)? Точно ничего нет? Поздравляю, у тебя походу тупой слейв.
А это значит что второй порт IIC тебе не нужен, и добро пожаловать в увлекательный мир эротических фантазий при попытке реализовать софтовый юарт на те же 250килобод для управления или каждый ебаный раз загружать паршивку скетч? с измененными данными и смотреть как будет охуевать мастер когда среди бела дня слейв пропадает в середине обмена. Подключившись параллельно к шине можно слушать что летит к слейву даже НЕ отключая его (NACK наше все).
Можешь конечно попробовать настроить юарт слать только захваченные данные, а прием на изменение (например байт адрес и байт значение и например +++ как в АТ модемах для перехода в режим управления (точнее сброса твоего конченного автомата правки памяти) на случай если налажал в команде правки памяти).
В таком ракурсе у тебя 2(3) задачки для школьников:
0) Сделать мастера для теста слейва по дампам.
1) Сделать настойку первой пердуины слейвом с конченным автоматом, выдающим дерьмо из дампа в ОЗУ и принимающей команды на правку ОЗУ(те выдаваемого говно). Ты же уже выучил уроки^w^w^w^w^w дампы или хотя бы как они меняются? Соснешь если в посылке больше нескольких калобайт передается (лень искать сколько ОЗУ в какой пердуине).
2 ) Сделать настойку второй пердуины слейвом, который всегда шлет NACK и принятое говно в юарт - вот тебе тупая сниффалка, которую на постоянку повесил на другой порт и забыл про нее, причем ее можно и гвоздями прибить к шине - она на нее никак не будет влиять. Если повезет - может все дерьмище в подобие кольцевого буфера скинешь и будешь неспешло сливать в паузах пока твой слейв не активен тов майору.
Для продвинутых - объединить это все вместе. Have a nice holiday! Завтра в школу, а ты еще уроки не сделал.
> Blue Pill
На STM32F1? Ой не, спасибо... В режиме мастера там точно есть аппаратная бага в виде залипающего Busy в режиме мастера, слейва не гонял, скорее всего тоже будет залипать(см errata). Добро пожаловать в софтовую реализацию IIC..
>Можешь конечно попробовать настроить юарт слать только захваченные данные, а прием на изменение
Так и хочу, если правильно понял тебя.
>лень искать сколько ОЗУ в какой пердуине
Вроде 2кб в Uno/Nano, но у меня все передачи - передачи комманд, судя по всему, так что там размеры посылок сильно меньше.
>Если повезет - может все дерьмище в подобие кольцевого буфера скинешь и будешь неспешло сливать в паузах пока твой слейв не активен
Тоже думал об этом
>Сделать настойку второй пердуины слейвом, который всегда шлет NACK и принятое говно в юарт
Не совсем тебя понял тут. Если я буду своему мастеру отвечать Нак, он быстро выпадет в ошибку из-за того что необходимое устройство не отзывается.
>берешь из дампа несколько посылок в сторону слейва и шлешь их с пердуины под анализатором.
У меня сейчас с ним вообще проблема не в том, что он "странно реагирует" на посылки по i2c, а в том что он вообще не реагирует на i2c - подаю всё, повторяя полностью диаграмму анализатора Кроме начального куска перед i2c, до него ещё не добрался, после чего пытаясь пройтись i2c сканером. В результате никаких активных устройств не вижу.
На самом деле, надо проверить, на какой частоте это всё общается в оригинале, может быть далеко меньше максимальной
>Чем дампы снимаешь? Что за логический анализатор?
Китайский клон Logic-Pro 8-канальный.
>Покажешь?
Неа, нельзя
Понятно, не читал описание работы шины IIC, как она физически выглядит и устроена и как на логическом уровне работает.
Не читай, не передергивай и не вырывай фразы из контекста - весь смысл теряется. Основные идеи есть и более-менее поняты, дальше ебитесь как хотите.
Посоветовал бы пердуину в помойку и сразу на чистом Си в аврстудии программировать - может быть понадобится прямое управление когда будет нехватать скорости. Возможно не в тему, но все же -> https://habr.com/post/254163/
Сам начинал сразу с ассемблера и писал конченные автоматы на ICALL, возможно придется заняться байтоебством, тк опять же забив на формальности (может ошибся где в расчетах?) - для кварца в 16МГц получаем 16 000 000 / 400 000 = 40 тактов на один "тик" шины или же 40 х 9 = 360 тактов на то чтобы просраться и решить что делать. Один только заход и выход в прерывание - максимум 3 такта на окончание текущей инструкции, 2 такта (вроде бы) переход на таблицу прерываний, 2 такта прыжок на начало обработчика прерывания, если весь контекст сохранять и восстанавливать в стеке - это около (32+1)х2 + (32+1)х2 = 132 такта, 5 тактов выход из прерывания. Итого условно 144 такта на служебные нужды и остается чуть больше 200 тактов на логику.
Раскуривай и очень внимательно
http://easyelectronics.ru/interface-bus-iic-i2c.html
https://www.youtube.com/watch?v=_4KD29qnhNM
Хватит парить в облаках, сворачивай свои крылья и ложись спать - завтра в школу.
Да я не пойму, что ты от меня хочешь услышать, чтобы сделать вывод о том что я что-то читал?
Я тебя не понимаю. Лекции этого преподавателя я смотрел, и описание работы (старта, стопа, условий работы, механизмы работы с епромом и другими подобными устройствами), в том числе эту конкретную статью. Что тебе ещё надо?
Я бы лучше почитал описание того, какая команда сколько тактов занимает (не в AVR'е, а в Arduino IDE).
> какая команда сколько тактов занимает
Длительность команд искать в конце даташита (раздел Instruction Set Summary, последняя колонка (#Clocks)). Не забываем что у AVR есть двухстадийный конвейер и может требоваться дополнительный такт в командах перехода по условию, поэтому их длительность каждый раз разная, от 1 до 3 тактов.
> (не в AVR'е, а в Arduino IDE)
Если же собрался смотреть длительность участков кода - основательно так ебешь настойки говносреды пердуино так, что бы она выдавала листинг говнокода где увидишь пердуинокод и его ассемблерные команды, или грузишь православную IDE AVR Studio и через ее дизассемблер сам глазками и руками смотришь где какой участок кода или сразу пишешь на Си и по командам в листинге считаешь.
Для примера маленький обработчик прерывания - тупо каждый раз менять значение одного бита - всего 1 строчка си кода "PORTD = PORTD ^ 0b00010000;" (дописал число тактов перед адресом команды, в листинге нет указаний сколько тактов занимает каждая команда)
000000b6 <__vector_9>:
ISR(TIMER2_OVF_vect)
{
2 b6: 1f 92 push r1
2 b8: 0f 92 push r0
1 ba: 0f b6 in r0, 0x3f ; 63
2 bc: 0f 92 push r0
1 be: 11 24 eor r1, r1
2 c0: 8f 93 push r24
2 c2: 9f 93 push r25
PORTD = PORTD ^ 0b00010000;
1 c4: 8b b1 in r24, 0x0b ; 11
1 c6: 90 e1 ldi r25, 0x10 ; 16
1 c8: 89 27 eor r24, r25
1 ca: 8b b9 out 0x0b, r24 ; 11
};
2 cc: 9f 91 pop r25
2 ce: 8f 91 pop r24
2 d0: 0f 90 pop r0
1 d2: 0f be out 0x3f, r0 ; 63
2 d4: 0f 90 pop r0
2 d6: 1f 90 pop r1
5 d8: 18 95 reti
000000da <main>:
In [1]: 2+2+1+2+1+2+2+1+1+1+1+2+2+2+1+2+2+5
Out[1]: 32 - 32 такта сам обработчик + еще сверху максимум 3 такта на окончание текущей инструкции, 5+3 тактов переход на таблицу векторов прерываний, 3 такта переход на первую команду обработчика прерывания (это для "толстых" атмег, у версий попроще на пару тактов меньше будет)
In [2]: 32+3+5+3+3
Out[2]: 46 - это примерное число команд. Для кварца в 16 МГц это 46.0 / 16000000.0 = 0.000'002'875 те около 3 микросекунд, что дает в теории максимальную частоту около 174 килогерц.
In [7]: 1/0.000002875/2
Out[7]: 173913.04347826086
Может и налажал где-то в расчетах, получено примерное число тактов и посчитано время выполнения участка кода.
> какая команда сколько тактов занимает
Длительность команд искать в конце даташита (раздел Instruction Set Summary, последняя колонка (#Clocks)). Не забываем что у AVR есть двухстадийный конвейер и может требоваться дополнительный такт в командах перехода по условию, поэтому их длительность каждый раз разная, от 1 до 3 тактов.
> (не в AVR'е, а в Arduino IDE)
Если же собрался смотреть длительность участков кода - основательно так ебешь настойки говносреды пердуино так, что бы она выдавала листинг говнокода где увидишь пердуинокод и его ассемблерные команды, или грузишь православную IDE AVR Studio и через ее дизассемблер сам глазками и руками смотришь где какой участок кода или сразу пишешь на Си и по командам в листинге считаешь.
Для примера маленький обработчик прерывания - тупо каждый раз менять значение одного бита - всего 1 строчка си кода "PORTD = PORTD ^ 0b00010000;" (дописал число тактов перед адресом команды, в листинге нет указаний сколько тактов занимает каждая команда)
000000b6 <__vector_9>:
ISR(TIMER2_OVF_vect)
{
2 b6: 1f 92 push r1
2 b8: 0f 92 push r0
1 ba: 0f b6 in r0, 0x3f ; 63
2 bc: 0f 92 push r0
1 be: 11 24 eor r1, r1
2 c0: 8f 93 push r24
2 c2: 9f 93 push r25
PORTD = PORTD ^ 0b00010000;
1 c4: 8b b1 in r24, 0x0b ; 11
1 c6: 90 e1 ldi r25, 0x10 ; 16
1 c8: 89 27 eor r24, r25
1 ca: 8b b9 out 0x0b, r24 ; 11
};
2 cc: 9f 91 pop r25
2 ce: 8f 91 pop r24
2 d0: 0f 90 pop r0
1 d2: 0f be out 0x3f, r0 ; 63
2 d4: 0f 90 pop r0
2 d6: 1f 90 pop r1
5 d8: 18 95 reti
000000da <main>:
In [1]: 2+2+1+2+1+2+2+1+1+1+1+2+2+2+1+2+2+5
Out[1]: 32 - 32 такта сам обработчик + еще сверху максимум 3 такта на окончание текущей инструкции, 5+3 тактов переход на таблицу векторов прерываний, 3 такта переход на первую команду обработчика прерывания (это для "толстых" атмег, у версий попроще на пару тактов меньше будет)
In [2]: 32+3+5+3+3
Out[2]: 46 - это примерное число команд. Для кварца в 16 МГц это 46.0 / 16000000.0 = 0.000'002'875 те около 3 микросекунд, что дает в теории максимальную частоту около 174 килогерц.
In [7]: 1/0.000002875/2
Out[7]: 173913.04347826086
Может и налажал где-то в расчетах, получено примерное число тактов и посчитано время выполнения участка кода.
В Си и С++ нет команд.
Заранее можно только приблизительно оценить сколько будут выполняться библиотечные функции. Приблизительно тут потому, что у gcc есть разные версии и опции, с которыми получается разный результат.
>>46168
>основательно так ебешь настойки говносреды пердуино так, что бы она выдавала листинг говнокода где увидишь пердуинокод и его ассемблерные команды
gcc -S -fverbose-asm
Купил такую плату: Robotdyn Uno R3, atmega328p.
Хочу сделать на ней вольтметр 0-100 Вольт, на трехразрядном семисегментном индикаторе, можно ли организовать динамическую индикацию без всяких сдвиговых резисторов?
Перед тем как вам написать я гуглил, есть готовый код для atmega8 но он как я понял под другой компилятор и в IDE не подходит.
Есть какая нибудь библиотека под семисегментные индикаторы?
То есть, вот снял я допустим с АЦП 400 значений напряжения с входного делителя напряжения, просуммировал их, нашел среднее - как его вывести на индикаторы то? Не понимаю как ардуино "понимает" это значение, лол. Есть допустим 15.0 вольт, но что с ними дальше делать - не пойму :c
>динамическую индикацию без всяких сдвиговых
Без сдвиговых регистров разумеется можно.
>резисторов
Не знаю что такое сдвиговые резисторы, но без резисторов светодиоды не стоит подключать к источнику напряжения. Напрямую светодиоды можно подключать только к источнику тока (на который они рассчитаны).
>Есть какая нибудь библиотека под семисегментные индикаторы?
Там кода пару строк, очнись, какая библиотека?
>как его вывести на индикаторы то?
Ну как, выводишь один разряд, потом другой и т.д. по кругу. Для начала эти самые разряды получаешь делением на 10 к примеру. Но есть и более быстродействующие способы, чем деление на 10.
>Не понимаю как ардуино "понимает" это значение, лол.
Не пердуина, а твоя программа в ней. Пердуина - это лишь простенький процессор припаянный на плату. Процессор умеет выполнять лишь простые команды, например сложить, сравнить, перейти по условию. Про твои индикаторы процессор сам по себе ничего не знает.
>Есть допустим 15.0 вольт
Числа с плавающей запятой не стоит использовать в программах для микроконтроллеров.
>stm32f429zit
Не очень тонко. Минимум STM32F7 надо.
Точно переварит плавающую точку. Может стоит использовать 8087?
Школоло, поделись инфой - как отрастил крылья для полетов?
Я читал, что с плавающей запятой не стоит, что коэффициенты с запятой лучше натуральной дробью представлять. Запятая будет гореть всегда.
https://radioparty.ru/prog-avr/program-c/288-lesson-adc-avr-voltmeter
Вот это мне и нужно, но тупо копипаст же не получится сделать.
Не пойму как он выводит в индикаторы?
Там где switch {} зачем он делит на дроби каждая из которых равна десяти?
Раздели задачу на части и решай по отдельности.
1) Научись выводить цифру от 0 до 9 на один единственный разряд.
2) Сделай переключение разрядов в прерывании.
3) Получи десятичные разряды из числа которое хочешь отобразить.
Учитывай что индикакторы могут быть как с общим анодом, так и с общим катодом. Еще учитывай максимальный ток порта в атмеге, ты можешь перегрузить микроконтроллер своими светодиодами.
>зачем он делит
Не делит, а берет остаток от деления. А в прерывании делит потому что пердуинщик.
Это работает следующим образом. Например, хотим вывести число 123 из регистра атмеги на индикаторы.
1. Делим 123 на 100. Результат 1 и остаток от деления 23. Соответственно старший десятичный разряд числа это 1.
2. Делим остаток от п.1, т.е. 23 на 10. Результат 2, остаток от деления 3. Соответственно в разряде десяток нужно отображать 2.
3. Остаток от деления в п.2 это 3, соответственно самый младший десятичный разряд это 3.
Все, путем арифметических упражнений из начальной школы, мы получили цифры, которые нужно выводить на отдельные индикаторы.
Спасибо за развернутый ответ!
После обеда попробую пройтись по пунктам.
Только ведь он делит 123 не на 100, а на 10? 10000/1000
>делит 123 не на 100, а на 10? 10000/1000
Это не так. У этих операторов одинаковый приоритет. Сначала берется остаток от деления, который потом делится.
Код по твоей ссылке не слишком качественный, даже в качестве примера такое брать не следует. Лучше сам пиши без таких примеров.
Это был стеб >>46264 . Не получилось тонко тролльнуть. Бывает.
Могу только добавить что иногда может будет лучше вариант не с делением, а вычитанием.
Те 123 - 100 = 23. 1 вычитание, значит 1 сотня.
23 -10 = 13 -10 =3 - 2 вычитания, значит 2 десятка.
Последняя цифра из последнего шага берется как есть.
Как умножить пусть 42 на 0.2354525 (отфонарная цифра)?
Если битов не жалко(возьмем 16), то 0.2354525 х 65536 = 15431.
Ответ будет 42 х 15431 = 648102(dec) = 9E3A6(hex) и отбросив последние 16 бит получим ответ - 9 (вместо реального 9.889).
Если нужен один знак после запятой - можно попробовать на 10 умножить исходную величину 420 х 15431 = 6481020(dec) = 62E47C(hex) -> 0x62 = 98 и зная что последняя цифра это число после точки - получаем 9.8 .
Я пока просто пытаюсь понять и простить так сказать на этом примере примененные там операторы.
Допустим измеряю я 23.5 вольта, на делителе напряжения 2.136 вольта. В АЦП значение 854.4, умножая на коэффициент 2,75 в итоге в display записано 2349.6
2349.6 % 10000 / 1000 = 2,4396
2349.6 % 1000 / 100 = 3,496
2349.6 % 100 / 10. = 4,96
Верно?
А как быть с погрешностью в 0.1 вольта? Или я что то недопонял?
Да, спасибо что поправил про функции вместо комманд.
В основе разных +- версияй Ардуино IDE лежат разные версии gcc?
GCC для AVR наверно не так уж часто обновляется?
Я не школоло, а великовозрастный долбоёб, как бы обиден этот факт для меня ни был в данной ситуации На самом деле мне похуй на это, и уж тем более на местную шизу.
Если кто-то ушёл из вашего тредика, это значит что он не нашёл здесь того, что надо. Я ожидал получить ответы по-полочкам, как для 12-летнего школьника. Получил море обсёра, шизы и сумбура, с редкими островками из ответов адекватных анонов.
Если по делу, то вероятно придётся раздобыть что-то STM32F4 - образное, возможно решит мои задачи. Сейчас я ардуиной даже инициализацию одного из каналов повторить не могу не дергается нога с нужной скоростью. А может мои наполеоновские планы не сбудутся и придётся ебать-распарсивать эксель от логгера.
>Получил море обсёра, шизы и сумбура, с редкими островками из ответов адекватных анонов.
На дурацкий вопрос можно дать только дурацкий ответ. Просто невозможно менять данные в I2C на ходу как ты хотел, нет там такой возможности. Такое может получиться только в частных случаях.
>не дергается нога с нужной скоростью.
Потому что нужно писать в регистр порта напрямую. И смотреть результирующий ассемблерный код.
Поразвлекай меня - WTF? Синус генерится ШИМом по таблице из 256 точек и вижу отдельные точки, по которым оно строится. Как так то?
Выкидываешь пердуиноIDE и пишешь сразу на чистом Си - там все просто будет, регистров управления всего ничего. Для любителей особого хардкора - добро пожаловать в Ад, те в соседний ПЛИСо тред. Может там подскажут как на Verilog или VHDL сделать тупого I2C Slave.
https://www.egr.msu.edu/classes/ece480/capstone/fall15/group02/lectures.html
https://www.egr.msu.edu/classes/ece480/capstone/fall15/group02/Arduino Application Notes.pdf
Только у разных плат на TM1638 есть свои особенности http://we.easyelectronics.ru/part/osobennosti-adresacii-kontrollera-tm1638-dlya-indikatorov-s-oa.html
Посоветуйте набор с экраном пять дюймов защитами входов выходов и не дороже 200$.
>Просто невозможно менять данные в I2C на ходу как ты хотел, нет там такой возможности. Такое может получиться только в частных случаях.
Не собираюсь я напрямую менять. Каким вообще образом Я перехватывать собирался, и при необходимости некоторые команды подменять слейву. Самому представляться мастером на шине где оригинально сидит слейв, писать подключенному ко второму I2C входу слейву то, что мне написал мастер на первом.
>Потому что нужно писать в регистр порта напрямую.
Скинь человекопонятный пример в ардуино-иде, если можешь.
>>46563
Там не синус, там пикрил.
>Выкидываешь пердуиноIDE и пишешь сразу на чистом Си
Не вопрос, если анон порекоммендует удобную IDE.
Период дёрганья ногой - 3 микросекунды и кратные до 15. На анализаторе вижу примерно ничего.
> Там не синус, там пикрил.
Синус моя железка выдает и кривоватый. Может стоит частоту повысить. Надо пробовать.
> Не вопрос, если анон порекоммендует удобную IDE.
Oh shi~. AVR studio же. Некроверсия, просто, тупо, быстро работает с полным отсутствием всяких свистелок и перделок, которые на хуй не вперлись.
Скрин настоящей посылки( с включенным декодером iic) или адрес железки и длина посылки. Еще бздани что длина(длины от до) посылки тайна - оборжаться можно. То что на картинке - какая-то поеботина, ни разу не похожая на IIC.
Что-то мне кажется что соснешь с проглотом. Как минимум.
Короткая запись обмена на 400 КГц(опрос с stm32f3discovery), uart на скорости около 500 000 бод (да, полмегабита) с меги328P на кварце 20 МГц.
По бокам мега-слейв-эмулятор, который шлет в юарт то что ему предназначено (начало и конец записи), по центру - просто чтение микросхемы памяти 24 серии. Запись ниже - начало общения, где можно увидеть как в притирку идут данные и как слейв немного подтормаживает (где-то 2 такта на 400 КГц). Говно в юарт пихается ровно в тот момент, когда и в TWI.
На меге этот черновик занял всего ничего:
Device: atmega328p
Program: 798 bytes (2.4% Full)
(.text + .data + .bootloader)
Data: 258 bytes (12.6% Full)
(.data + .bss + .noinit)
То что на картинке - ты пикрил.
Я тебе скинул не I2C, не что-то относящееся к твоему синусу, а сигнал, который по какой-то причине ардуина затыкается повторить.
>Еще бздани что длина(длины от до) посылки тайна - оборжаться можно.
Да нет конечно, у меня I2C на первом и втором канале (SCL, SDA), и как видишь, там в заскриненный момент пусто (в высоком уровне). Просто проблема пока не в I2C, а в повторении сигнала, который я повторять охуею и на более мощном железе, а на ведруине - тем более.
>>46723
>Что-то мне кажется что соснешь с проглотом. Как минимум.
А я и не против
Я выпросил stm32f4discovery, но не уверен, справится ли она со ВСЕМ, что я хочу на неё возложить.
Продублировать, либо просто воспроизвести код передающийся по I2C- да как нехуй. USB есть, что ещё надо? Только охуею с libusb разбираться. А вот регистрировать что происходит с пинами - ну тут я хуй знает, смогу ли я снимать время до микросекунд, или сосну - надо попробовать.
"Без внятного ТЗ результат ХЗ" "Без внятного ТЗ результат ХЗ" "Без внятного ТЗ результат ХЗ"
> у меня I2C на первом и втором канале (SCL, SDA), и как видишь
Экстрасенсы в отпуске или в шары долблюсь. >>46657 Ни намека ни подписи - что там.
> а в повторении сигнала
Скорее всего там банальный uart и не вижу смысла изъебываться с ним. Как вариант можно попробовать OneShotMode режим таймеров в STM32, каждый раз их перенастаивая. Если он более-менее симметричный и с равными промежутками - есть перенастаиваемый SPI: 4-bit to 16-bit data size selection (RM0316 от STM32F3).
> Я выпросил stm32f4discovery
Какой молодец. Дали пирожок? На STM32F407VGT6 или STM32F429ZIT6 (пикрил, с TFT экраном)? Почему не подсел на отходы промышленности х86 - 86Duino / Intel Galileo / Intel Edison?
В чём и чем все это собрался программировать и отЛАЖивать?
> USB есть, что ещё надо? Только охуею с libusb разбираться.
Какая мерзость. Проблевался. Сожги и забудь эти высеры для домохозяек или поебени в стиле - "отвалилось и по хуй, передернут шнурок". Atmega32U4 в помощь. Переходи на православный Ethernet (это в основном stm32Fxx7)- из любой задницы Мира можешь получить доступ и забить охуенный болт на драйвера под разные ОС или совместимость с ними. Даже если просто срать тем же UDP - можно на приемной стороне смотреть временнЫе метки приема фреймов. Точность правда +- километр, да и врядли над каждым байтом будешь трястись, сразу пачку байтов слать. Если впасть в маразм - недавно принят стандарт 1588v2 https://habr.com/post/163253/ . Может найдешь несколько байт и будешь передавать свои метки времени вместе с данными. Даже если отсылать один байт - нужно готовить фрейм из 64 байт, из которых байт 30-40 - служебные и их число не меняется. За раз одним куском можно передать около 1460 байт. Если лень разбираться с lwip и rtos - есть wiznet w5500 (SPI) или w5300(параллельная шина), которые в принципе можно подключить к любому говну.
Так глядишь будешь между 2 стульев скакать, перейдя на ПЛИС - Altera vs Xilinx.
PS - Если вообще ебануться на отличненько - может посмотришь в сторону FTDI (например FT2232H / FT4232H) https://habr.com/post/207214/ ?
"Без внятного ТЗ результат ХЗ" "Без внятного ТЗ результат ХЗ" "Без внятного ТЗ результат ХЗ"
"Без внятного ТЗ результат ХЗ" "Без внятного ТЗ результат ХЗ" "Без внятного ТЗ результат ХЗ"
> у меня I2C на первом и втором канале (SCL, SDA), и как видишь
Экстрасенсы в отпуске или в шары долблюсь. >>46657 Ни намека ни подписи - что там.
> а в повторении сигнала
Скорее всего там банальный uart и не вижу смысла изъебываться с ним. Как вариант можно попробовать OneShotMode режим таймеров в STM32, каждый раз их перенастаивая. Если он более-менее симметричный и с равными промежутками - есть перенастаиваемый SPI: 4-bit to 16-bit data size selection (RM0316 от STM32F3).
> Я выпросил stm32f4discovery
Какой молодец. Дали пирожок? На STM32F407VGT6 или STM32F429ZIT6 (пикрил, с TFT экраном)? Почему не подсел на отходы промышленности х86 - 86Duino / Intel Galileo / Intel Edison?
В чём и чем все это собрался программировать и отЛАЖивать?
> USB есть, что ещё надо? Только охуею с libusb разбираться.
Какая мерзость. Проблевался. Сожги и забудь эти высеры для домохозяек или поебени в стиле - "отвалилось и по хуй, передернут шнурок". Atmega32U4 в помощь. Переходи на православный Ethernet (это в основном stm32Fxx7)- из любой задницы Мира можешь получить доступ и забить охуенный болт на драйвера под разные ОС или совместимость с ними. Даже если просто срать тем же UDP - можно на приемной стороне смотреть временнЫе метки приема фреймов. Точность правда +- километр, да и врядли над каждым байтом будешь трястись, сразу пачку байтов слать. Если впасть в маразм - недавно принят стандарт 1588v2 https://habr.com/post/163253/ . Может найдешь несколько байт и будешь передавать свои метки времени вместе с данными. Даже если отсылать один байт - нужно готовить фрейм из 64 байт, из которых байт 30-40 - служебные и их число не меняется. За раз одним куском можно передать около 1460 байт. Если лень разбираться с lwip и rtos - есть wiznet w5500 (SPI) или w5300(параллельная шина), которые в принципе можно подключить к любому говну.
Так глядишь будешь между 2 стульев скакать, перейдя на ПЛИС - Altera vs Xilinx.
PS - Если вообще ебануться на отличненько - может посмотришь в сторону FTDI (например FT2232H / FT4232H) https://habr.com/post/207214/ ?
"Без внятного ТЗ результат ХЗ" "Без внятного ТЗ результат ХЗ" "Без внятного ТЗ результат ХЗ"
Могу позволить себе немного игрушек на Новый Год и обновиться с FT2232D. Они работают с частными лицами, когда-то был минимальный заказ 15$. Которые как оказалось на хуй не вперлись, но пару раз надо было сдуть пыль и проверить особо бредовые теории. ПЛИС заплесневела. Бывает.
Как минимум у них одинаковые распиновки. Каналов, как и выводов много не бывает, да и не жалко похоронить в случае чего (из H версий часто делают всякие JTAG программаторы или отладчики). Стоят не дорого, почему бы не взять разных на пробу? У них есть тонкое различие в реализации внешней шины, но детально не копал, не знаю. Для меня главное UART-ов жопой жуй, которые очень легко превращаются в RS485 с автоматическим переключением RX/TX. Libusb и py-ftdi так и не осилил на винде. Embedded -> broadway to nowhere. https://www.youtube.com/watch?v=J3wU_L8hpPg
Ничоси игрушки! Dear Santa, ...
Спросил к тому, что в кои-то веки захотел себе самопальный реверсировщик & программатор-отладчик на все случаи жизни, а потому потратился 300р. LOL и заказал себе 2232 с Али (предположил, что ты тоже мог там купить). Если б/у, то даже лучше, ибо деньги вернут, а микра останется. Спасибо за ответ :3 Сначала подумал может чего фееричного на четырёх каналах придумали.
Закидай говном - что сейчас в тренде из дебажно-отладочного на 2232H?
"ft2232h openocd", "ft2232h byteblaster", "ft2232h Digilent Jtag HS2"?
Может есть что на тему говноЮСБ-CAN? Видел статью на хабре как делали на stm32f100 и еще где-то на pic18f14k50+mcp2515. Еще нашел двухканальный CAN-Hacker 3.0, но прошивки в открытом доступе нет или плохо искал. Из чего собрать вменяемый и не теряющий фреймы сниффер-спамилку CAN с вменяемым софтом под ПК?
ХЗ, если честно, я знаю гораздо меньше твоего. Буду юзать в зависимости от того, что потребуется в данный момент, но без OpenOCD/UrJTAG не обойдусь. Главное - не полениться и сделать железную часть пожирнее. Мне нужна будет опторазвязка по первому каналу (а в моём случае это HCPL на скорость какую найду побольше), конвертер уровней, EEPROM, и доп. слот на второй канал для прочих модулей расширения, типа как цопеелда в Bus Blaster...
CAN не интересовался пока ещё, но прогуглив весь сегодняшние вечер+ночь просто охуел от зоопарка удивлён изобилием возможностей, начиная с ардуины типа опенсорсного CANBus-Triple через Wireshark + своя утилита, и тех же FTDI+MCP, заканчивая HackRF в GNU Radio, с логическими анализаторами Saleae в середине.
>CAN-Hacker 3.0
Тоже не нашёл. Тот трек с ютуба сделал мне вечер, спасибо :3
В гугл. "Переключение контекста прерывания". Можешь попробовать напИсать быдлокод на асме, не сохраняя SREG или делая разное число push/pop. Обеспечит огромное количество незабываемых часов отладки под высеры какое AVR говно, а на самом деле косяк в прокладке между стулом и клавиатурой.
>>46901
Видимо не дочитал > сниффер-спамилку
> спамилку
Оно должно уметь срать фреймиками в CAN сеть, а не просто слушать.
Если умеешь пользоваться гуглом - на казусе можно выловить двуханальные HCPL2630 по 10. Собирал на них пару модулей развязки под RS485.
Тебе нужен DMA (direct memory access) чувак. Не знаю как в ардуине, но в STM32 он есть. Суть в том что ты поручаешь делезу пушить поток данных из одного место в другое, хардварно, например по SPI. При этом ты можешь прерываться сколько хочешь.
>Видимо не дочитал
Вот чтоб в виде готового софта с шикарным гуем и функционалом за спасибо - да, такого я не нашёл. Не зря же они CAN-Hacker продают.
Осваиваю азы сей примудрости, но уже умудрился взорвать РГБ-светодиод. Суть токова.
Из 5V запитал общую шину питания на макетной плате, с неё провёл через резистроны на 220 Ом липистричество к контактам светоиода, затем вывел через шину заземления. При подключении к сети вся эта приблуда внезапно взорвалась в области светодиода.
Вопрос - в чём я проебался?
Где пруфы гуро с места событий?
Картинкой нарисуй точное расположение деталей (по точкам) в хлебной доске.
Ты бы ещё 5000х4000 фото сюда вкинул. Хорошо хоть не зашакалил и ладно.
Проверь сам светодиод скорее всего нужен был резистор на 5000мВ / 10мА ~= 470 Ом, а не 5000мВ / 220Ом = 22,7мА. Вот он и сгорел. Опять же, если ты будешь моргать им с большой частотой, для полного разноцвета по всем RGB888 (255, 255, 255), то ток надо на общий элемент прилагать. Если постоянно светить, то нужны три резистора.
Не ври. На 220 Ом все хорошо от 5В.
Не исключаю что 22 Ома поставил - маркировка 220 = 22 х 10^0 = 22 Ома.
> Можешь попробовать напИсать быдлокод на асме, не сохраняя SREG
> косяк в прокладке между стулом и клавиатурой.
Кто тебя заставляет писать говнокод?
>Резистор с четырьмя полосами
Фатальная ошибка - доверять цветовой маркировке. Не знаю как там у всего раздела, но меня просто заебал то брак, то непонятный цвет, то ещё какая хуйня. Без проверки тестером такое не паяю, даже СМД, ибо какой-то процент сразу из упаковки бесконечно сопротивляется.
>ENDER
когда я понял, что под этим подразумевался КОНЦЕВИК, думал, что флюс в труханы протечет.
Делаю сорт оф декоративный светильник на WS2812 и ардуине. Запитывать планирую от одного внешнего источника питания.
Паять отдельный USB геморно и у меня его тупо нет. Потребление ленты в максимуме будет 1440 мА из расчета 60 мА на диод. К самому порту паяться тоже не очень удобно, паяло слишком большое.
Вопрос: если подпаюсь лентой как на пике, выживет ли ардуина?
> Запитывать планирую от одного внешнего источника
> отдельный USB геморно и у меня его тупо нет
Взаимоисключающие параграфы?
Если от USB - соснешь с 1440 мА. По стандарту до 100 мА, считай перегруз в 14 раз. Кукареканья про зарядку говна от порта током под полампера и более будешь рассказывать когда порт выгорит.
> одного внешнего источника
Уже лучше, но не очень. Если прикинуть что стоит LM1117-3.3, то по даташиту у нее рабочий ток 800мА. Снова перегруз раза в два. Возьмешь тяжелую артиллерию в виде LD1084V? Продолжим - пусть LM держит ток в 1.5А, тогда при входном напряжении 5 вольт - (5-3.3)х1.5 = 2.55Вт будет выделяться в виде тепла, на ленте же 3.3х1.5 = 4.95 Вт. Отличный результат. LM жрет и превращает в тепло половину того, что потрЕБЛЯет лента, разогреваясь на 61х2.55=155 градусов, добавив 25 градусов снаружи раскалится до всех 180 градусов. Покойся с Миром, LM1117..
Нет, не взаимоисключающие. Возможно, я херово объяснил, что хочу.
Идея такая: В розетку двухамперный бп на 5 вольт. От него mini-USB в стандартный порт наны. На выходную(!) ногу 5в AMS1117 стабилизатора припаиваю + питания ленты, — куда нибудь на землю, поближе к порту(пока не смотрел куда).
Вся суть вопроса, состоит в том, что не станет ли ардуинке плохо от полутора ампер, пробегающих мимо по дорожкам платы от mini-USB порта до выходной ноги стабилизатора. Не перегреется, не выгорит?
>Не перегреется, не выгорит?
Нет, нет, всё нормально будет. Отпишись только потом, чтобы остальные твоему примеру последовали.
> двухамперный бп на 5 вольт.
> mini-USB в стандартный порт наны
Насколько хуевый кабель? Из кетайского картона с фольгой и стальными жилами? Да еще и из одного угла сырночевальни в другой? Просто прикинь что если копротивление 2 жил будет 0.1 Ома, то в кабеле сразу просрешь 1.44А х 0.1 = 0.144 Вольта, вроде мелочь, но может вылезти боком.
Уверен что нет четырехпроводных омметров, можешь пропустить известный ток и посмотрев разницу на входе и выходе кабеля по закону Ома (поделив разницу напряжений на ток) получить сопротивление провода.
> выходную(!) ногу 5в AMS1117 стабилизатора припаиваю + питания ленты
> выходную(!)
(Отмеченная на рисунке - это ВЫХОД)
Если лента питается от 5 вольт - соснешь. Подав на вход линейного стабилизатора 5 вольт никак не получить 5 вольт на выходе.
Если же лента питается от 3.3 вольт (раз собрался на выход стабилизатора вешать) - см трактат выше.
Если выше облажался и таки собрался припаиваться к крайним контактам стабилизатора (это как раз земля и входное напряжение) - то сказал бы что можешь рискнуть, но бросив еще отдельные сопли до миниюсб (если сгорит miniusb - туда ему и дорога, как и микроюсб).
Если совсем задротить - пусть одноунцевая фольга (18 мкм) и дорожка 0.2мм, то ее сечение 0.2х0.018=0.0036мм2, длина дорожки (чуть больше возьму - 15 штырей 2.54мм) те 2.54х14 = 35.5мм и посчитаем сопротивление (0.0170.0355)/0.0036 = 0.167 Ома и помножив на ток 1.44А получим потерю 0.24 Вольта на участке от разъема до стабилизатора и выделение на ней 1.44х1.440.167= 0.346Ватта тепла (это только в одну сторону, обратка по земляным полигонам тут не считалась). К сожалению как перевести ватты в перегрев незнаю. KiCAD-овский калькулятор говорит что проводник от такого тока нагреется на 140 градусов(обрати внимание - не ДО, а НА и будет раскален под 165 градусов). Не могу не подтвердить ни опровергнуть.
вот поэтому я и сомневаюсь. Похоже придется все таки отдельный порт городить, в обход ардуиновской печатки.
>>47710
Кабель норм, но в процессе эксплуатации не исключена замена на любой подвернувшийся ноунейм. По длинне без выкрутасов, стандартных размеров кабелей для зарядки смартфонов и прочей хреноты.
Про стабилизатор то ли ты меня не понимаешь, то ли я тебя. Лента на 5в. Мне не нужен функционал стабилизатора, все что мне нужно от него это физически большая нога, к которой мне будет проще подпаяться, чем к ноге миниЮСБ. Выходная нога висит в общей цепочке +5 вольт и соединена с +5в миниЮСБ. Соответственно, теоретически, я могу воткнуть 2 ампера в миниЮСБ, НАНА отожрет свои 20 мА или сколько ей там нужно, а лента через дорожки на плате, ногу стабилизатора и припаянный к ней провод отожрет свои 1440 мА. Но это теоретически. Практически видимо получается перегрев дорожки. Я правильно понял?
Алсоу, на схеме ардуины, между юсб и остальной частью цепи +5в стоит предохранитель на 500 мА. У меня китайский клон и я предохранителя нигде не наблюдаю. Может ли быть такое, что его нет? или я просто в глаза ебусь?
Как вариант, я могу сократить количество диодов вполовину, тогда ток будет уже всего 720 мА. Вытянут дорожки?
> Про стабилизатор то ли ты меня не понимаешь, то ли я тебя
> Мне не нужен функционал стабилизатора, все что мне нужно от него это физически большая нога
> нужно от него это физически большая нога
> большая нога
Для особо тупых кусок даташита - это ВЫХОД. Если у тебя стаб на 5 вольт и подаешь 5 вольт на вход - в лучшем случае на ВЫХОДЕ увидишь 4 вольта.
Если кто и читает через жопу
> Если выше облажался и таки собрался припаиваться к крайним контактам стабилизатора (это как раз земля и входное напряжение)
> к крайним контактам стабилизатора (это как раз земля и входное напряжение)
> к крайним контактам стабилизатора
то это твои проблемы. Смотри нижний левый угол пикрила, потом изображение стаба по снизу по центру и вникни где какой вывод. (вывод сверху не подписан, это практически всегда 2-й вывод, те ВЫХОД. См назначение выводов LM1117.)
Совсем заебал своим стабом.. Тупанул и.. Разуй глазки - возле разъема ISP пердуины есть 2 нужных вывода - GND и +5V. По поводу какой ток с них можно снять - перечитывай посты выше. Как минимум самое тонкое место - это переход(пайка) с вывода дерьмоюсб-дорожка на плате, которая по фоткам не сильно то и шире вывода usb и переходные отверстия между слоями.
>>47721
сукааааааааааааааа
У меня стаб на 5 вольт. Выход подключен в цепь 5в. Я не подаю стабу на вход нихуя, потому что вход стаба не подключен к ЮСБ, он нужен для питания через Vin пин.
Выход стаба, который подключен в цепь 5в это вторая нога или/ большая площадка. Прямо сейчас у меня на столе лежит ардуинка, подключенная через юсб к компу. И я легко могу зажечь светодиод с резистором, если прислоню его ко 2ой ноге стаба и к земле. При том, что на входе стаба нет нихуя на самом деле есть, около 4.3в, я хз откуда, но на выходе 4.75, что соответствует питанию через юсб 5.1в минус падение 0.25в
на диоде Шоттки, что стоит по входу
Ты мне лучше скажи, дорожки 720 мА потянут или нет?
В общем, я психанул. Подключил на макетке все говно, подключился к +5V, версия на 720 мА. Все крутится уже минут пять, на ощупь нагрев на ардуинке не заметен, сама лента теплее. Всем спасибо, все свободны, кто хочет, угощайтесь чаем.
У кого есть опыт работы с датчиком mq7? Купил на алишке уже распаянный на плате с обвязкой. Не вполне ясно, для чего там стоит подстроечный резюк- для калибровки, выставления чувствительности или порога цифрового сигнала? Даташит очень мутный, больше всего интересует, что они понимают под preheating. Написано, что этот прогрев нужно делать в течение 48+ часов. Как я понимаю, оно требуется один только раз перед началом использования в принципе, а не перед каждым сеансом измерения (иначе нахрена такой датчик?). Однако в том же даташите они описывают хитрый механизм прогрева- чередование 1.4 вольт и 5 с определенными таймингами. Мне этот пре-хит делать с указанным режимом, или можно тупо дать 5 вольт на двое суток?
спасибо, товарищ, объёмная статья.
но и там не указано никакого режима прожарки датчика. к тому же, автор, похоже, вообще забыл о необходимости циклирования нагрева
Заказал этот набор. Сразу встал вопрос, ясен хуй, что платка не оригинальная, но озадачился я только сейчас. Как с ней робототь? Ну писать софт и так далее. Arduino IDE покатит или нужно какие-то костыли навернуть?
И дополнительный вопрос. Можно ли на всяких ардуинах писать программы на Ассемблере?
Закажи еще программатор avr usbasp - как минимум сможешь прочитать текущую прошивку с бутлоадером и восстановить ее назад после шкодинга в AVR Studio на ассемблере. Хотя не имея отладчика - толку от студии 0. Это в отладчике можно остановить программу, посмотреть состояние периферии и поднастроить ее или даже залить/слить область ОЗУ и продолжить выполнение быдлокода. Пограмматором такого не сделаешь.
Ты мне скажи, если эта хуйня не пизданётся после первого запуска, то будет ли возможно на ней использовать Arduino IDE или нужно аналог искать?
>то будет ли возможно на ней использовать Arduino IDE
Прошьешь взад загрузчик и снова аутируешь с Ардуиной. Если фьюзами не прикончишь контроллер
Имею ввиду из коробки. Приехала мне эта хуета. Я молюсь богу, прихожу домой, врубаю... вроде работает. Захожу в Windows Store, качаю IDE и... Мою платку подхватит или надо ебатрониться?
Блять. Приходит этот набор. Я достаю плату, подключаю его к компу, качаю Arduino IDE. Выбираю тестовый скетч, закидываю на плату... Скетч теоретически заработает?
Переходи сразу на уровень Hardcore(Nightmare). Сам собирай древний и тормозной жтаг под не менее древнюю AVR Studio (4-я версия), забив на кукареканья пердуинщиков. Тут тебе доступен и ассемблер, и avr-gcc (язык Си) и тормозная отладка - реальная отладка с пошаговым выполнением программы. Единственное что только на древних камнях работает - на той же шмеге328 JTAG-а нет, только Debugwire. У эталонной шмеги8 так вообще нет никаких интерфейсов отладки. Если не прожженный нищеброд - найди того же дракона AVR Dragon, который горит от прикосновения к преобразователю и будет тебе Debugwire и сможешь обоссать всех пердуинщиков с их 328 мегой, зайдя в режим пошаговой отладки и бонусом - высоковольтное программирование, те тебе будет все по хуй, можешь шить фьюзы в любых вариантах и высоковольтное программирование вернет к жизни точнее каторге у ньюфагов.
http://easyelectronics.ru/vnutrisxemnaya-otladka-avr-cherez-jtag-ice.html
USBasp не забудь - чем первую мегу для JTAG-а будешь шить? Громовым с компорта? "5 проводков" на LPT?
>Сам собирай древний и тормозной жтаг под не менее древнюю AVR Studio (4-я версия), забив на кукареканья пердуинщиков.
Можно просто взять STM8 или MSP430, которые с нормальными и дешевыми отладчиками и такие же простые как AVR.
>язык Си
Вот только у ардуинщиков С++, который будет явно посложнее Си.
>Тут тебе доступен и ассемблер, и avr-gcc (язык Си)
Разве пердуиновскому загрузчику есть разница что грузить? Ну максимум линкер потребуется немного подкрутить.
C гораздо сложнее. Ибо нигде больше нет такого количества способов ебануть себе в ногу.
> Можно просто взять STM8 или MSP430, которые с нормальными и дешевыми отладчиками и такие же простые как AVR.
Не передергивай. Человек хочет именно AVR.
Может проще взять ARM+FPGA в виде CycloneV и пердолиться еще и с линуксом? Совсем просто же, задача для детского садика, если даже не для подготовительных групп. Как на счет восставшего из Ада 8051 (желтенькая отладка с W7100 - 8051+Ethernet на одном кристалле)?
> Разве пердуиновскому загрузчику есть разница что грузить? Ну максимум линкер потребуется немного подкрутить.
С зашкварными прослойками не работал. Только baremetal, только хардкор.
Да и в последнее время как-то без разницы из чего делать новогоднюю гирлянду.
Каждый день я синтезирую на Verilog счетчик, вместо тактового сигнала подаю сетевые наводки на свою тушу, циклонами создаю вокруг себя поток ветра, обмазаюсь Flex-ом и дрочу на рабочий счетчик на верилоге.
Получается косить под местного шизика?
>косить под местного шизика?
Нет. Даже близко не получается. Сдабривай свои выкрики на борде рандомными вставками тухлых клипов 80х - 90х, угрозами обоссать мочератора и всю его родню. Пости фотки выебанного гуся/индюка, матарошки и йоба-датчика для измерения всего.
>Получается косить под местного шизика?
Вполне. Хватило бы одного только FLEX 10K. Ему место в помойке, из которой ты его похоже отрыл.
Полегче. FLEX10K - это теплые ламповые 5вольт, а не бездушные 3.3вольта и ниже, которые можно без костылей цеплять к любому старому шизоидному говну и с учетом ее древности - довольно быстро синтезируется конфигурация FPGA и ее можно почти бесконечно перешивать вместо буквального сжигания CPLD. Именно поэтому и выкапывал эту ламповую некрофилию, на которую эпизодически фапаю. Найти бы EPF10K10LC84 в PLCC84 - маленькая, простенькая и малоножечная FPGA на замену MAX7128.
Он вроде в UNO R3 итак используется.
stm vs avr
наткнулся недавно на хабровую статью (https://habr.com/post/406839/), где чувак топит за stm и сравнивает её с авркой (пикча оттуда), мол цена/возможности у стм дают пососать с проглотам детищу микрочипа
интересно конкретно ваше мнение - что вы выбираете для своих поделок, чем руководствуетесь? почему в таком случае авр ещё не вылетело с рынка?
Изи
STM:
- 32 бита
- DMA
- такие инструменты как STM32CubeMX / System Workbench for STM32
- JTAG (SWD), пошли нахуй со своим printf
- 72 мгц и более
AVR:
- сосет хуй
- ардуинщики дауны
я это знаю. однако, это не означает, что avr-ки больше не выпускаются. поглощение одного бренда другим не всегда приводит к прекращению производства
>почему
Триллионы устройств спроектированы для работы на них. Недавно ковырял башку умягчителя воды, а там атмега329. Куча гОвеновских контроллеров на авр-ках. Еще большая на PICах
>stm vs avr
LOL. Может хватит жрать колючий кактус?
Для четких пацанчиков есть продвинутые мигалки (обращаем внимание - конец 2001 года, стоит совсем ничего)
"25.12.2001
Доступен для заказа ARM-based Excalibur Development Kit. Этот набор содержит: EPXA10 development board (макетная плата с кристаллом EPXA10), CD Excalibur Solutions Pack (CD с утилитами, примерами проектов, демо-версиями программных продуктов третьих фирм для этой платы), самоучитель, источник питания и набор необходимых кабелей. Макетная плата имеет:
кристалл EPXA10, на котором распологаются:
32 - битное ядро RISC процессора ARM922T;
программируемая логика семейства APEX 20KE (1 млн. вентилей, 327 Кбит встроенной памяти);
256 Kбайт Single-port SRAM;
128 Кбайт Dual-port SRAM;
ETM9 trace модуль для отладки программного обеспечения;
Контроллер прерываний, UART, Таймер, Сторожевой таймер, JTAG интерфейс, интерфейс для подключения внешней памяти, схема умножения частоты;
16 Мбайт Flash памяти;
схему формирования физического уровня 10/100 Ethernet;
четыре разъёма для подключения daughter cards (дополнительных плат);
20 pin JTAG и MICTOR-style отладочные разъёмы;
PC 100 32 Мбайта, 32 бит single data rate SDRAM DIMM;
Два full-length 3,3 В, 32 бит PCI разъема;
Пять тактовых генераторов;
Переключатели и индикаторы.
На этой плате можно будет использовать 16550 UART MegaCore и 10/100 Ethernet MAC MegaCore в отладочном режиме. Стоимость платы USD 11200,00. "
Сейчас же - ой, у меня всего 4 анала ШИМ? всего 1 UART? всего 20 выводов GPIO, да еще и раскиданных по разным портам? Отладка через printf-ы? Eсть всего пару калобайт ОЗУ, которые не расширить? Да ебись оно конем. Достаю Игрушки от Altera и синтезирую NIOS, у которого сам задаю что мне нужно для мигания лампочками на гирлянде.
Начиная от гибкого лампового Flex10K и заканчивая StratixiV на 230kLE, разбавляя все это 2-м циклоном на 20kLE и 4-м циклоном на 6kLE, чего с лихвой хватает на эротическую фантазию в виде мигающего светодиода. По выходным у меня отдых от пердолинга, поэтому достаю CycloneV и через его HPS(ARM ядро) мигаю светодиодом, используя /sys/class/gpio/. Всякие хуйнюшки типа STM32, AVR, PIC особо нервно курят в сторонке, зная что FPGA из выебет во все щели и в разных позах, позволяя отлаживать отлаживать себя через собираемые из подножного хлама FT2232H (благодарность Марсоходу) или PIC18F14K50 ( http://www.sa89a.net/mp.cgi/ele/ub.htm ) и используя NIOS можно создать практически любой набор и количество нужной периферии, как и приличное количество корпусов с разным количеством выводов. Единственное чего нет в FPGA - так это АНАЛа. АЦП это экзотика, есть в новых MAX10.
Как обоссал то? STM и AVR и PIC, как и 8051, MSP430 и прочая экзотика - игрушки для домохозяек. Особо ярые задроты могут класть большой и толстый на NIOS и заебашить проект MIPSFPGA и уже на нем Linux запускать и дебажить через gdb (хоть удаленно, хоть с локальной консоли Linux) мигалку светодиодом. У пердуинщиков даже нет отладчика LOL ( https://habr.com/post/390427/ ), только printf в лучшем случае.
Printf? По компорту? Что за древность? Есть LVDS на пару сотен мегабит. Если чуть ебануться - есть блоки PCI-Express или просто потратить немного выводов на параллельный PCI. Можно подключить Ethernet PHY и забив на все с частотой 25 МГц выплевывать по 4 бита чуть больше 70 байт - и ебать колотить, мой комп принял какой-то ethernet фрейм, где главное первые 14 байт, дальше любую поебень можно ставить, тк только до компа отправка идет. Какая на хуй отладка через printf? Совсем там ебанулись?
Сегодня выходной, это значит что настало время греть CycloneV и фапать на пингвинчиков.
>>47898
Полюбуйся Flex-ом чуть ближе. Конфигурационная флеш AT17 за кадром.
Кто подкинет архив паст и нигропак местного шизика?
>stm vs avr
LOL. Может хватит жрать колючий кактус?
Для четких пацанчиков есть продвинутые мигалки (обращаем внимание - конец 2001 года, стоит совсем ничего)
"25.12.2001
Доступен для заказа ARM-based Excalibur Development Kit. Этот набор содержит: EPXA10 development board (макетная плата с кристаллом EPXA10), CD Excalibur Solutions Pack (CD с утилитами, примерами проектов, демо-версиями программных продуктов третьих фирм для этой платы), самоучитель, источник питания и набор необходимых кабелей. Макетная плата имеет:
кристалл EPXA10, на котором распологаются:
32 - битное ядро RISC процессора ARM922T;
программируемая логика семейства APEX 20KE (1 млн. вентилей, 327 Кбит встроенной памяти);
256 Kбайт Single-port SRAM;
128 Кбайт Dual-port SRAM;
ETM9 trace модуль для отладки программного обеспечения;
Контроллер прерываний, UART, Таймер, Сторожевой таймер, JTAG интерфейс, интерфейс для подключения внешней памяти, схема умножения частоты;
16 Мбайт Flash памяти;
схему формирования физического уровня 10/100 Ethernet;
четыре разъёма для подключения daughter cards (дополнительных плат);
20 pin JTAG и MICTOR-style отладочные разъёмы;
PC 100 32 Мбайта, 32 бит single data rate SDRAM DIMM;
Два full-length 3,3 В, 32 бит PCI разъема;
Пять тактовых генераторов;
Переключатели и индикаторы.
На этой плате можно будет использовать 16550 UART MegaCore и 10/100 Ethernet MAC MegaCore в отладочном режиме. Стоимость платы USD 11200,00. "
Сейчас же - ой, у меня всего 4 анала ШИМ? всего 1 UART? всего 20 выводов GPIO, да еще и раскиданных по разным портам? Отладка через printf-ы? Eсть всего пару калобайт ОЗУ, которые не расширить? Да ебись оно конем. Достаю Игрушки от Altera и синтезирую NIOS, у которого сам задаю что мне нужно для мигания лампочками на гирлянде.
Начиная от гибкого лампового Flex10K и заканчивая StratixiV на 230kLE, разбавляя все это 2-м циклоном на 20kLE и 4-м циклоном на 6kLE, чего с лихвой хватает на эротическую фантазию в виде мигающего светодиода. По выходным у меня отдых от пердолинга, поэтому достаю CycloneV и через его HPS(ARM ядро) мигаю светодиодом, используя /sys/class/gpio/. Всякие хуйнюшки типа STM32, AVR, PIC особо нервно курят в сторонке, зная что FPGA из выебет во все щели и в разных позах, позволяя отлаживать отлаживать себя через собираемые из подножного хлама FT2232H (благодарность Марсоходу) или PIC18F14K50 ( http://www.sa89a.net/mp.cgi/ele/ub.htm ) и используя NIOS можно создать практически любой набор и количество нужной периферии, как и приличное количество корпусов с разным количеством выводов. Единственное чего нет в FPGA - так это АНАЛа. АЦП это экзотика, есть в новых MAX10.
Как обоссал то? STM и AVR и PIC, как и 8051, MSP430 и прочая экзотика - игрушки для домохозяек. Особо ярые задроты могут класть большой и толстый на NIOS и заебашить проект MIPSFPGA и уже на нем Linux запускать и дебажить через gdb (хоть удаленно, хоть с локальной консоли Linux) мигалку светодиодом. У пердуинщиков даже нет отладчика LOL ( https://habr.com/post/390427/ ), только printf в лучшем случае.
Printf? По компорту? Что за древность? Есть LVDS на пару сотен мегабит. Если чуть ебануться - есть блоки PCI-Express или просто потратить немного выводов на параллельный PCI. Можно подключить Ethernet PHY и забив на все с частотой 25 МГц выплевывать по 4 бита чуть больше 70 байт - и ебать колотить, мой комп принял какой-то ethernet фрейм, где главное первые 14 байт, дальше любую поебень можно ставить, тк только до компа отправка идет. Какая на хуй отладка через printf? Совсем там ебанулись?
Сегодня выходной, это значит что настало время греть CycloneV и фапать на пингвинчиков.
>>47898
Полюбуйся Flex-ом чуть ближе. Конфигурационная флеш AT17 за кадром.
Кто подкинет архив паст и нигропак местного шизика?
Меня там обоссали, обдристали и выгнали.. Теперь вот сижу меж двух стульев - пердуино и stm32, гоняя и местами тралля школолольника с его сниффером-подменялкой iic шины, который свалил даже из этого треда и ушел в тред stm32.
-Пиздюки. вы чо тут делаете?
-Дяденька, мы тут светодиодом мигаем .
-Ха-ха, говна поешьте, школьники ебаные. Смотрите, какой у меня хуй здоровый.
Хосспаде, как же хочется зотереть всех ардуинохейтеров в ардуинотреде, а ИРЛ прописать эцих с гвоздями.
>Так-так, что тут у нас? Ах, опять ардуиносрач.
Странно, что-то я не заметил. Тут лишь придурок с древними флексами пытается подражать шизику. Но он настолько туп, что даже это у него не получается.
>Даже ардуинщики понимают, что ардуина это низший уровень пердолинга
Это не совсем так. С одной стороны что-то там ардуина упрощает. Но вместе с этим ардуина предусматривает отладку только printf-ами, что явно создает сложности для начинающих. Особенно неудобно из-за этого будет анону, решившему потренироваться в ассемблере на ардуине.
Более того, ардуина не так уж много упрощает. Например, разве сложно вместо digitalWrite(6, HIGH); писать PC_ODR_bit.ODR6 = 1; ?
Ты резистор поставил? Какое напряжение макс у светодиода? На какой ток он рассчитан? http://www.ohmslawcalculator.com/led-resistor-calculator
Ну йобана, у тебя там 5 вольт. А диоду надо вольта 2 (зависит от цвета). Тебе надо резистором ограничивать ток.
>По порогу вхождения. fftgj
Это тебе так кажется из-за того что ничего кроме ардуины в руки не брал.
>С ардуиной нинужна.
Тогда значит отладчик не нужен для чего угодно. Да, такое мнение тоже распространено.
>STM32
>Можно просто взять STM8 или MSP430, которые с нормальными и дешевыми отладчиками и такие же простые как AVR.
Или кроме STM32 и ардуины ничего не бывает?
Я неофит, тут отрицать не буду. Меня изначально смущали циферки 32 в названии, но остальных вариаций я банально не видел.
>ничего кроме ардуины в руки не брал
Это тебе так кажется из-за того что ты ардуинохейтер. Она не даёт тебе жить, не даёт спать, у-у-у проклятая тупая ардуина.
>Тогда значит
Не значит. С простыми автоматами тупо нечего отлаживать - либо ты сделаешь и оно работает пусть и с небольшими недочётами, которые потом сам доработаешь, либо оно не работает и ты выбрасываешь ардуинуИДЕ к хуям.
Первый кто внимательно рассмотрел фотку и понял что светодиод реально горит с огоньком. Действовал согласно инструкции "зажечь светодиод". Зажег. Начал гореть, дымить, вонять. До мигания так и не дошло. Спасибо что намекнул другим что это троллинг.
>>47973
> лишь придурок с древними флексами пытается подражать шизику.
> Но он настолько туп, что даже это у него не получается.
Печаль. Дай советов что ли, помимо >>47897
Может научусь и сложно будет отличить от местного шизика. Зачем? Сам не знаю.
Ебать светодиод горел в прямом смысле слова
>Шо блять такое System CD?!
Сходить по ссылке выше твоих возможностей?
Это ньюфак-плисоеб тралирует своей говноплатой.
Самокритичненько. Но зачем?
>Зачем? Сам не знаю.
А. Ну, да. Есть мнение, что все гении слегка поехамши, но глядя на нашего шизика такого не скажешь. Ты бы какой-нибудь эпичный шайтан-прибор запилил на своей нане, что ли.
Блять, а нахуй вообще ети CD? Ну то есть их всё равно особо не поюзаешь, есть же инет.
Как бы через 20 лет диски сгниют, лол. Особенно не самого хорошего качества. Самый оптимальный, хоть и дорогой, вариант хранения информации — картриджи. Выходили в восьмидесятых и как новые до сих пор.
Я бы не был так категоричен. Отрыл у себя четыре CD-R, записанных около 12 лет назад, все нормально читается. Но даже если только половина дисков доживет - значит уже не зря клали.
>Самый оптимальный, хоть и дорогой, вариант хранения информации — картриджи. Выходили в восьмидесятых и как новые до сих пор.
Это и без тебя наверное все знают.
И еще проблема в nrf24l01 когда надеваю антену, то передатчик плохо передает, я так понял антена не касается передающего устройства, но когда я прикасаюсь все хорошо, можно ли просто
проводок припаять?
>помехами на сервомашинках
RTFM! Какой длины провод?
>И еще проблема в nrf24l01 когда надеваю антену
RTFM! Нельзя включать передающие устройства без нагрузки, они тупо дохнут в большинстве случаев.
Какую-то херню на Verilog пришлось писать и ручками надрачивать тактовую кнопку для смены состояний конченного автомата чтобы и эта херня таки вывела текст.
Да, я люблю ебать Arduino!
Говнокамера только в темноте более-менее адекватно может показать содержимое VFD на половинной яркости.
Очень большой 1метр, я припаял резистор на 40 ом в конче серво машинки землю и сигналный провод соединил резистором. Работает довольно годно. редко дергается. А про антены, она изначально с антеной плохо работала, я отсоеденил стало нормально.
Тебе нужно еще раскрасить его под ваху. С такой аэродинамикой будет смотреться уместно.
Это у тебя тогда дуина дергается, осциллоскопом смотри. 40 Ом очень мало, чтобы там вообще что-то было.
Ардуинщики хуже юнити-даунов. Скоро блять и вами завезут ассет стор и вы будете перетаскивать свои куски говна в десятки килобайт чтобы помигать светодиодом.
P.S. он довольно таки неплохо летел и даже управлялся
Сажа и ненависть (плохо видно, там написано SAGE rAGE).
Код вне сеанса отладки с пошаговым выполнением работать не будет.
Тебе повезло что индикаторы с общим катодом. В даташите есть flowchart как это говно запускать. Всего 2 команды в контроллер и вывод данных - адрес знакоместа+данные. Неужели так сложно?
Открываешь даташит и вникаешь что за поебень тут написана.
Тестил на поделке для школьника.
Кто так над бедным механиком по лифтам издевается?
У кого-то LIR2032 впихнули вместо обычной CR2032? Или наоборот заряд установленной батарейки вместо LIR? буквально бомбануло.
У меня nRF24I01 работает на 7-9 миллисекунд в одну сторону. В обе стороны получается 10-15. Время Fail-Safe обычно 999 миллисекунд. А вообще, кричи WAAAAAGH!! ты настоящий орк, заставил летать нелетаемое. Старайся сервы в центре располагать, а до плоскостей тянуть жёсткие сцепки, тогда центр масс будет центром.
>кричи WAAAAAGH!! ты настоящий орк, заставил летать нелетаемое.
с современными аккумами и моторами можно все что угодно (в разумных пределах) поднять в воздух, вопрос управляющего по.
да нет у меня все в порядке с центром масс, он полетел и управлялся, теперь нужно в следующий раз не такие обороты давать, что бы он так быстро не улетал.Только что ходил проверял дальность связи почти 100 метров. Очень странно летом их купил работали на метров 200 + я был на 3 этаже в бетонном доме. Поэтому вина сломанного самолета полностью на передатчиках.
Вот. Антену отпаял так как если ее подключаю то передавать совсем перестает. Припаял проводок длинной 32мм . Пишут что для 2.4Ггц нужен именно такой. И на приемнике такой же проводок.
720x1280, 0:06
Вот он без аппаратуры планирует
Лол. Напомнил литаки бравых игиловцев которыми они боньбили базу Хуйнмим
У меня всего 2 цветочка, есть что-то попроще и максимально дёшево?
Анон, а какая у тебя AVR студия? Новая на базе VS - лютое говно, её даже не установить. Я смогу к ней новый GCC прикрутить?
Хоть один вменяемый адекват. Ответ тут >>46668
То же на хую вертел дерьмище со времен 5-й версии.
Сливал все отсюда https://www.mikrocontroller.net/articles/Atmel_Studio
Версию GCC правда не помню - есть просто папку архив распаковать, а есть через инсталлер. У меня через инсталлер установленная.
Ты лучше не на базе VS, а саму VS бери. VS с какой-то версии поддерживает CMake, поэтому может без проблем использоваться с самыми разными микроконтроллерами.
В начале стоял "AVR Toolchain 3.2.3-579 (95 MB, avr-gcc 4.5.1, AVR-Libc 1.7.1, updated 2011/06/11, Toolchain 3.2.3-314)", обновился соседом "AVR Toolchain 3.4.2-1573 (86.6 MB, avr-gcc 4.7.2, AVR-Libc 1.8.0, updated 2013/04)" - и сразу сoснyл хyйца в виде Studio совершило недопустимую операцию и будет закрыто при запуске отладки, компиляция и пересборка при этом происходит нормально(во выводу). Попытка подсунуть avr8-gnu-toolchain-3.6.2.1759-win32.any.x86 - и сразу фейл. Долго тупил, понял что просран мейк, поэтому не долго думая скопировал без замены содержимое старого тулчейна поверх нового. Скомпилилось, формат вывода warning-ов чуть изменился, уже что-то. Отладка так же валит студию. Пересоздал еще раз проект - перекомпилил и оно зашло в отладку. Как-то так.
Вертeл на хyю все ваши мeйки, хyeйки и прочую залyпу, которая меня не eбeт и лазеть по тоннам форумов как склеить все это дeрьмищe вместе. У меня есть только быдлoкoд который пишу и дeбажу через отладчик, для тяжелых случаев есть листинг.
Со скрипом вроде встал gcc version 5.4.0 (AVR_8_bit_GNU_Toolchain_3.6.2_1759)
>>48428
Есть скрин этой VS с сеансом отладки, в котором можно в реальном времени наблюдать состояние периферии, ставить точки останова, просматривать-менять память и пошагoво выполнять быдлoкoд?
>Есть скрин этой VS с сеансом отладки
https://visualgdb.com/tutorials/avr/ Можно обойтись и без этого плагина, но тогда не будет того окошка с регистрами.
Я сам пользуюсь не VS а CLion, но смысл тот же. GDB поддерживает большинство IDE, CMake или хотя бы просто Make тоже поддерживают многие IDE. Поэтому для микроконтроллеров можно без проблем использовать самые разные IDE.
>nRF24I01+PA
>паять проводок вместо идущей в комплекте ЗАМЕЧАТЕЛЬНОЙ антенны на ~1000 метров
ЧТОЖТЫСУКАДЕЛАЕШЬ?! Меня же на части разорвало от смеха! Это на nRF24I01+ надо два проводка, чтобы он вместо ~50м давал ~70м дальности. Не уродствуй рабочую технику.
>Поэтому вина сломанного самолета полностью на передатчиках
Глупый винит инструменты, умный ищет свои ошибки. А ты просто засранец. И не 32мм, а 27мм с противовесом от "земли" тоже 27мм.
ну если с антеной он совсем не передает, только когда я прикасаюсь к передатчику он начинает передавать
У меня сломанные передатчики, где тут моя ошибка
854x480, 0:28
>Чего блядь? Как раз и надо вкатываться прямо в аттини, а не в это все ардуино, нихуя там сложного нет.
лол, я сегодня вчера-сегодня сделал первые шаги. до этого только на пыхах и джаве катался.
>кто нибудь боролся с помехами на серво машинках
Их от отдельного бека (Это DC/DC на жаргоне лiтакоебов) питают. Особо параноики - от отдельного аккума.
Осталось еще microblaze и nios потестить.
ну ну я так то хотел видио сделать, но там особо рассказываться не будет. Просто как на картинках пошагово собертся корпус вставится электроника , напечатается код. Ну я так себе видио представляю которое хочу выложить, но так как кадров с полетами нету поэтому пока не выкладываю.
https://github.com/iNavFlight/inav
https://ru.aliexpress.com/item/Dragon-model-Naze-32-Rev6-6DOF-10DOF-Rev5-6DOF-10DOF-Version-Controller-can-use-CleanFlight-Firmware/32698226091.html
https://ru.aliexpress.com/item/Betaflight-F4-Pro-V3-OSD/32845341447.html
https://ru.aliexpress.com/item/LHI-F4-V5-DIY-Quadcopter/32888495031.html
Обожаю изобретать велосипеды, лучшее что есть в жизни, сделать свой пульт радио управления это ахуенно
Это китайцы бракоделы намудрили или же ноги какие замкнуть? В интернетах написано что должно отвечать тупо OK на команду AT, но в ответ тишина, RX TX менял местами, скорости тоже пробовал менять, хотя передача данных в готовом проекте робит на 9600 без проблем, но мне нужно сменить SSID
Ок, кажется пидарасы китайцы прислали HC-05 и тупо его переименовали, т.к. на АТ команды стало отвечать после добавления галочек +CR и CR=CR+LF в терминале, тогда как HC-06 должен отвечать без доп. символов.
как тогда понимать пикрил?
А так же то что на команду AT+NAMEname мне выдало Error (0), а на команду AT+NAME=name выдало OK.
Мне это говорит лишь о том, что китайцы наебали.
Дай пруфы. Ни разу не слышал о сгоревших светодиодах, когда резистор ставят со стороны анодного или катодного вывода. Это одна цепь, ток одинаков и без разницы где резистор ставить.
Да потому что говнокод, на самом-то деле. Был случай, что написано CR+LF, а оказалось LF+CR, либо только CR. Китаец взял СС2500 или подобный, запихнул туда свой код и продал. А ещё HC-05 b 06 горят, если RXD и TXD местами перепутать.
А, забыл почему именно удаленное включение - тупо потому что не хочется делать какие-то дополнительные хардварные кнопки и проводку под них.
Не проще ли какой-нибудь google home купить?
Как обычно там всё пишется в IDE и общается через UART. У меня на ведре установлена Virtuino за каким-то хреном и
https://play.google.com/store/apps/details?id=com.giumig.apps.bluetoothserialmonitor
в котором есть настраиваемый джойстик для совсем уж ленивых. Есть ещё Blynk, но я его, почему-то, на хую вертел.
>Есть ли какие-то стандартные решения?
Esphomelib/tasmota/espurna/espeasy но оно больше рассчитано на работу с контроллером, чем на прямое управление с телефона.
А вообще удаленное управление тебе не нужно. Поставь светодиодные лампы с диммером, сделай софтстарт и два режима яркости (аля день и поссать ночью)
while(1){
PORTB = 0b00011111;
_delay_ms(100);
PORTB = 0b00000000;
_delay_ms(100);
}
Т.е. 5 диодов моргают одновременно. На бредборде работает нормально, но когда ставлю в пикрил, мигает только BP2(оранжевый шрифт). Или когда присодиняю диод к ПБ1 и земле - горят ПБ2-оранжевый и ПБ1. Когда присоединяю диод к ПБ2+земля он не говрит, а ПБ2-оранжеый гаснет. БП3-5 вообще не горят на на прикриле. В чём суть этой ебучей платки?
Олсо, вот она ебае: https://www.ebay.com/itm/Development-Programmer-Board-for-ATtiny13A-ATtiny25-ATtiny85-ATtiny45/142667561991
А где конфиг контроллера? Назначение портов, периферия и т.д.?
Какую-то хуйню несешь.
Давай с начала - есть всего 8 ног, из них 2 питание и 1 сброс, остается 5 ног. По первому пункту верю.
Взяв платку - уже вижу как минимум USB порт (программный что ле? или он только для питания), который занимает 2 вывода - остается 3 доступных вывода.
На самой плате вижу 2 светодиода, допустим один точно какой-то из выводов, другой - или питание или вывод.
Через какую жопу подключил 5 светодиодов? Где картинка?
Чот я задумался на ровном месте. Не могу понять что я сейчас увидел.
Когда на плате(пикрил), мигают только ПБ0 и ПБ2(оранжевый). Когда подключаю диод к ПБ1 - ни ПБ2О ни, ПБ1 не работают.
>>49050
5 светодиодов подключа через бредборд. они пашут. на чёрной плате, мигают только ПБ0 и ПБ1.
да в прочем похуй. значит не будут плату использовать. порсто не понятно, нахуя эта плата нужна, если она перебивает сигналы. чё это вообще за плата?
Запилил я тут гирлянду на 2812 ленте, но поскольку я у мамы инженер, а не погромист, то код взял из проекта товарища Gyvera, конкретней отсюда:
https://alexgyver.ru/ws2812b-fx/
Все завелось и все хорошо, однако я хочу добавить управление яркостью данной ленты при помощи потенциометра, дабы по ночам гирлянда не мешала спать, а днем светилась ярко и сочно. Но поскольку я не могу даже в hello world, прошу вашей помощи.
Подскажите, как надо дополнить код прошивки, чтобы она научилась менять яркость по потенциометру и за одно осоветуйте книг для совсем зеленого нуба, дабы не возникало впредь таких зашкварных вопросов.
Заранее благодарен.
Берешь esp8266, делаешь из нее ArtNet интерфейс и управляешь через Daslight или любой другой софт.
https://github.com/mtongnz/ESP8266_ArtNetNode_v2
Ну пердулинкой я решил обмазаться из за ее дикой популярности на ютубе. Когда из каждого холодильника кричат о ней, сложно не заинтересоваться.
Нашел себе самый простой проект, который будет максимально полезен в хозяйстве (новый год, а тут не унылая китайская гирлянда, а умная, всеми цветами переливается, красива) и решил на нем познакомиться с тем, что это вообще такое и с чем едят. За одно хоть как то вкатиться в погромирование, в котором я нуб абсолютный.
Все собрал, все завел, работает отлично, однако дополнить готовый проект такой простой функцией как регулятор яркости я не смог. Вроде и манов куча и код хорошо прокомментирован, а все равно не заводится как надо.
Вот решил испросить совета у бывалых радачеров.
https://github.com/AlexGyver/WS2812_FX/blob/master/WS2812_FX_rndChange_light/WS2812_FX_rndChange_light.ino
А в том то и дело, что простая замена не прокатывает. Нашел текст работы потенциометром в манах, а он совершенно иной.
Например, я у меня есть два режима:
1. ардуино берет инфу с мыши и потом что-то там делает с ней
2. данные с мыши тупо проходят сквозь ардуино к компьютеру, как будто ардуины не существует.
Да, нет, наверное.
прошу пояснить одну вещь.
максимально допустимый ток через одну ножку на atmega8a = 40 мА, однако там ничего не сказано, при каком duty cycle это считается. если я буду пускать через эту ногу ток для запитки нескольких светодиодов в параллель суммарной силой 80 мА со скважность 0.5 и периодом 1 мс - это будет считаться превышением? вообще, где можно нарыть инфу на предельный ток через ножку при использовании pwm (и параметры самого pwm в таком случае)?
Один крайний пин потенциометра на землю, другой крайний - на 5 вольт. Средний пин потенциомерта на аналоговый вход, A7, например. И вот тут его пропиши (пик). Все заведется.
Это смотря какая ардуина и какая мышка. Если мышка PS/2, то это довольно легко. Раньше еще были мышки с RS-232, их поддержка вроде как до сих пор в винде осталась. Только сейчас везде USB вместо PS/2. Для AVR есть всякие v-usb, в том числе и реализация хоста, но сомневаюсь что получится сделать два программных USB одновременно.
>>49427
Будет превышением. Потому что допустимый ток это не только ток при котором оно не горит, но еще и ток при котором логические уровни находятся в заданных пределах.
>для запитки нескольких светодиодов
Учитывай ограничение по суммарному току. Обычно в даташитах пишут максимальный суммарный ток VCC.
Да, суммарный ток у меня в пределах допустимого для порта и чипа в целом, так что тут проблем нет.
Однако ещё такой вопрос. Я запитываю Мегу от 3 вольт (в данный момент от usbasp с 3.33 вольта, в дальнейшем собираюсь от 18650 баночки), bod выставлен на 2.7 вольта. В дате сказано, что минимальный вольтаж на выходе с ноги при 3V, 10mA может быть 2.2 вольта. На что ориентироваться при расчете токоограничительного резистора- на возможный минимум (тогда мне нужен резюк на 69 ом), на мое напряжение Vcc (которое по предварительным оценкам не очень сильно проседает от 3.33 вольт) или проводить какую-то эмпирическую калибровку?
Для светодиодов (сегментов индикатора) калибровку ВАХ я уже сделал, падение напряжения там меняется от 1.7 до 2.1 вольт в диапазоне приемлемых токов, поэтому не хочется обосраться с жирным резюком, если вдруг мега будет выдавать только 2.2 вольта... Если нужно, могу подробную схему подключения приложить
> Если мышка PS/2, то это довольно легко.
>Только сейчас везде USB вместо PS/2
Так USB это и есть PS/2. Я к чему спросил про пункт 2 в предыдущем посте: не будет ли инпут лага?
>Так USB это и есть PS/2
Это вовсе не так. Некоторые мышки определяют куда их воткнули и потом работают в соответствии с этим. И это еще вопрос, какая часть современных мышек может так работать.
Если у тебя возникает такой вопрос, то сомнительно что ты сам сможешь написать код, максимум сможешь откуда-то скопировать.
Как будто написание кода — это не копирование. Сам догадался писать циклы или спиздил из обучающих источников?
Спасибо за удар по яйцам.
/ TWI_mega8.c
Created: 14.12.2018 20:08:54
Author : DemianIvo
/
#define F_CPU 8000000UL
#include <avr/io.h>
#include <util/delay.h>
#include <util/twi.h>
#define ADR_PCA 0x80
#define MODE1 0x00
#define MODE2 0x01
#define PRE_SCALE0xFE
#defineMOTOR15L_ON 0x42
#define MOTOR15H_ON 0x43
#defineMOTOR15L_OFF0x44
#define MOTOR15H_OFF0x45
void Init_TWI (void){
TWBR = 0x20;
TWCR |= (1<<TWEN);
}
void TWI_StartCondition (void){
TWCR = (1<<TWINT)|(1<<TWSTA)|(1<<TWEN);
while(!(TWCR&(1<<TWINT)));
}
void TWI_StopCondition (void){
TWCR = (1<<TWINT)|(1<<TWEN)|(1<<TWSTO);
}
void TWI_SendByte (unsigned char byte){
TWDR = byte;
TWCR = (1<<TWINT)|(1<<TWEN);
while(!(TWCR&(1<<TWINT)));
}
void TWI_SendOptions (unsigned char adr, unsigned char date){
TWI_StartCondition();
TWI_SendByte(ADR_PCA);
TWI_SendByte(adr);
TWI_SendByte(date);
TWI_StopCondition();
}
void TWI_SendCommand (unsigned char adr, unsigned char l, unsigned char h){
TWI_StartCondition();
TWI_SendByte(ADR_PCA);
TWI_SendByte(adr);
TWI_SendByte(l);
TWI_SendByte(h);
TWI_StopCondition();
}
void Init_PCA (void){
TWI_SendOptions(PRE_SCALE, 0x79);
_delay_ms(1);
TWI_SendOptions(MODE2, 0b00000000);
/ ^^^^^^^^OUTNE
|||||||OUTNE
||||||OUTDRV
|||||OCH
||||INVRT
|||0
||0
|0 /
_delay_ms(1);
TWI_SendOptions(MODE1, 0b00100001);
/ ^^^^^^^^alcall
|||||||sub3
||||||sub2
|||||sub1
||||sleep
|||AI
||extclk
0|restart /
_delay_ms(1);
TWI_SendCommand(MOTOR15L_ON, 0x01, 0x00);
}
int main(void)
{
Init_TWI();
Init_PCA();
while (1)
{
TWI_SendCommand(MOTOR15L_OFF, 0xDC, 0x00);
_delay_ms(500);
TWI_SendCommand(MOTOR15L_OFF, 0XF0, 0x00);
_delay_ms(500);
}
}
/ TWI_mega8.c
Created: 14.12.2018 20:08:54
Author : DemianIvo
/
#define F_CPU 8000000UL
#include <avr/io.h>
#include <util/delay.h>
#include <util/twi.h>
#define ADR_PCA 0x80
#define MODE1 0x00
#define MODE2 0x01
#define PRE_SCALE0xFE
#defineMOTOR15L_ON 0x42
#define MOTOR15H_ON 0x43
#defineMOTOR15L_OFF0x44
#define MOTOR15H_OFF0x45
void Init_TWI (void){
TWBR = 0x20;
TWCR |= (1<<TWEN);
}
void TWI_StartCondition (void){
TWCR = (1<<TWINT)|(1<<TWSTA)|(1<<TWEN);
while(!(TWCR&(1<<TWINT)));
}
void TWI_StopCondition (void){
TWCR = (1<<TWINT)|(1<<TWEN)|(1<<TWSTO);
}
void TWI_SendByte (unsigned char byte){
TWDR = byte;
TWCR = (1<<TWINT)|(1<<TWEN);
while(!(TWCR&(1<<TWINT)));
}
void TWI_SendOptions (unsigned char adr, unsigned char date){
TWI_StartCondition();
TWI_SendByte(ADR_PCA);
TWI_SendByte(adr);
TWI_SendByte(date);
TWI_StopCondition();
}
void TWI_SendCommand (unsigned char adr, unsigned char l, unsigned char h){
TWI_StartCondition();
TWI_SendByte(ADR_PCA);
TWI_SendByte(adr);
TWI_SendByte(l);
TWI_SendByte(h);
TWI_StopCondition();
}
void Init_PCA (void){
TWI_SendOptions(PRE_SCALE, 0x79);
_delay_ms(1);
TWI_SendOptions(MODE2, 0b00000000);
/ ^^^^^^^^OUTNE
|||||||OUTNE
||||||OUTDRV
|||||OCH
||||INVRT
|||0
||0
|0 /
_delay_ms(1);
TWI_SendOptions(MODE1, 0b00100001);
/ ^^^^^^^^alcall
|||||||sub3
||||||sub2
|||||sub1
||||sleep
|||AI
||extclk
0|restart /
_delay_ms(1);
TWI_SendCommand(MOTOR15L_ON, 0x01, 0x00);
}
int main(void)
{
Init_TWI();
Init_PCA();
while (1)
{
TWI_SendCommand(MOTOR15L_OFF, 0xDC, 0x00);
_delay_ms(500);
TWI_SendCommand(MOTOR15L_OFF, 0XF0, 0x00);
_delay_ms(500);
}
}
>ардуино М0
Без задач. Только если на ней плеер какой запилить. В остальном бесполезна и библиотек на этот проц низавизли
>свои программаторы
Вроде как не совсем. STM32 можно через UART прошивать, так же как ардуину с загрузчиком.
>свои языки
Это как? Можешь подробнее разъяснить?
какие нахуй свои языки даун?
все таже синятина или кресты для особо упоротой школоты сисярп...
хотя если постараца то и под бейсик можно кампилятор найти.
и какие нахуй ф пизду свои погроматоры???
А ты любитель изобретения велосипедов, я погляжу. Зачем тогда пользуешься кривым японским двачом в тупом пиндосском интернете? Напиши лучше свой интернет.
Тот шизик прав. Нет смысла хардкодить в библиотеках взаимодействие с периферией конкретного микроконтроллера. Как пример, в lwip, FatFs, FreeRTOS такого практически нет. А ту маленькую часть кода, необходимого для связи библиотеки с периферией конкретного микроконтроллера, недолго написать самостоятельно, если потребуется.
Сап, ra, я к тебе с вопросами.
Короче, есть тут у меня один проектик. Даже программа, я бы сказал
В общем мне посоветовали STM32F103C8T6 для моих целей. Я так понимаю работать с ней не сложнее чем ардуиной? Задачи следующие: обработать данные с акселерометра и барометра и записывать их. Ну там в простой txt файл хотя бы. Реализовать запись данных несложно?
Систему управления возвратом ракеты. Все до балды примитивно.
Когда аксеоерометр зафиксирует невесомость, пойдет замер давления. Как только давление начнет расти ну то есть апогей будетдостигнут система раскрывает парашют. Параллельно записывая данные. Переводить в высоту уже можно и потом.
В принципе меня волнует только запись. Внутренней памяти хватит? И как потом оттуда доставать эти данные?
это все лишнее я ходил в ракетомодельный кружек
задавай ответы расскажу
да и зачем мучиться
1 вариант автоспасатель - смотри твердотопливный движок догорел в его верхушке несколько маленьких отверстий сверху пирозаряд для выталкивания парашюта
2 вариант на хоббикинге есть готовые флешки альтиметры и акселерометры с записью показателей полета ускорение высота и прочее
3 берешь ардуину и например раз в секунду пишешь в епром свои данные или на флешку в текстовом формате, датчик давления лучше используй хоть узнаешь высоту на которую твоя ракета подлетит
ебанный т9
MeArm я собирал, вполне весело. И тебе потребуется 4 ноги. Только советую на одном порту и самому написать обработчик, чтобы сервы меньше дергались.
> 1 вариант автоспасатель - смотри твердотопливный движок догорел в его верхушке несколько маленьких отверстий сверху пирозаряд для выталкивания парашюта
У меня профиль горения не тот. Догарает последним сбоку, а не сверху
> 2 вариант на хоббикинге есть готовые флешки альтиметры и акселерометры с записью показателей полета ускорение высота и прочее
Потом хочу на основе этого запилить стабилизатор с гиродинами, так что нет
> 3 берешь ардуину и например раз в секунду пишешь в епром свои данные или на флешку в текстовом формате, датчик давления лучше используй хоть узнаешь высоту на которую твоя ракета подлетит
Епром? А на sd карту можно?
// переменные с пинами подключенных устройств
int switchPin = 8;
int ledPin = 11;
// переменные для хранения состояния кнопки и светодиода
boolean lastButton = LOW;
boolean currentButton = LOW;
int ledLevel = 0;
void setup() {
pinMode(switchPin, INPUT);
pinMode(ledPin, OUTPUT);
}
// функция для подавления дребезга
boolean debounse(boolean last) {
boolean current = digitalRead(switchPin);
if(last != current) {
delay(5);
current = digitalRead(switchPin);
}
return current;
}
void loop() {
currentButton = debounse(lastButton);
if(lastButton == LOW && currentButton == HIGH) {
ledLevel = ledLevel + 51;
}
lastButton = currentButton;
if(ledLevel > 255) ledLevel = 0;
analogWrite(ledPin, ledLevel);
}
// переменные с пинами подключенных устройств
int switchPin = 8;
int ledPin = 11;
// переменные для хранения состояния кнопки и светодиода
boolean lastButton = LOW;
boolean currentButton = LOW;
int ledLevel = 0;
void setup() {
pinMode(switchPin, INPUT);
pinMode(ledPin, OUTPUT);
}
// функция для подавления дребезга
boolean debounse(boolean last) {
boolean current = digitalRead(switchPin);
if(last != current) {
delay(5);
current = digitalRead(switchPin);
}
return current;
}
void loop() {
currentButton = debounse(lastButton);
if(lastButton == LOW && currentButton == HIGH) {
ledLevel = ledLevel + 51;
}
lastButton = currentButton;
if(ledLevel > 255) ledLevel = 0;
analogWrite(ledPin, ledLevel);
}
Ебать, тебе надо основы си изучить, ардуина тут не причем. Ответь на такие вопросы: что такое функция, как в си передаются аргументы функции, как функция возвращает результат. Гугл в помощь.
Кроме того, приведи в порядок отступы, ибо без них это как текст без пробелов.
Я в зачаточном состоянии изучения, мне бы только понять почему так сделано с этими скобками boolean debounse(boolean last). Это типо локальная переменная объявляется так ?
Если ты не можешь найти информацию в гугле, ты слишком туп даже для ардуинщика.
https://prog-cpp.ru/c-functions/
да конечно можно погляди уроки работы с модулем сд карты, да и мой тебе совет делай капсулу спасения например как картонный патрон чтоб наружу торчали только провода , все пространство капсулы спасения либо залей чем нибудь либо засыпь плотно потому как падение ракеты с пары километров убьет твою махарайку
>olean las
объявляется функция в которую передан параметр, затем эта функция этот параметр вырождает наружу
Я вроде разобрался. Сначала мы объявляем и описываем как будет работать эта функция в void setup() . Здесь (boolean last) просто аргумент. Изначально я думал что туда (в boolean last) при инициализации что-то должно прилетать, какое то конкретное значение переменной.
boolean debounse(boolean last)
{
boolean current = digitalRead(switchPin);
if(last != current)
{
delay(5);
current = digitalRead(switchPin);
}
return current;
}
Затем начинается
void loop() {
currentButton = debounse(lastButton);
А тут, уже в void loop() {, как понимаю мы вызываем функцию debounse с аргументом (lastButton) , то есть вместо (boolean last) подставили нужную нам и она автоматом будет меняться при вызове. Я все так понял ?
Доложить бы куда следует...
>MeArm
Господа, а есть подобные проекты но для самостоятельного выпиливания? С чертежами там, из доступных материалов и без механизации процессов.
Считаю покупку и сборку набора слишком простой задачей для подобных проектов, ведь вся их суть в процессе создания, а не каком то прикладном использовании Если конечно не пилить пик
>для самостоятельного выпиливания
Погоди, зачем выпиливаться таким сложным способом? А если ты такими интересные вещами интересуешься, то почему решил выпилиться?
Если sd карту использовать как RAW, без смазки в виде FAT, то скорость записи на блок из 512 байт может достигать 32-64 микросекунд или миллисекунд, уже не помню.
Да. Теперь пиздуй нахуй отседова, и пока основы не изучишь, не возвращайся.
Он прост дебс и не понимает что запилить =/= выпилить
Подскажите, можно опилить эту плату по длинным сторонам и оставить чуток контактных групп?
Там в глубине текстолита дорожек нет?
Мне готовую ардуинку нужно в анус корпус от слов свистка засунуть.
Я спецом фотку Ардуино не прикрепил.
Нашёл у себя пикрил, купленный три года назад на алике и решил слепить из неё какую-нибудь вундервафлю, и вот второй день уже не могу разобраться как она работает. По идее - должна позволять мне с условной ардуиной управлять четырьмя движками так. На практике я подключаюсь к IN1 и IN2 для контроля направления вращения и нифига не происходит. Движение начинается только когда я жмакаю на белую кнопку и задерживаю где-то посередине (нажимаю но не до конца) . Короче объясните плиз нафига здесь эта кнопка, так как раньше я делал всё на L298N и для двух движков (цэ L293D) и там никогда подобной ерунды не было.
нервничаю, щас стол переверну
https://2ch.hk/b/res/188609279.html (М)
> Сап, хотелось бы попросить помощи тут. В тематике мало людей.
>
> Нашел данную плату на чердаке, рядом с жилыми квартирами. Хотелось бы узнать что за плата. Там виден разъем usb, видимо для записи программы, которая будет исполнятся. Так как там была антенна, видимо перехватывали вайфай. Двач помоги пожалуйста
поморгал светодиодом тебе в анус
Не не не, пиздуй обратно в /b/. Ты нам тут не нужен. Стройте там дальше свои теории заговора и пытайтесь разобрать бинарный дамп скетча.
Просто сигнализация банальная. Детектирует что дверь открылась и отсылает это куда-то по радиоканалу, все.
Нашёл ещё таких же?
Раз она была на чердаке, то могла быть ретранслятором для других ардуин, в подъезде.
былвтомтреди
это точно не для "перехвата вифи хакорами"
плата не та, для нормальной обработки вифи нужон хоть какой-то минимальный арм проц уровня Оранж пай 0
помимо того что уже предположили может быть какой-то прожект по построению карты сигналов, или даже банальный пижамер, вроде этого https://www.instructables.com/id/DIY-Wifi-Jammer-With-ESP8266-and-Mobile-App/
Давно уже, когда поняли, что надо заваливать мир не только конечным говном, но и делать платы на заказ за немалые деньги. Оборудования для качественного монтажа там теперь полно.
Слушай, вопрос возник. В шапке треда есть обучалка от амперки и книги от Ревича по микроконтроллерам, но я так понимаю, что нужно так же уметь схемы проектировать. Где по этой теме книги взять?
Книга юного радиолюбителя
дело не в "мощности" а в наборе инструкций, дебич. запустишь на своей ардуине человеческую ось?
Мод, чему бугурт низя?!
Еще одна пердуина же есть? Попробуешь перешить пердуину в программатор и программатором попытаться прочитать прошивку?
Безконтактный детектор. Например, открытия двери. Удобно, когда устройство нужно разместить незаметно и на расстоянии от объекта наблюдения
Думаю, принцип работы электоспички тут все знают. По идее 5 В должно хватить для зажигания. Если такую спичку подключить в gnd и цифровой порт - не спалю ардуину?
Открой даташит на ссаную атмегу и посмотри какой там максимальный выходной ток у портов. И сравни это с током потребляемым твоей электроспичкой, причем не средним, а максимальным.
https://www.youtube.com/watch?v=t-kDrUWJKh4
Поясните, от чего зависит максимальный объем SD карты? Он ограничен модуелм или софтом?
void setup() {
#define led_p 8
#define button_p 2
pinMode (2, INPUT);
pinMode (7, OUTPUT);
}
void loop() {
while(digitalRead(button_p))
{
digitalWrite(led_p, 1);
}
digitalWrite(led_p, LOW);
}
Еще можно написать красивше:
#define led_p 8
#define button_p 2
void setup() {
pinMode (button_p, INPUT);
pinMode (led_p, OUTPUT);
}
void loop() {
digitalWrite(led_p, (digitalRead(button_p) ? HIGH:LOW));
}
Все в микроконтроллере это регистры. Можно бит байта регистра обозначить как константу, причём как входного регистра и получить ВХОД, так и выходного регистра и получить ВЫХОД.
#define PINB.2 IN_A
#define PORTD.6 OUT_A
Имеют смысл и работают.
Ты неправильно объясняешь, а может и сам не знаешь. Впрочем, от пердуинщиков не стоит ожидать даже знания сишечки.
#define — это директива препроцессора. Перед тем как приступить непосредственно к компиляции, компилятор прогоняет исходники через препроцессор. Препроцессор один раз проходит по тексту и производит замены в тексте в соответствии с тем что прописали в #define. Также препроцессор включает в текст содержимое файлов, которые прописали в #include, обрабатывает #ifdef и прочее.
Например, ты написал
>#define button_p 2
Это означает что препроцессор заменит в тексте button_p на 2. Возможно тебе покажется что разницы между этим и константой нет, но это вовсе не так, т.к. подставляться при замене абсолютно любой текст.
Значит в данном случае правильнее const int button_p 2 ?
А разве этот integer не будет занимать место в динамической памяти МК?
Хуй знает, в даташите написано максимум 1гб, но на форуме пердуины пишут что и некоторые модели на 2гб работают, но не все. Китайские модули как всегда сделаны через жопу.
Неа, у них просто буфер под размер страницы 512 байт, а это от 16Мб до 1-2Гб, ещё и от карты зависит, хихихи.
Мне кажется нет. В пердуине же только логика в большинстве случаев, а это не отличается от быдлокодинга на компе, все условно низкоуровневое спрятано + тут НЕТ отладчика. Только срать в компорт или зажигать светодиоды. Других вариантов отладки нет.
Для выкатывания из темы нужен хотя бы минимальный низкоуровневый кодинг на уровне регистров и раскуривания документации чтобы не задавать миллион вопрос - почему не работает, слишком медленно работает, есть ли возможность это сделать, какин нужные фичи есть у (название периферийного блока)?
Если собрался делать наебизнес - забудь. С кетаем не посоревнуешься, работать на кого-то - дворники и то больше получают. Добро пожаловать на днище, в мир Embedded!
>минимальный низкоуровневый кодинг на уровне регистров
Тебе никто не мешает низкоуровнево кодить на пердуине. Даже IDE переваривает это насилие.
Это да, но тот шизик в одном все же прав — нет нормальной отладки. Если собрался "низкоуровнево кодить", то отладка будет весьма полезна.
А для вката в схемотехенику что пердуино ИДЕ, что в машинных кодах писать, одинаково бесполезно будет.
Да я хз. Я этот модуль нашел из гайдов типа как с ардуины писать на sd карту. И да, для stm32 он подойдет?
Статья про то как детектировать клипинг тдашки - http://www.electroclub.info/invest/tda7294/clip-detector.htm
Алсо имеет ли место такая идея? Написано что скорость analogRead() всего 9000 раз в секунду. Но этого же наверное достаточно?
Batya здесь?
Держи маргалку для магнитиков, там спаять немножко нужно.
https://habr.com/post/435198/
Далее вопрос про, скажем так, физическое воплощение. У ЧипДип тот же esp8266 продается в нескольких вариантах которые относятся к Wi-Fi адапетрам
https://www.chipdip.ru/catalog-show/wireless-modules?gq=ESP8266
Который из них лучше выбрать? Или там особой разницы вообще нет? Покупать буду на алике, там дешевле выйдет.
Чипдип сразу нахуй, у них ассортимент застрял в 2015 году. Бери сразу devboard на Esp32, сразу потестишь все возможности, а там видно будет.
https://ru.aliexpress.com/item/ESP32-ESP-32-ESP32S-ESP-32S-CP2102-Wi-Fi-Bluetooth-Micro/32839706560.html
Супер, спасибо!
В финальных устройствах же dev плату не здорово использовать. Нашел еще такой вариант esp32 https://ru.aliexpress.com/store/product/ESP32-ESP-32S-WIFI-Bluetooth-Module-240MHz-Dual-Core-CPU-MCU-Wireless-Network-Board-ESP-WROOM/1817254_32905750373.html?spm=a2g0v.12010612.8148356.2.25f060a7ULmdsV
В итоге на dev чипе обкатываем концепты, на чипе по ссылке же реализуем финальные устройства. Верно мыслю?
>В финальных устройствах же dev плату не здорово использовать.
С одной стороны конешно да, но с другой - не везде компактность необходима, а в остальном с dev board ты за дополнительные 100 руб получаешь немало важных плюшек:
легкость пайки 2.54мм ног,
готовое стабилизированное питание,
емкостную и резисторную обвязку,
возможность установки в разъем для оперативной замены/перепрошивки в случае чего,
готовое подключение к usb компа для ввода текста или логгирования данных через ком-порт.
Здорова.
Кто нибудь итт встраивал ардуину куда-то или все так только мигали светодиодом?
Короче мне надо спроектировать корпус для ардуино нано, реле и барометра. Есть какие программы? Хочу это печатать на 3д принтере. При этом говно и палки не подойдут, так как это всё должно держаться крепко и не развалиться нахуй от перегрузки в 3g.
Корпус должен представлять из себя цилиндр, диаметром не более 4 см. И какой туда источник питания можно запихнуть? Кроновую батарейку?
А примерные координаты, куда полетит твой «барометр» полетит, можешь привести?
Я бы не на барометрическом взрывателе запилил, а на pixy 2 нейросетку обучил.
Помогите идентифицировать плату на картинке.
Сам толком не шарю, под продажу.
Все что удалось распознать и нагуглить:
https://www.dhgate.com/product/atmega128-avr-development-core-board-minimum/127706416.html
ATmega128 AVR Development Core Board Minimum System
Есть одна ардуина uno, к которой подключен температурный датчик TMP36. Датчик подключен к 5в и аналоговому порту, соответственно и при преобразовании аналога в цифру использую 5. Пока arduino подключена к компу с помощью usb - все норм, показывает температуру у меня в комнате. Как только подключаю в разъём питания, то показывает температуру, которая в три раза больше чем есть на самом деле. Где я мог объебаться?
Развести самому плату под готовый корпус никак?
>Хочу это печатать на 3д принтере.
Печатать корпуса на тридэ принтере - дурацкое занятие, слишком низкое качество.
А, не тот скриншот.
И чего там в итоге получилось? Поставили?
Из кассы достал? То что ты нагуглил - это Minimum System ATMega 128A она почетче твоей ATMega 128
Если сделать все на одной более маленькой плате, то будет намного прочнее. Логично? Все это можно спокойно разместить на плате 15х15 мм, а то и меньше.
Корпус хоть из бумаги склей и напихай внутрь чего-нибудь мягкого. Или возьми любую подходящую по размеру пластмассовую баночку. Это будет намного прочнее чем слоеный пластик от принтера. В качестве батарейки можно взять две штуки мелких литиевых CR1220 или CR1616.
Лол, проверь свой барометр, у него должно быть что-то типа INT... хотя стой, это же песочница. Парашютный стакан под ракету делаешь? Реле 5В масса, проще транзистор N-MOSFET логического уровня, типа 06N03. Tinkercad.com -> и делай свой стакан.
У меня корпуса из "слоеного пластика" проданы танцевальным группам, они в них прыгают и скачут, корпуса не разваливаются. Они битые, паленые уже начинкой, так как ни один раз сжигали их. Конструкционно напечатанный корпус имеет 75% прочности от литого, ИМХО. И то, если просто коробочка. Если форму задать рифленую, то и выше.
И ещё, встраивать ардуину - плохой тон. Правило простое - чем больше контактов на пути сигнала, тем ниже надежность. А дуина вообще макетная плата.
Молодец, только подобный корпус из бумаги все равно будет лучше выдерживать падение. Или можно просто из пеноплекса вырезать цилиндрик. И еще без всяких принтеров несложно сделать такой корпус из стеклопластика. Ну и нафиг 3Д принтеры для таких вещей?
>>52724
>чем больше контактов на пути сигнала, тем ниже надежность.
Если бы дело было только в этом, то можно было бы просто припаять.
А проще взять баночку из под плёнки, две. Или цилиндр пластиковый любой другой. Просто взять катушку пластика и нарисовать цилиндр нужной формы, а не пилить его из чего-то - проще. Но заменяет одни навыки другими.
>Если бы дело было только в этом, то можно было бы просто припаять.
Так дело не только в этом, дело в том, что дуина перебор по параметрам очень часто. Для считывания аналогового сигнала с барометра, а потом принятия решения о включении парашюта - достаточно и ATTiny13-45-85. Либо вообще компаратор и резистор, и никаких ISP, МК и резисторов на подтяжку RESET.
Но тут же песочница, хватит о высоком.
>Просто взять катушку пластика и нарисовать цилиндр нужной формы, а не пилить его из чего-то - проще.
Сомнительно. Тем более что для начала нужно купить сам принтер, потратить кучу времени и ради чего? Ладно еще всякие игрушки печатать, но для корпусов польза мизерная.
>>52731
>перебор по параметрам очень часто.
Про избыточность бессмысленно писать, если только про цену. К примеру, ATSAMD09C13A-SSUT и ATTINY20-XUR стоят примерно одинаково. Но для разовых
самоделок это тоже не важно.
>ATTiny13-45-85
Так это и есть ардуина.
>Либо вообще компаратор и резистор
Как мне кажется, оно должно срабатывать не на заданной высоте, а когда ракета начнет падать. Поэтому просто срабатывание по уровню сигнала не подойдет. Самое главное, наиболее популярные и дешевые барометры не имеют аналогового выхода, только I2C. Также этот анон вроде как хотел записывать показания барометра.
>Если сделать все на одной более маленькой плате
>>52724
Кажется "корпус" имеет в вашем контексте какое-то строго определенное значение и не такое, какое я подразумеваю.
Этот >>52722 прав. Нужно сделать отсек для электроники, то есть ардуино нано, барометр, реле, батарея. Отсек это цилиндр, диаметром не более 4 см и высотой не более 10. Под ним бустер, над ним - обтекатель с парашютом. Задача простая, закрепить все это внутри, чтобы оно пережило полет. Учитывая, что ускоритель у меня на сорбитовой карамели и форма шашки - цилиндр с цилндрическим каналом, тяговоруженность там может быть от 5 и выше.
Собственно вопрос: из чего лучше сделать отсек и как крепить? Крепить так, чтобы потом это можно было вытащить
Просто выкини ардуину и сделай маленькую плату без ничего лишнего. Особенно реле это здоровое замени небольшим транзистором.
>сделай маленькую плату без ничего лишнего
Научишь? Реле вообще должно включать электроспичку. Сомневаюсь, что транзистор выдержит такой ток
Как ты себе это представляешь? Ну посмотри видео на ютубе, почитай руководства к САПР-ам. Почитай соответствующий тред https://2ch.hk/ra/res/107196.html (М)
>Сомневаюсь, что транзистор выдержит такой ток
Спокойно выдержит. IRFTS8342TRPBF на 8 А, корпус 3х3 мм. В корпусе TO-220 уже до десятков ампер.
Ну есть разные варианты.
1. Прикрутить винтом с гайкой. Если сделаешь на одной маленькой плате, то хватит пары винтов.
2. Прикрутить саморезами.
3. Приклеить. Можно еще залить герметиком/эпоксидкой.
4. Закрепить в маленькой коробочке и крепить уже ее.
5. Завернуть во что-нибудь мягкое и просто засунуть в "отсек для электроники".
Ладно еще когда у тебя три довольно больших платы, соединенные проводами, действительно будут некоторые трудности. Но если плата меньше двух сантиметров то крепи ее как угодно. При чем тут вообще пердуина?
НЕ ОТВЕЧАЙТЕ ЕМУ, ЕТО ТЕРРОРИСТ, БОНБУ ДЕЛАЕТ!!!1
>1. Прикрутить винтом с гайкой. Если сделаешь на одной маленькой плате, то хватит пары винтов.
>2. Прикрутить саморезами.
Снаружи цилиндра ничего не должно торчать, очевидно же.
>3. Приклеить. Можно еще залить герметиком/эпоксидкой.
Тогда это не вытащить
>4. Закрепить в маленькой коробочке и крепить уже ее.
Хм
>5. Завернуть во что-нибудь мягкое и просто засунуть в "отсек для электроники".
Ебанет
>Ладно еще когда у тебя три довольно больших платы, соединенные проводами, действительно будут некоторые трудности
Да. Я не умею в теорию цепей, зато умею в програмирование.
>Тогда это не вытащить
Бери винты с потайной головкой.
>Ебанет
Ошибаешься. Нормальная плата вместе с батарейкой будет намного меньше твоего отсека. Или можно сделать круглую плату, в соответствии с диаметром твоего отсека. Плату тогда засовываешь между двумя прокладками из пенопласта.
Микроконтроллер в корпусе 14-TSSOP на плате займет 7х7 мм, транзистор 3х3 мм, несколько резисторов и конденсаторов в корпусе 0603 по 2,5х1,5 мм, сам барометр 4х4 мм. Это совсем маленькая фигнюшка получается. Хоть в колпачок от фломастера влезет вместе с батарейками.
На пустом месте проблемы придумываешь. Ладно бы еще о центре тяжести беспокоился, а так вообще не понимаю твоих проблем.
В Attiny85 влезает простой алгоритм и сам I2C. Attiny и иже с ними не дуина, бутлоадер не используется по-умолчанию.
>>52746
Электроспичка включается и при токе 1А, главное пороху добавить и "спираль" достаточную. У меня 06N03 справляется и поэтому пишу все про них. Гораздо важнее какая батарея и куда ты ее всунешь. Ли-по хоть и дают 10-20 своих объемов на раз, все равно для спички нужен минимум 1А.
Подойдет для этих целей ардуино и какой-нибудь датчик влажности (какой именно?). Что еще нужно для сбора этой штуки?
Самое тупое - погугли волосяной гигрометр, стрелкой которого включать-выключать оптический датчик (оптопара открытого типа) включающая мощное реле вентилятора.
Просто, тупо, не зависнет, родная аналоговая система с визуальным контролем.
Осторожно, реклама https://www.youtube.com/watch?v=ml9D4_NreN0
Si7021 + Atmega8 + SSD1306 (128x16 точек OLED) + MOSFET + Релюха. Всё это есть в модулях.
Ты на три килограмма расписал модулей. Вот как выглядит датчик влажности по модбасу передающий данные на ЦП. На копеечной стм8
Куда ты в песочницу со своими говнодавами залез? Вот тебе датчик, вот тебе экранчик.
Дуинщики обычно, когда вентиль делают на 220В, то питание делают херово и дуины горят, он об этом. Обычно 5В источника для заряда сотового хватает, но я бы поставил предохранитель.
Может кто подсказать програму типа пикрелейт для дрыганбя всеми ногами FT2232H?
СЛОЖНА. Хотя там смещениеX и смещениеY на выходе, почитай http://media.digikey.com/PDF/Data Sheets/Avago PDFs/ADNS-3090.pdf думаю остальные примерно такие же. А можно по пикселям считывать и будет у тебя камера.
Дораха же.
Обыкновенный SPI, все команды расписаны, что сложного то? Или можно взять сразу с PS/2 выходом, будет универсальнее.
Какие нафиг гайды для такого?
Кроме сенсора нужна еще линза. Так что проще из ненужной мыши добыть.
>>52970
Качаешь даташит на сенсор, если он не нонейм. Изучаешь. Пишешь свой код. Какие проблемы?
>Почему я не могу найти в сети гайды по подключению мышиных сенсоров к ардуинам?
Почему я нашел за 5 секунд в гугле? Вангую, ты просто безнадежный дегенерат из поколения 00х.
https://hackteria.org/wiki/Hacked_Optical_Mouse
Да нигде не любят быдланов "в интернете мне все должны принести на блюдечке, а то я до гугла не дотягиваюсь", просто тут не стесняются об этом сказать.
Нужно собрать устройство. До этого делал только аналоговые. Суть в чём. Должно быть условно три режима работы.
В первом режиме. Стартовый сигнал будет давать отдельный таймер (использую его что бы по ходу дела можно было без ноута сразу поменять интервал срабатывания) По сигналу должен провернуться шагоход на заданный градус и сработать одно реле на заданное время. Ещё одно реле должно быть постоянно включено.
Во втором режиме. Всё тоже самое, только вместо таймера будет геркон (надо ли делать подавление дребезга или для ардуины не критично?)
В третьем режиме должно быть два источника сигнала. Первое, по срабатыванию таймера срабатывает одно реле на заданное время и отключается то реле которое в первом этапе было включено. А по сигналу геркона срабатывает шаговый двигатель и после его срабатывание снова включается реле которое отключилось и ждёт следующего сигнала таймера.
Работать всё должно в бесконечном цикле. Переключаться между режимами буду галетником, просто меняя источники сигнала.
Это вообще реализуемо? И если да, то на сколько сложно. Подскажите. Может можно из каких то готовых кусков скетчей собрать.
Да, реализуемо на самом базовом (школьном) уровне. Работа с герконами, реле и задержками таймера не требует какой-то внешней библиотеки, она понадобится только для работы с шаговым двигателем. Подавление дребезга тоже реализуется программно простейшими приемами.
Да, уже прочёл что можно просто задержку выставив. Про релейный блок вроде разобрался. Можно про шаговик поподробнее? И можно ли вместо ардуинного блока просто реле взять обычные?
>аналогично запускающее интеррупт
Так не стоит делать. Не знаю как в пердуинах, но во многих микроконтроллерах в таймерах есть режим захвата. Советую почитать про это.
Проблема в том, что во многих микроконтроллерах (уточни как это в пердуине) вход в прерывание может осуществляться за разное количество тактов, в зависимости от того какие инструкции выполнялась на момент вызова прерывания.
Ставишь ЛАЗОР красненький, в качестве приёмника фототранзистор или фоторезистор, но тогда надо на вход компаратора AIN0 подавать напряжение фоторезистора. По прерыванию AIN_comp получаешь всё остальное. Семисегментник нафиг, ставь SPI матрицу монохромную, рекомендую. Меньше жрёт, диапазон температур достаточен.
>>53076
Правду пишешь, но период достаточно небольшой и можно крутиться в ожидании, а не выполнять что-то. Как расчет готов - отдать данные и снова только ждать прерывания.
Пороховые газы всё усложняют.
Для пневмы то было бы просо - фотодиод/фототранзистор, подтягиваешь резюком 200-400ком к плюсу и к входу прерывания. Фоторезисторы ни в коем случае, они слишком медленные. Фототранзисторы тоже не очень быстрые, на огнестрельных скоростях пулю могут и не заметить.
Для огнестрельного тебе надо собирать рамочный (2 вряда фотодатчиков) чтобы могло работать вдали от оружия. Т.е. надо точно рассчитать большую рамку так, чтобы пуля пролетая гарантированно один из датчиков затемняла.
Ну или бичевский вариант - датчики пробивные из двух листов фольги. Каждый выстрел - менять
>На Ютубе один чел сказал, что поскольку ток протекает от положительного заряда к отрицательному, то резистор нужно ставить через анод диода
Тоже смотришь канал Густава Кирхгофа?
Абсолютно без разницы ежжи. Ток-то один, что после резистора, что до.
Однохуйственно вообще.
GND ---|<|---- /\/\/\/----- +V делают только потому, чтобы проще было напругу на диоде измерять (относительно GND), если надо, а так же меньше проводов вести, если диоды от резюков отдельно.
Как добавить в крайний релиз ардуино идэ 13тиньку?
Положил в папку хардваре тини13 мастер, и хоть бы что.
С другими версиями ядра тиньки все ок, только 13 нет...
Попробуй вывести значения i после while. вероятно после serial.read .available = 0 становится. Ну или в буфере для чтения 1 байт доступен каждую итерацию главного лупа.
Нафиг тебе ардуина, тем более для микроконтроллера с такой маленькой памятью? Бери gcc, make и вперед.
Нет твою:3 спасибо!
Зависит от ситуации. Если отвечать в общем - любое значение, которое окажется в памяти после запуска системы.
GCC вроде при старте/перезагрузке обнуляет всю память и будет значение 0. Если сам быдлокодишь на асме - при первом запуске будет что угодно, после программной перезагрузки МК - останется старое значение, которое было до перезагрузки (если ты не эстет, который при старте инициализирует переменные).
Мониторить очень просто - смотришь map файл - по каким адресам какие переменные живут, далее View->Memory (Alt+4), выбираешь Data memory, переходишь на нужный адрес и видишь значение и своей переменной, и соседних тоже.
>всегда 0 же
Что-то мне подсказывает, что ты пиздишь. При объявлении переменной, просто выделяется участок памяти, а какое в нем значение, знает только Б-г волшебного дыма. А вот когда ты присваиваешь значение, тогда и записывается оное в память.
Все современные компиляторы обнуляют выделенный участок памяти на всякий пожарный.
ВСЕ КОМПИЛЯТОРЫ ОБНУЛЯЮТ ТИП ПРИ ОБЪЯВЛЕНИИ. ВСЕ. Фуф, когда ж вы документацию читать начнёте? Это только eeprom остаётся тем, чем был.
Ну ладно. Просто по старым книгам помню, что везде рекомендовали явно присваивать значение объявленной переменной, дабы потом не бегать с горящей сракой в поисках ошибки.
Ага, особенно для локальных переменных, на стеке.
А чо такого то? Проблемы тут могут быть только динамическими переменными, которые объявляешь через malloc/new, вот они не инициализируются сами.
Есть два стула ноутбука
На одном пики точеныардуино иде 1.8.8 на другом хуи дроченытоже самое
Так вот, при компиляции одного и того же скетча, на одно м всё ок, на другом рандомные баги..
В чём суть?
Посоветуете чего-нибудь?
Я уже все литании Омнисси прочёл!
IDE-одинаковые.
Library-одинаковые.
Скетчи-одинаковые.
Файл с core для платы attiny13/85 одинаковые....
Решено, отписал в личку)))
иде не мог найти avr/power.h, при том, что он был в парке плат. Решилось, как не странно, выключением.... вы готовы?!... Касперского!
>2к19
>Не иметь барского сапога в жоппке.
Ну я же не террорист, а логи каспера показывают мою лояльность любимому правительству:3
>RS триггер используй и транзистор КТ972 ака BD681
Пиздец детвора ебанулась. Для этой хуйни достаточно только кнопки с нормально замкнутыми контактами, кнопки с нормально разомкнутыми и самого реле. Всё. Никаких триггеров, транзисторов, Ардуин, комплюхтеров.
Пиздец какой-то.
А вдрух, Никитишна, у него не 220В кнопука? Ишь ты какая, чуть что сразу детвору к высокому напряжению приучать. Пущай сначала низкое освоят.
>для вкатывальщика
В Ардуинодаунство? Дык загугли. На тему этого говна исписали пачек 200 бумаги "Снегурочка"
Ничо, Дармидонтовна, ёбнеть разок, научится культяпки свои не совать куда не следывает. Да.
Я хуй его знает, в ньюфаготреде есть список книг небольшой.
Как вообще, норм тема, школота еще интересуется?
Тебе уже и схему дали, внучок, ты только туды 24Вольта и подключай, вместить 220В.
854x480, 0:43
Если логику тестить - выбираешь AVR Simulator, задаешь частоту и в верхней левой части, где регистры и состояние ядра - будет число системных тиков и время.
Если в реальной системе - максимальный делитель для 16 битного таймера и считаешь число переполнений. Раскочегарив мегу8 на внешнем кварце 16МГц, с делителем 1024 и таймере 1 - переполнение будет каждые 1024 умножить 65536 = 67 108 864 тактов, что при 16 МГц дает время переполнения около 67.1 делить 16 = 4.19с
1. Смотришь ток потребления каждого реле
2. Смотришь ток потребление уно
3. Складываешь все вместе
4. Ищешь dc-dc, рассчитанное на такой ток, а можешь тупо взять на 2A. Например, на https://www.aliexpress.com/item/10PCS-Mini360-DC-DC-Buck-Converter-Step-Down-Module-4-75V-23V-to-1V-17V-17x11x3/32386849989.html
5. Настраиваешь чтоб он выдавал 5в
6. ?????
7. Профит
Блядь, научись составлять ТЗ, тебе надо "безопасную" педаль чтоли? Да, конечно реализуемо, а мы с Никитишной тебе упрощали задачу, а ты хотел совсем другого.
Нет, конечно.
На 2 ампера?
Регулятор от 5 реле одновременно сдохнет.
http://microsin.net/programming/avr/atmega32-16-bit-timer-counter1.html
"Normal Mode. Самый простой режим работы это режим Normal (WGM13:0 = 0). В этом режиме счетчик всегда считает вверх (инкрементируется), и очистка счетчика не происходит. Счетчик просто переваливает через свое максимальное 16-битное значение (MAX = 0xFFFF), и затем перезапускает счет со значения BOTTOM (0x0000). В режиме Normal флаг переполнения Timer/Counter Overflow Flag (TOV1) установится на том же самом тайте таймера, на котором регистр счетчика TCNT1 станет нулем. В этом случае флаг TOV1 ведет себя наподобие 17-го бита счетчика, кроме случаев, если он только установлен и после этого не очищен. Однако в комбинации с использованием прерывания переполнения таймера флаг TOV1 будет автоматически очищаться, и аппаратная разрешающая способность таймера может быть увеличена программно. В режиме Normal нет никаких специальных случаев, требующих учета, новое значение счетчика может быть записано в любой момент времени."
Кури даташит.
Заебся ждать симуляцию, тут делитель=1(001), а не 1024(101).
После запуска МК, очистки памяти и прочей херни ядро совершило 4655 тактов или 290 микросекунд. После запуска быдлокода первый раз вывалился в прерывание на 70216 такте или 4388 микросекунд после запуска, следующий раз вывалился в прерывание на 135752 такте или 8484 микросекунды.
>>> 8484-4388 = 4096
>>> 4388-290 = 4098
Вываливаюсь в прерывание каждые 4096 микросекунд, или же
>>> 135752-70216 = 65536
>>> 70216-4655 = 65561
каждые 65К тиков таймера.
Хорош траллить. Вдруг ему нужны 2 дополнительных анала АЦП, которых нет в DIP корпусе?
Не мне, а животному. Это хуйня для автоматической регистрации поведения и выдачи награды за правильное.
да хуй его знает, не подумал. в корпус самолёта 1/48 поместица и ктфп. возможно, что закажу дип.
ATMEGA8-16PU и ATMEGA8A-PU
На примере говнокода разобрался как считать время?
> и 4 моторчика для пропеллеров
Ололо. Надеюсь они постановочные и не будут включаться на полную мощность для полета-перемещения макета?
Думаешь увидят наличие логов, поверхам пошарят и успокоятся? Ну а что, чомубы и не
Мейлчую диаграмму состояний.
>этот пацанячий вскукарек
А хули ты так раскудахтался, петушок?
Как можно обнулить тип, манюнь?
Ты лучше анус себе обнули, хуесос, а то слишком много раз тебе его отъебали, лол, нагноение пошло. pidoras353369->anus->ebali_count = 0; ебана.
>>53358
>>53367
Все так, пиздит он. Единственный случай - если у тебя переменные в глобальной области видимости. Насколько я помню, по стандарту память под такие переменные обнуляется всегда. Естественно, это не касается динамической памяти, выделяемой в конструкторах таких глобальных объектов.
>память под такие переменные обнуляется всегда.
Нет такого в стандарте. На практике секция .bss обычно заполняется нулями, но можно и обнулять. Кроме того обычно не обнуляются и локальные переменные.
Я не мучаю. Я научный сотрудник так то. И за правильные ответы зверюшка получает вкусную еду, а за неправильные ничего не получает. Мы не используем отрицательное подкрепление, так как оно неэффективно, так что никакой анальной электростимуляции не проводим.
Есть такое в стандарте, зенки-то раскрой пошире.
Какая еще секция .bss, тут стандарт С++, нахуй.
https://github.com/cplusplus/draft/raw/master/papers/n4791.pdf
6.8.3.2.2
>Constant initialization is performed if a variable or temporary object with static or thread storage duration is
initialized by a constant initializer (7.7) for the entity. If constant initialization is not performed, a variable
with static storage duration (6.6.4.1) or thread storage duration (6.6.4.2) is zero-initialized (9.3).
Дано:
строка со спецсимволами Напрмер "AT\r\nOK\r\n"
Задача:
вывести её вместе со спецсимволами, а не применяя их
Т.е. должно быть не:
AT
OK
А:
"AT\r\nOK\r\n"
Лососни тунца, компилятор обнулят данные, если они не были явно объявлены при создании - это стандарт. А если были объявлены, то там это значение и будет.
>>53580
Ты там ебанулся или просто нуфаг? \r\n так и отображается как ПЕРЕВОД КАРЕТКИ и ВОЗВРАТ СТРОКИ, тебе надо терминал включить в отображение символов как HEX строку, иначе так и будет , как ты показал.
>не будут включаться на полную мощность для полета
конечно нет.
>На примере говнокода разобрался как считать время?
да, читаю...
>это стандарт
Стандарт ебли в сраку твоей мамаши разве что.
>не были явно объявлены
>если были объявлены, то там это значение и будет
А если это инстанс класса с конструктором? Тада чо будит?
По этому твоему вскукареку вообще очевидно, что ты стандарт С++ и не открывал, и имеешь о нем крайне поверхностное представление. Вангую, ты просто путаешь definition, declaration, zero-, value-, default-initialization, storage durations, и еще дохуя всего на полстраницы перечисления, ну как обычный байтоеб.
Ну-ка приведи-ка мне пример переменной, объявленной неявно, долбик.
>Ты там ебанулся или просто нуфаг? \r\n так и отображается как ПЕРЕВОД КАРЕТКИ и ВОЗВРАТ СТРОКИ, тебе надо терминал включить в отображение символов как HEX строку, иначе так и будет , как ты показал.
эээ
Ну короче. GPRS модуль на AT выдает:
AT
OK
Это записывается в символьный массив. А strcmp этого с "AT\r\nOK\r\n" не выдает 0. Хуй знает почему
>definition, declaration, zero-, value-, default-initialization, storage durations
Да он слов таких не знает, это же ардуино-тред.
выведи хексами, узнай шо там непечатного и уже потом сравнивай
>Ну-ка приведи-ка мне пример переменной, объявленной неявно, долбик.
>компилятор обнулят данные, если они не были явно объявлены при создании - это стандарт
Ты бы в словах не путался. Иди на хуй, толсто.
>>53635
Строка и вектор байт - одинаковые вещи, в терминале отображаются по разному. Например "AT\r\nOK\r\n" равно {#41,#54,#13,#10,#4F,#4B}, а отображается как ты и пишешь.
Кстати, многие модемы понимают не \r\n, а \n\r.
>Ну-ка приведи-ка мне пример переменной, объявленной неявно, долбик.
>компилятор обнулят данные, если они не были явно объявлены при создании - это стандарт
Ты бы в словах не путался. Иди на хуй, толсто.
>>53635
Строка и вектор байт - одинаковые вещи, в терминале отображаются по разному. Например "AT\r\nOK\r\n" равно {#41,#54,#13,#10,#4F,#4B,#13,#10}, а отображается как ты и пишешь.
Кстати, многие модемы понимают не \r\n, а \n\r.
фил лайк даин
Невермайнд, разобрался сам.
Сериал работает в разы медленне чем ардуина. Решилось добавлением задержки в секунду
Напишу, что эта дуина-хуина. В коде запись, которая заставляет ее ждать входящих данных, из которой код скорее всего вываливается по истечению задержки ожидания, как раз может быть секунду.
Лучше использовать опрос счетчика входящих байт, чем ждать байты постоянно.
Слелай вилки из штыревой гребенки и кусков макетки
Dupont wires
Сразу покупай набор на алике со всеми вариантами, т.е. male-male, female-female, male-female.
так и есть.
тогда вопрос. пишут что этот контроллер может работать на частотах до 20мгц. как?? фьюзы ему шить нельзя, тогда отвалится усб1,1. программно частоту менять нельзя. так как тогда?? как у него меняется частота выполнения программ?
Сравнил:
i == j; // UB [basic.indet]
Садись, два, неси дневничок.
Если не знаешь, что такое UB, или как найти главу, на которую я ссылаюсь, ты остаешься на второй год и отправляешься в специнтернат для ниишников-байтоебов.
>фффыфыппфффуффф
Ща жопу подниму с твоего ебла, повторишь, как ты рад, что господин выебал твое гнилое очко и очко твоей мамаши-блядины. И подмоешься заодно сбегаешь.
Дуина же С++
Сделай опрос доступных байтов. И отправляй сообщения фиксированной длины всегда. Как заполнится - читаешь и передаешь дальше по коду. Задержкой такое решать это тупо
Как поставить на ардуино уно рЗ игры от коммодора64?
ардуина слушает сериал постоянно
пришел первый байт "А" - она тут же его высрала в консоль, не дожидаясь второго, тут понятно.
пришел второй байт "Т" - вот тут непонятно. Доступно 2 байта пишет, но в консоли оказался "Т".
Сделай вывод по номеру байта из bufferPC[0] и bufferPC[1] чтобы понять, где "Т" сидит-то.
А вообще, не делай serial.read() пока буффер не заполнится целиком или до нужной тебе длины, означающей, что сообщение пришло целиком (придется всегда фиксированной длины сообщения посылать). И только уже после этого делай read().
Эти проводочки не подходят для постоянного подключения. Неужели нет нормальных разъемов "папа" для подключения? Или может можно как-то выпаять существующие разъемы с платы и подпаять свои датчики напрямую?
Не надо выпаивать, на обратной стороне пердуины видны контактные отверстия, занятые штырьками разъемов. Вот к ним и подпаивайся без задней мысли.
О збс, бате покажу, а то у него там дерево уже вместо пяток
>>53184
>>53581
Нет, в том-то и дело, что он ничего такого тебе не должен, в этих обменах байтиками гораздо больше ебли, чем кажется.
Добро пожаловать в чудесный мир ЕМБЕДДЕД-байтоебства!
Скажи спасибо, что оно хоть не теряет байты и не виснет, а то такое тоже бывает пользуясь случаем, передаю горячий привет ESP8266
Поскольку байты от модуля приходят постепенно (а не как ты надеялся - единым сообщением), нужно городить что-то вот такое, например: https://pastebin.com/eiKREk4w Оно опрашивает порт до тех пор, пока он не будет молчать >50мс, и возвращает строку со всем, что начиталось.
В качестве упражнения - переделать эту функцию под символьный буфер вместо строки для более эффективного и управляемого использования ресурсов. Можешь еще поиграться с ожиданием в ветке else, подобрать интервал под свой модуль, ждать более короткими интервалами в цикле и сразу делать continue, как только пришел символ, и т.п.
У него во 2 цикле пришло 2 байта, но отобразился только 1 в консоль в результате.
Не понятно, куда девался первый байт?
Ощущение, что у него было так
в буфер serial пришло А, available 1
он сделал .read() - A из буфера удалили, available обнулили
во второй раз у него пришел второй байт в буфер serial, available 2
он сделал .read() 2 раза - видно, что 2 раза исполнялось оно. А в результате в переменную под строку записался только T.
Он может и сделает как надо, но надо же блять разобраться, почему хуедуина пиздит про 2 байта авайлябле во втором цикле, а на деле там один Т остался.
Он буфер начинает с нуля заполнять в каждом вызове loop().
В первый вызов пришло "A", а во второй - "T\r".
В каком веке вы, блядь, живете? Как можно в 2к19-ом дебажить принтами? Это верх унижения.
Ссу на вас со своей F103
По I2C?
SWIM
jtag
Не знаю, о чем ты, но я наслышан про i2cпроблемы в этих контроллерах.
Это, впрочем, не перечеркивает их остальные неоспоримые достоинства перед пердуиной.
In file included from sketch\ultralcd.cpp:96:0:
sketch\ultralcd_impl_DOGM.h:46:20: fatal error: U8glib.h: No such file or directory
compilation terminated.
exit status 1
Ошибка компиляции для платы Sanguino.
Этот отчёт будет иметь больше информации с
включенной опцией Файл -> Настройки ->
"Показать подробный вывод во время компиляции"
Делал по этому гайду https://3dtoday.ru/blogs/qzer0/marlin-firmware-119-for-wanhao-duplicator-i3-21/
Смысл педулить ардуину без периферии?
Дешевый планшет на винде и х86 не думал купить?
Туда прям десктопную пердуину наверняка можно установить без пердолинга.
Я так понимаю, что там внутри таймер и делитель, таймер работает на максимальной частоте, а дальше она делится например в джва / четыре / восемь раз. Плюс, там есть регистр, который позволяет откалибровать таймер и наверное можно его откалибровать по частоте USB.
http://codeandlife.com/2012/02/22/v-usb-with-attiny45-attiny85-without-a-crystal/
https://www.obdev.at/products/vusb/index.html
Всё было бы прекрасно, но смотрю я на все гайды по ардуинке и там MISO и MOSI - разные провода, а у хуйни(датчика) есть только digital input/output. Попытка не пытка, подумал я и вхуярил MISO и MOSI на DI/O. Ардуина стабильно читает 255, т.е., как я понял, датчик все время шлет единицу, даже если я отрубаю MOSI.
Вопрос к знатокам: как правильно подключать к ардуине датчик с 3 SPI проводами.
Для совсем охуенных ребят дополнительный вопрос: а можно ли на nano захуярить сразу несколько слейвов, т.е. задать несколько SS. Знаю что такая хуйня есть на Due, но может кто-то писал свою библиотеку, чтобы была такая возможность?
почему?
Дано: ардуина на 328 атмеге и одноцилиндровый, двухтактный ДВС, который крутится до 9000 оборотов в минуту (150 об/с). Обороты снимает датчик Холла (с обвязкой), далее контроллер даёт сигнал на ключ, длительность которого зависит от положения потенциометра (или проще поставить энкодер?), который поворачивается вместе с заслонкой карбюратора. По внешнему сигналу цикл должен прерываться (не критично по времени выполнения).
Я прочитал, что это надо делать через attachInterrupt(), но у меня нет никаких идей (после прочтения оф. документации), как должен работать мой код. Объясните в двух словах.
>fatal error: U8glib.h: No such file or directory
нет нужной библиотеки
на вскидку - проверь, чтобы не было рюске букв в путях установки всего этого барахла
вероятно, еще нужна спец версия ардуино иде, которую надо бы скачать вместе с прошивкой
Задача не для новичка.
Изучай, как подключаются внешние прерывания, как управлять и читать инфу с портов без задержек и с нормальной скоростью.
Тебе так же потребуется задавать прерывания и обработчики прерывания по значению таймера-счетчика, чтобы задавать угол опережения, длительность сигнала на драйвер ключа зажигания.
Т.е. внешнее прерывание с датчика положения коленчатого вала обнуляет таймер-счетчик, затем задает значение таймера-счетчика, при котором сработает еще одно прерывание, которое подаст сигнал на драйвер ключа, а так же значение таймера-счетчика, пот котором этот сигнал снимется. Это если задумаешь опережение вычислять чтобы мощу поднять/экономичность, исходя из температуры движка, дпдз, датчика детонации и т.п. Если по тупому, то таймер не нужен, сразу вкл/выкд ключ по сигналу с внешнего прерывания.
Пока опустим что однозначно соснешь с пердуино иде, пока не пересядешь на прямое управление регистрами на Си или Асме.
Это реальный проект? В курсе что от этой штуки могут зависеть чьи-то жизни? Готов за них отвечать?
Нарисуй для тупых диаграммки сигналов - что когда и в каком виде.
Если даже брать 150 Герц (или даже 300) в секунду - условно должно быть много времени на тупняк, в FreeRTOS кванты по миллисекунде идут.
9000 об/мин - это какой-то мелкий самолетный движок
Читаешь импульсы обормотов в секунду, по ним управляешь заслонкой, у которой лучше поставить энкодер с датчиком нуля, но это жирно, ставь датчик Холла-положения. Да, они есть "цифровые" - "0" и "1", а есть "аналоговые" - от минимума до максимума. Но проще переменный резистор на 10кОм. Не забудь усреднять показания АЦП, иначе болтанка тебе обеспечена. Далее, ставишь заслонку на "стартовое" значение, это должно быть процентов 20-25, чтобы движок стартанул и после наращивания оборотов понижаешь уровень дросселя до холостых. После чего регулируешь.
Мне удавалось прерыванием фиксировать до 72000+ импульсов в секунду, это байтоебство, но реально.
Пожалуйста, говори то, что я не знаю.
На ардуине MISO MOSI, на датчике DIO. Как это заставить работать вместе? Как уже писал, просто прихуярить MISO и MOSI к DIO нихуя не дало, датчик дает все биты единицами. В интернетике ответов на эту тему до скудного мало, видел только одну схему предпочтительного подключения для одного датчика, где использовался резистор в линии MOSI -> DIO
>>54232
Подключен, SPI.h, по идее его автоматом конфигурирует по пину, который зависит от устройства.
Есть ли возможность параллельного выполнения части скетча вместе с основной частью? Поясняю: то же мигание светодиода обеспечено задержками в коде и пока есть задержка, код ниже не выполняется. Есть ли возможность сделать так, чтобы условный светодиод мигал, т.е. часть скетча с функцией delay выполнялась отдельно, а основной код (например движение сервопривода) отдельно, чтобы не ждать условной паузы в 1 секунду перед окончанием цикла мигания и началом выполнения кода для сервопривода?
По идее. А на самом деле как? А?
Пример из жизни, у меня масса приемопередатчиков nRF24L01+. То я их не мог заставить на передачу работать, теперь кучка не хочет работать на прием. Файл-драйвер один и тот же, подключение описано как должно. И все равно, нет связи.
Переходи на другой IDE и используй таймера и прерывания. Будет все работать параллельно. Если не хочешь, то есть вариант такой, что из условного мигания светодиодом ты просто вычитаешь время на работу сервы.
Прерывание по таймеру тебе надо.
А если серва, и светодиод, и еще что-то там вдруг будет, то вообще пиши планировщик задач и квантуй время выполнения задач так, чтобы всё друг с другом уживалось.
Понел, спасибо.
Полноценный ЭБУ я не осилю (мне и не не надо), проще взять за основу speeduino.
>>54335
Заслонкой рулить будет отдельная серва, которой управляет радиоаппаратура. Моя задача — заменить штатное магнето, чтобы облегчить конструкцию, немного руля длительностью зажигания и опережением.
Всё это совокупление из-за необходимости облегчить двигатель, чтобы поставить его в модельный самолёт.
Пример:
Твой таймер срабатывает 20 раз в секунду (20 Гц). Теперь ты делаешь так, чтобы с каждым срабатыванием таймера к числу в памяти прибавлялась единица. Когда число в памяти достигает четырёх, ты выдаешь на выходе импульс и обнуляешь число. Импульс на выходе будет подаваться 20 / 4 раза в секунду (5 герц).
Я мог накосячить с числами.
Там же писано - оно может работать только на таких=то фиксированных частотах
Can be clocked with 12 MHz, 15 MHz, 16 MHz 18 MHz or 20 MHz crystal or from a 12.8 MHz or 16.5 MHz internal RC oscillator.
Я так понял - на любые из этих шъешь, на них дальше и работаешь. Нужную частоту перед прошивом устанавливашь в дефайнах.
Вроде бы даже там автокалибровка усб есть. Типа "если говно какое-то - в проге-имитации убс 1.1 меняется делитель" или что-то такое, и так пока не начнется стабильное соединение.
то есть получается частота меняется софтварно? тогда понятно.
>то вообще пиши планировщик задач и квантуй время выполнения задач
Охуенный совет. Вчера весело помигал светодиодом, а сегодня какой-то блядь планировщик, какой-то квантовщик блядь. В адруино всегда метровый страпон в жопу вводят после легкой прелюдии?
Не надо о больном.
>>54454
>Чем отличается const int от просто int?
const int a = 100;
int b = 300;
a = 500; - cоснешь, неизменяемым переменным нельзя назначить значение, скорее всего даже код не скомпилится от такой наглости. В остальном - обычная переменная для сравнения с другими, записью в регистры и прочих непотребств.
b = 500; - сработает и значение b поменяется с 300 до 500
я в курсе, просто имею ввиду чистый С
Купить себе STM32F4Discovery и начать кодить под Mbed.
даже поиграться не выйдет, забей
Atmel AVR Studio или GNU AVRGCC
А завтра мы тебя научим ставить RTOS на ATMega128 !! Тут своя, особенная атмосфера!
Если серьезно, то с дуиной вроде никак. Надо другую IDE и там уже это доступно.
STM32 попробуй.
У них больше ресурсов, больше производительность, они стоят уже дешевле AVR, из инструментов для разработки и отладки тебе понадобится только программатор с алика за 150 рублей. И никакой ебли с аттинями с микрописечной памятью. Можешь купить для начала плату BluePill и программатор, и поиграться прямо в Arduino IDE, а потом уже на Eclipse переползать.
Книжек не подскажу, сорри, ибо сам официальную документацию читаю.
>>54414
>>54419
>>54453
https://www.teachmemicro.com/arduino-timer-interrupt-tutorial/
>никакой ебли с аттинями с микрописечной памятью
Ты там только светодиодами мигаешь, да?
Тинька 13А может работать на частотах 32 кГц-1 Мгц, при питании 1.8В, и потреблять при этом микроамперы. Да и при 9.6МГц и 5В потребляет лишь несколько мА. И в этом ее незаменимость. Можешь кукарекнуть про стм8, но это изначально срань с даташитами на китайском и без поддержки дурино-сообществом.
Нормальная тема, на которую всем похуй. Есть оптический приемник, у которого зависает Ethernet если после подачи питания нет линка в течении секунд 10 и соответственно по сети не виден, только руками по питанию передергивать чтобы ожил.
Кочегарится на самой маленькой частоте, говнокод мониторинга на асме. Можно было и NE555 впихнуть, но тинька дает больше просторов для творчества, сложнее вникать что и как и можно впилить ограничение времени работы перезагружалки, что и было в первых версиях этой хуйни в гондоне. По политическим причинам дальше успешно пройденных тестов не пошло. Так-то.
А почему ты такой злой? Твою любимую игрушку обоссали? Ну ты же все равно можешь продолжать ею играть, разве нет?
STM32L
Вообще-то васяны типа тебя суют эту аттини в любую хуйню, а далеко не только туда, где нужно потребление в 300 отсоси у стм32-программистов микроампер и невозможно спать.
Ну и 5 ма при 5В - это как-то дохуя при таких-то незаоблачных характеристиках, между прочим.
>даташиты у СТ микроэлектроникс на китайском
>наркоман ли он
Это скорее на шизу похоже. Или на олигофрению.
В любом случае, на умного человека он не похож.
>говорит, что у стм даташиты на китайском
>приебывается к картинкам с пепе
Ну а чего еще можно ожидать от неумного шизика.
Нет, не напарывался, и вряд ли теперь напорюсь, ибо в эррате же вполне однозначно написано, что оно тупо не работает. Вот я и буду юзать софтварный, а не ждать, пока его переклинит.
Мутный вопрос. Попробуй погуглить ПЛК Программируемый Логический Контроллер.
Еще глубже - ПИД регулятор.
не, это мне не по карману, я на ардуине это хочу делать. прост хочу посмотреть что в инете есть на это, чужие проекты, может есть такие которые можно настроить под мои нужды. может есть такие в которых ничего программировать не надо. я совершенно не умею программировать.
Аноны, реквестирую помощь. Собираю себе показометр небольшой в машину, хочу, чтобы температуру за бортом и напряжение в бортовой сети показывало. С температурой худо-бедно разобрался, показывает в пределах плюс-минус километр, а вот с напряжением совсем хуйня какая-то. Собрал делитель напряжения с номиналами резисторов 13.1 кОм и 5.5 кОм, подключил его к ардуине, снимаю показания с 5.5 кОм резистора ардуиной, а вычисляется неправильное напряжение. Мультиметром замеряю на том резисторе напряжение - показывает 3.67В, на акб, который сейчас стоит дома и от которго я все это питаю, 12.5В плюс-минус 1-2 десятки, а ардуина мне показывает, что на акб 14 с лишним вольт.
Не могу понять, что не так. Вот скетч, может кто-нибудь что-нибудь увидит.
#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define OLED_RESET 4
#define SCREEN_HEIGHT 64
#define SCREEN_WIDTH 128
Adafruit_SSD1306 display(OLED_RESET);
#define temperature A2
#define voltage A1
#define RT0 2700
#define B 3977
#define VCC 5
#define R 3300
float RT, VR, ln, TX, T0, VRT, U, U1, U2Raw, U2, R1, R2, Mod;
void setup() {
T0 = 20 + 273.15;
R1 = 13.07;
R2 = 5.5;
Mod = R1 / R2;
Serial.begin(9600);
display.begin(SSD1306_SWITCHCAPVCC, 0x3C); // initialize with the I2C addr 0x3D (for the 128x64)
display.display();
delay(2000);
display.clearDisplay();
pinMode(temperature, INPUT);
pinMode(voltage, INPUT);
}
void loop() {
U2Raw = analogRead (voltage);
U2 = map (U2Raw, 0, 1023, 0, 5);
U1 = U2 Mod;
U = U1 + U2;
VRT = analogRead(temperature); //Считываем аналоговое значение VRT
VRT = (5.00 / 1023.00) VRT; //Преобразуем в напряжение
VR = VCC - VRT;
RT = VRT / (VR / R); //Сопротивление RT
ln = log(RT / RT0);
TX = (1 / ((ln / B) + (1 / T0))); //Температура с термистора
TX = TX - 273.15;
display.clearDisplay();
display.setTextSize(1.5);
display.setTextColor(WHITE);
display.setCursor(0, 4);
display.println(TX);
display.setCursor(40, 4);
display.println("C");
display.setCursor(0, 15);
display.println(U);
display.setCursor(40, 15);
display.println("Volts");
display.display();
Serial.println(Mod);
delay(100);
}
Саму ардуину запитал от зарядника для телефона, который в прикуриватель вставляют, минус делителей напряжения и ардуины, соответственно общий, плюс на терморезистор беру с ардуины, а на "вольтметр" с самого акб.
Аноны, реквестирую помощь. Собираю себе показометр небольшой в машину, хочу, чтобы температуру за бортом и напряжение в бортовой сети показывало. С температурой худо-бедно разобрался, показывает в пределах плюс-минус километр, а вот с напряжением совсем хуйня какая-то. Собрал делитель напряжения с номиналами резисторов 13.1 кОм и 5.5 кОм, подключил его к ардуине, снимаю показания с 5.5 кОм резистора ардуиной, а вычисляется неправильное напряжение. Мультиметром замеряю на том резисторе напряжение - показывает 3.67В, на акб, который сейчас стоит дома и от которго я все это питаю, 12.5В плюс-минус 1-2 десятки, а ардуина мне показывает, что на акб 14 с лишним вольт.
Не могу понять, что не так. Вот скетч, может кто-нибудь что-нибудь увидит.
#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define OLED_RESET 4
#define SCREEN_HEIGHT 64
#define SCREEN_WIDTH 128
Adafruit_SSD1306 display(OLED_RESET);
#define temperature A2
#define voltage A1
#define RT0 2700
#define B 3977
#define VCC 5
#define R 3300
float RT, VR, ln, TX, T0, VRT, U, U1, U2Raw, U2, R1, R2, Mod;
void setup() {
T0 = 20 + 273.15;
R1 = 13.07;
R2 = 5.5;
Mod = R1 / R2;
Serial.begin(9600);
display.begin(SSD1306_SWITCHCAPVCC, 0x3C); // initialize with the I2C addr 0x3D (for the 128x64)
display.display();
delay(2000);
display.clearDisplay();
pinMode(temperature, INPUT);
pinMode(voltage, INPUT);
}
void loop() {
U2Raw = analogRead (voltage);
U2 = map (U2Raw, 0, 1023, 0, 5);
U1 = U2 Mod;
U = U1 + U2;
VRT = analogRead(temperature); //Считываем аналоговое значение VRT
VRT = (5.00 / 1023.00) VRT; //Преобразуем в напряжение
VR = VCC - VRT;
RT = VRT / (VR / R); //Сопротивление RT
ln = log(RT / RT0);
TX = (1 / ((ln / B) + (1 / T0))); //Температура с термистора
TX = TX - 273.15;
display.clearDisplay();
display.setTextSize(1.5);
display.setTextColor(WHITE);
display.setCursor(0, 4);
display.println(TX);
display.setCursor(40, 4);
display.println("C");
display.setCursor(0, 15);
display.println(U);
display.setCursor(40, 15);
display.println("Volts");
display.display();
Serial.println(Mod);
delay(100);
}
Саму ардуину запитал от зарядника для телефона, который в прикуриватель вставляют, минус делителей напряжения и ардуины, соответственно общий, плюс на терморезистор беру с ардуины, а на "вольтметр" с самого акб.
Вывел сейчас на экран показания U2Raw, получилось 883, а это 4.31В, хотя, опять же, на резисторе 3.67В. Ну какого хуя, анон?
Обратись к ближайшему ОПЫТНОМУ ПОЛЬЗОВАТЕЛЮ ПК.
У тебя на выводе VREF какое напряжение? При чем реальный замер.
Мне кажется что налажал с делителем и опорным напряжением, которое может быть или от внутреннего ИОН (не вижу настройки) или от VREF(внешний вывод).
Проверь настройки опорного напряжения.
Можно поподробнее про опорное напряжение? К выводу AREF вообще ничего не подключал.
Попробовал сейчас настройками поиграть, вот что вышло :
При analogReference (DEFAULT) вольтметр мне показал 6 с небольшим вольт.
При analogReference (EXTERNAL) он показал 16 вольт с чем-то и термометр сошел с ума, показав 200 градусов с лишним.
Что самое интересное, термометр-то адекватно работает. Тоже ведь, по-сути, простой делитель напряжения.
Посмотрел быдлокод - WTF?
Все проще же:
U2Raw = analogRead (voltage);
U = ((U2Raw умножить 5) делить (1024) ) делить (R2 делить (R1+R2)),
чуть сократим
(U2Raw умножить 0.0048828125) делить 0.2961
при U2Raw=883 получим 14.55 В - все верно, ошибки нет.
Проблема в делителе - взяв даже ряд Е192 (хуй где найдешь) - 5.5КОм нет, ближайшие 5.49 и 5.56, для говна Е24 - ближайший 5.6. Для 13.07 - или 13.00 или 13.2, для Е24 - 13КОм. Пересчитай делитель. Только учти - без ОУ - будет жопа.
Те например 15В делить 5 = 3 раза. (Те к примеру 5.1К и 10К) - для диапазона 15-10В на АЦП будет 5-3.33В, или же на 5вольт батарейки уходит всего 1.67В шкалы АЦП (всего треть шкалы АЦП или же 342 отчета, что дает в идеальном случае разрешение около 14мВ).
>>55507
Особая точность в делителе мне не нужна. Мне теперь уже интересно, почему ардуина полную чепуху выдает. Сейчас вот переписал по-новой всю свою поеботину. По-сути, получилось то же, что ты расписал. А ардуина, сука такая, выдает на экране значения от 6.8 до 7.3 Вольт. И вот с какого хуя - я не понимаю. Ладно, раньше она 13.4 выдавала, когда на аккумуляторе 12.4, но откуда 7 взялось - вообще проссать не могу.
Отлично. Потихоньку все проясняется. У тебя опорное напряжение 4.2В вместо 5. Давай считать:
При 12.5В - получаем... 904 отчета АЦП, что очень близко к 883.
Если же Vref 5В - тогда должно быть около 760 отчетов АЦП.
Так что смотри питание своей шарманки.. Однозначно тут косяк, о чем очень ярко говорит VREF. Ищи где просрал 0.8 Вольта.
В принципе же можно хуй на это забить, ввести коэффициент ебучести в формулу и им подогнать значение под требуемое?
С питанием там такая ебанина, шопиздец. К аккуме подключена зарядка для телефона, плюс зарядки идет на Vin ардуины, с +5V ардуины идет питание на термометр из терморезистора, плюс с аккумулятора идет на делитель напряжения, с которого я мечтаю получать напряжение бортовой сети. Минус зарядки вообще не задействован. Может в этом беда и стоит его на минус аккума кинуть?
Картинкой нарисуй и не забудь замеры напряжений в каждой точке.
>подключена зарядка для телефона, плюс зарядки идет на Vin ардуины
Чуть больше, чем уверен что с зарядки идет 5В, которые попав на диод и/или линейный стаб дают далеко не 5 вольт, а 4.2В.
>с +5V ардуины идет питание на термометр из терморезистора,
См выше - уверен там будет 4.2В, а не 5.
>Минус зарядки вообще не задействован.
Земли много не бывает. Лучше соедини.
Просто сам напиши программную реализацию spi. Хули ты, как не погромист
Вот такая канитель, в общем.
Попробовал землю всю соединить - ничего особо не изменилось. Значение, которое ардуина показывает всего на десятую долю вольта изменилось. Олсо, попробовал просто ардуину от зарядки запитать - напряжение на +5В пине было 4.23В. Чому такое может быть? подпалил ее?
Какой хороший наскальный рисунок.
Сам то заметил что на +5 у тебя +4.2?
Косяк в том что подаешь +5 на VIN (разрозненные места говорят что оно для напряжений 7-12вольт). Раз есть (условно)стабилизированные 5В - их и подаешь на вывод +5. На всякий случай чтобы LDO не стало плохо - поставь диод (вообще любое говно, хоть 4148) - анодом к +5, катодом к VIN (что бы сделать условно одинаковыми потенциалы входа и выхода LDO), хотя может он уже есть в схеме. Не перепутай подключение диода, а то при подаче напряжения на VIN оно пойдет через диод мимо стаба в схему и будет волшебный дым.
Благодарю анон, все починилось. Ебанул без диода, правда. Теперь пиздеж схемы в пределах 1-2 десятых вольта, а этого для меня достаточно.
>Какой хороший наскальный рисунок.
Ну я мог бы, конечно, красивее нарисовать, но ведь и этот не так уж и плох?
>все починилось.
Какой пиздец. You make me cry!
Рамка на фоне выдает что далеко не по ГОСТу нарисовал.
Определенно стоит добавить пачку супрессоров (TVS диодов), 12 вольт - бывает только в манямирке, в реале в машине можно словить иголки под сотню вольт. Не моя тема, не подскажу по защитам от перенапряжений.
Если совсем задротить - куришь третий вариант http://chipenable.ru/index.php/how-connection/157-masshtabirovanie-signala-operacionnim-usilitelem.html (или же в "анальные интерфейсы микроконтроллеров" Стюарт Болл), берешь ОУ типа MCP602 (или любой другой RailToRail) и растягиваешь анус поделенное напряжение батарейки через ОУ.
Копая еще глубже - линия 3.3вольта свободна(те меньше шумит, чем линия 5В с кучей нагрузок), можешь расковыряв схему подать 3.3В на AREF, и используя делитель на 5 получаешь диапазон от 2 до 3 вольт (при батарейке 10-15В), которые растянув через ОУ на 0.2-3.1В - получишь разрешение около 900 отчетов на 5В батарейки.
Настрой port forwarding на своем роутере на порт 80 (а лучше заморочься и подними https) га ip esp, все, открывай по ойпи своего роутера.
Сап парни. Появилось желание переделать беспроводной джойстик с 3 плойки на пеку. Через ардуинку реально или другие способы искать.
Программно можно, несколько лет как.
>зарегайся на no-ip.com
А если он за двойным NAT-ом и с серым ой-пи? Ты по инторнету ясновиденьем занимаешься?
Такая хуйня возможна? А если без отправки результата назад на ардуинку? Что гуглить?
Спасибо.
Зачем?! Чем не подходит обычная веб-камера?
Это помимо того что пердуинка не потянет вменяемое разрешение c вменяемой частотой кадров. Если пердуиной называть плату с атмегой, то без шансов. STM32 вместе с другими микроконтроллерными ARM-ами чуть лучше, но не намного.
>STM32 вместе с другими микроконтроллерными ARM-ами чуть лучше, но не намного.
Ващет у STM32F429 есть порт камеры и она вытянет ннбольшую обработку.
Интересней это все мобильным сделать. Но ладно, если не потянет поток тогда ладно.
Простейший, казалось бы, пример - подключить к ардуине энкодер из стартового набора. Есть канал A и канал B, они имеют общую точку, которая подкидывается на землю. Канал А на второй пин ардуины, В на третий через встроенные пуллапы. Подключаем интеррупт на канал А, в режиме CHANGE. Дальше по рисунку. Двигаемся в одну сторону - канал В меняет своё состояние раньше канала А. Когда изменяется состояние канала А, срабатывает прерывание, проверяем состояние канала В. Если оно такое же как у канала А, увеличиваем переменную. Двигаемся в другую сторону - канал А меняет своё состояние, а канал В ещё не успел - уменьшаем переменную.
НО ПОЧЕМУ СУКА НА ДЕЛЕ ПЕРЕМЕННАЯ ТОЛЬКО УМЕНЬШАЕТСЯ В КАКУЮ СТОРОНУ Я БЫ НИ ДВИГАЛ???
640х480 и 1 кадр в секунду через UART? Сильна пердуина. Эту же камеру намного эффективнее подключать через FTDI.
Есть обычные веб-камеры, есть специализированные с эзернетом. Есть платы захвата видео, хоть для аналогового сигнала, хоть для camera link. Но пердуинка то зачем?
Нахуя на прерываниях делать? Чтобы контроллер от каждого чиха бросал вычисления и обрабатывал поворот энкодера?
Учи батхерты, чтобы не быть мемом http://easyelectronics.ru/avr-uchebnyj-kurs-inkrementalnyj-enkoder.html
Ну вот по сути, о чём мы говорим сейчас. Я так и сделал, и даже до проблемы дребезга не дошёл. Событие if(second != first) не срабатывает, хотя в одну из сторон вращения оно обязано срабатывать, иначе просто быть не может. Ну то есть может, как мы видим.
Охуенно написано конечно.
"Нельзя блокировать прерывания... в обработчике"
"Зашли в обработчик... поставили таймер... вышли из обработчика"
За все время существования ардуины нито не придумал реализовать опенсурсный струйный принтер. Чтобы можно было по деталькам на алике купить или на 3д распечатать. Чтобы печатающие головки стоили копейки и принтер мозги не ебал на предмет заканчивающихся чернил. Ну и модульность реализовать заодно, типа печати на дисках или больших форматах бумаги.
Гуманитарий пытается, в общем, в понимание электроники.
Собственно, поясните первый пик - почему потенциометр находится уже за светодиодом, а не между выходным пином и другим резистором? Я схеме не поверил и собрал, как на втором пике и это работает.
>Чтобы печатающие головки стоили копейки
И чем ты дюзы будешь сверлить в домашних условиях?
Ардуина со своей медлительностью и тупостью только сможет морзянку успевать рисовать на ленте маркером.
Если ты таким образом пытаешься регулировать ток светодиода, то не принципиально где будет находиться потенциометр, ток на всех участках одинаков.
Хуесосить анона, просящего помощи - это же так по-двачерски, быть циником и социопатом так круто же.
Просто для таких дэбильных вопросов - есть ньюфажий тред выше.
GRBL и можно лазером на термобумаге жечь, либо головкой печатающей управлять.
Уж слишком досадно сгорела и недолго проработала, хочется восстановить.
>вменяемые схемы наны
А где ты нашел невменяемые? Там цепь питания невооруженным глазом прослеживается, чай не Cortex А53 с многофазным питанием на 45 ног.
Нуок, они вменяемые. Меня вот этот кусок смущает: вот от разъёма USB идёт на F1 которого нет, потом эта линия получает название "USBVCC" и больше нигде на схеме не встречается. Куда дальше смотреть, где искать?
Я пиздаболище, прилепил схему уны. Нашёл другую схему - там после разъёма идёт на диод. У меня после диода нет напряжения, сейчас пофиксим.
Махнул диод, завелась нана. Спасибо, двач-помогач!
https://www.youtube.com/watch?v=VYhAGnsnO7w
DDS гугли.
Ты видео досмотрел? Программатор стоит 100$+ и эти миркхи не перезаписываются. У тебя одна попытка залить прошивку, если какой-то баг или что-то поменять, выбрасывай и доставай новую из пакета.
Ну и язык учи какой там. Там какой-то модифицированный C
BT136 + MOC3031 + PC817 в качестве детектора перехода через ноль.
этой махарайки.
Автор, как и пологается русским Кулибиным, хранит тайну..
https://youtu.be/FhxVGseTwGQ
>использовать ардуино для считывания видео.
Сразу фиал. Нужно обрабатывать большой поток инфы и очень быстро, ардуинка соснет. Не занимайся пердолингом, используй готовые решения - IP-камеры, камеры для FPV.
Ну а если сильно любишь делать свои велосипеды с квадратными колесами - пили через малинку.
Подключить библиотеку toneAC. Все уже написано до нас.
Он же все объяснил. Там UART заведенный на D+ и D- USB разъема, это не USB хост. Дальше передача "ключа" из 9 символов и проверка наличия этого пакета в течении времени, как watchdog. Нет "ключа" - гаси махарайку. Все. Фактически, брутфорс на 9 символов она не выдержит, но пока распространения не получит такая система, то никто заморачиваться и не станет. Это почти сигналка с RFiD меткой.
Так что получается, такую пердуину нельзя подключить как кастомное usb-устройство? Ну, как pro micro / leonardo.
Берешь примеры использования UART, для двух устройств, где одно приёмник, а второе передатчик. И переделываешь под себя.
Проверил, что то ничего...
#include <Keyboard.h>
#define buttonPin 7 // Постоянно делает значение ButtonPin = 7.
#define buttonPin2 5 // Постоянно делает значение buttonPin2 = 5.
void setup() {
pinMode(buttonPin,INPUT); // Установка контактов в качестве входов.
pinMode(buttonPin2,INPUT);
Serial.begin(9600);
Keyboard.begin(); // Запустите функции клавиатуры
}
void loop() {
int buttonState = digitalRead(buttonPin); //прочитать состояние кнопки ввода
int buttonState2 = digitalRead(buttonPin2); //прочитать состояние кнопки ввода
if (buttonState == LOW) { //нажатие на кнопку выдаст LOW (НИЗКОЕ) состояние 0В
Serial.println(buttonState);
Keyboard.print ("Abu-nyasha"); //Укажите свой пароль здесь
delay (1000);
}
if (buttonState2 == LOW) { //нажатие на кнопку выдаст LOW (НИЗКОЕ) состояние 0В
Keyboard.print ("Abu-nyasha2"); //Укажите свой второй пароль здесь
delay (1000);
}
}
#include <Keyboard.h>
#define buttonPin 7 // Постоянно делает значение ButtonPin = 7.
#define buttonPin2 5 // Постоянно делает значение buttonPin2 = 5.
void setup() {
pinMode(buttonPin,INPUT); // Установка контактов в качестве входов.
pinMode(buttonPin2,INPUT);
Serial.begin(9600);
Keyboard.begin(); // Запустите функции клавиатуры
}
void loop() {
int buttonState = digitalRead(buttonPin); //прочитать состояние кнопки ввода
int buttonState2 = digitalRead(buttonPin2); //прочитать состояние кнопки ввода
if (buttonState == LOW) { //нажатие на кнопку выдаст LOW (НИЗКОЕ) состояние 0В
Serial.println(buttonState);
Keyboard.print ("Abu-nyasha"); //Укажите свой пароль здесь
delay (1000);
}
if (buttonState2 == LOW) { //нажатие на кнопку выдаст LOW (НИЗКОЕ) состояние 0В
Keyboard.print ("Abu-nyasha2"); //Укажите свой второй пароль здесь
delay (1000);
}
}
Дебс даже не представляет какие дыры есть в его "безопасности". Если он собрался это продавать, я бы приравнял это к мошенничеству.
Объясните, пожалуйста, как происходит этот процесс.
К ардуино подключены датчики температуры, значения которых ему кормятся и затем принимаются соответствующие решения. К ардуино так же подключены реле, которые в свою очередь к разетке? При поступлении сигнала - включаются лампы или вентилятор, так?
Извините, я глухой. В самом начале парень говорит.
"Ардуино отправляет сигналы транзистору, тразистор отправляет их реле."
Немогли бы, пожалуйста, описать этот процесс. И что у него выступает в роли источника питания?
>И что у него выступает в роли источника питания?
Такие посты специально пишут, чтобы ардуинщиков считали полными довнами?
Беру всю ответственность на себя. Пожалуйста, помоги мне стать достойным ардуинщиком.
А как запах будешь забивать когда зацветёт?
А можно. Купил я себе, оказывается, wtv020m01
Можно эту хуйню использовать просто для того чтобы писать что-нибудь на сд карту?
И какие же? Приемник может без ответа сидеть и ждать на любой из основных частот, от 110 до 115200 бод. Пароль может быть от 1 до 521 и в бесконечность, насколько памяти хватит, у Atmega1284P 16Кбайт памяти оперативной. Подслушать? Приемник молчит. Просто загасить приемник ударом тока? Тогда вообще не откроет реле. Только ключ украсть.
SD карта - SPI либо FastSPI NAND или NOR FLASH память. Пишется по странично, читается постранично. Это просто массив ячеек памяти. FAT определяет где и какой файл, с ним сложнее, но реализуемо...
Из-за тебя открыл это видео, чтобы посмотреть что там за пароль.
Ну не бред ли делать такую хрень, когда можно взять более удобный iButton? Даже если использовать микроконтроллер, можно было взять восьминогий и сделать в габаритах обыкновенного iButton.
>>57091
Зачем тебе для SD карты модуль? Она напрямую подключается, максимум потребуется несколько резисторов для делителей напряжения, если атмега от 5 вольт запитана.
Передача пароля в открытом виде - даже по проводу - дебилизм. Можно разобрать разъем и встроить чип-посредник.
RSA пара: приватный, публичный ключ. В замке публичный, в самом носителе приватный. В момент контакта хост шифрует случайные скажем 245 байт данных, а носитель должен расшифровать и ответить хешем от расшифровки + соль.
По твоему почти все домофоны делали дебилы?
>Можно разобрать разъем и встроить чип-посредник.
Не проще ли будет в таком случае открыть дверь монтировкой? Ну или высокое напряжение подать, вдруг когда пердуина будет гореть сработает открытие. Ерунду ты написал.
Хрень хренью, автора видео просто нуб, но меня лично задело "дыры в безопастности", когда их как бы и нет, если нет доступа к разъему.
Так там и закрытый тип передачи, посредника то нет.
Если упор на дешевизну, то хватит ATmega8A-PU за полтора бакса. https://github.com/Atarity/Pixelkit
Atmega8a прям то что нужно. А нет ли готовых схем для геймпада с нуля, а не модификации уже существующих? Мне просто надо 12 кнопок к этой атмега8а и все, это с учётом 4 кнопок под кречтовину. Никаких стиков и прочего.
А ног, кстати у атмега8а для 12 кнопок хватит? Сколько вообще максимум можно к ней кнопок присобачить?
Или этот пикселькит все же можно использовать для моих целей?
Ребята вобщем по этому гайдику делал себе шорткат клаву, https://www.makeuseof.com/tag/make-custom-shortcut-buttons-arduino/ но после загрузки скетча сама ардуина нихера не определяется в диспетчере задач. Что с ней теперь делать то?
Купить/собрать программатор типа usbasp и не страдать больше такими проблемами
Колпачкею натени на штекер и подоткни пины.
Припаять? Ах, ну да. Тогда стяни колпачекю с питающего контактора и провода скрути вместе.
Тред интересный, но постоянно забываю свои говнодавы оставлять вне песочницы, если ты понимаешь о чем я.
Ах, ну да.
Твоя ссылка такой себе вариант, он именно для джойстиков в своем изначальном смысле, которые для авиасимуляторов.
Погуглил данный вопрос. Нашел вот эту статью http://cxem.net/comp/comp141.php, которая по большей части является переводом статьи с www.raphnet.net. Там именно то что мне нужно - готовая плата с 12 выводами под кнопки.
Насколько сложно сделать эту плату новичку, который ни с микроконтроллерами, ни с пайкой особо дел не имел? Вроде элементов не так то много на плате.
Подкрепляю сия историю сия фото (рис.1). Если я запаяю этот переходник, то всё будет отлишна?
V-usb же
Гробгробкладбищеардуино! Возьми два проводка советских, они дольше будут обламываться, чем эти разноцветные "вечные" проводки. И вот их уже и запаяй.
Все схемы с программным USB будут иметь примерно одинаковую схему плюс-минус стабилитроны, ибо все программные USB берут корни от проекта Igor Češko.
Плата норм, но я бы сделал на SMD, чтобы не сверлить дырки. Количество деталей не так принципиально, ты либо умеешь делать платы, либо заказываешь у китайцев. Лучше научиться первое, чтобыне ждать месяц на каждый чих
Я уже заказал в dip корпусе. Мне кажется что такие ноги удобнее паять, у smd я все ноги нахуй в одну оловом захуячу. Ну и в дип корпусе удобно прошивать микруху, воткнув ее на макетную плату и подвести к нужным ногам провода.
Да я сам все с нуля хочу сделать, в этом то и смысл, так что нахуй китайцев, надо утюг искать.
Бтв а чем обычно дырки в платах сверлят?
>Мне кажется что такие ноги удобнее паять
Наоборот SMD проще, если на нормальную заводскую плату. Припой за счет поверхностного натяжения собирается возле выводов. Такое как раз удобнее паять широким жалом.
>оловом
Не стоит. Олово плавится при относительно большой температуре, относительно хрупкое, создает "усы" и на морозе рассыпается.
>удобно прошивать микруху
Припаянную на плате еще удобнее.
>Наоборот SMD проще, если на нормальную заводскую плату.
Я хочу свою плату сделать. И в чем разница в пайке между домашней платой и заводской?
>Не стоит
А чем еще паять кроме как оловом?
>Припаянную на плате еще удобнее
Ну хз, еще дорожки под это дело разводить отдельно и GPIO корячить, который в готовой поделке нафиг не нужен.
>И в чем разница в пайке между домашней платой и заводской?
Кривее и нет паяльной маски. Паяльная маска для того и нужна, чтобы припой не попал куда не нужно.
>А чем еще паять кроме как оловом?
Припоем. 60% олова и 40% свинца или что-то около того.
>в готовой поделке нафиг не нужен.
Если только не собираешься обновлять прошивку, хотя бы просто прошивать другие параметры, коды клавиш и прочее.
Анончики, нужна ваша помощь. Хочу зафигачить беспроводные колонки из говна и палок. Есть ардуино, где-то 8 старых излучателей от наушников, и, возможно, старый bluetoth модуль для ноутбука. Только вот я не представляю, как эту кучу хлама заставить работать.
>как эту кучу хлама заставить работать
>mini PCI-E
Очень просто. Берешь ноутбук и втыкаешь туда эту штуку. На ноутбуке, само собой, должно быть соответствующее ПО. Ну а пердуину, если так хочется, можно использовать как подставку.
Тогда купи беспроводные колоночки и примотай к ним скотчем пердуину. Либо возьми вот такую пердуину https://www.arduino.cc/en/ArduinoCertified/IntelGalileoGen2 и останется подключить к ней ЦАП с усилоком.
Ардуина с 8битным цапом явно не для звука. Тут как минимум стм 32 надо, там ШИМ 12 битный
Да.
Нахуй писие? Смотришь analog read сигнал с 3.5 джека, кодируешь сигнал с 3.5 в цифру, передаешь, раскодируешь и воспроизводишь
Если телефон с андроидом есть, скачай любое приложение для этого.
Вот spectroid есть https://www.youtube.com/watch?v=MfdXJlD0X_w
Так-то понятно, но хочеца измерить частоту звука с помощью ардуино и микрофона.
Нигде нормальной информации на эту тему не нашел.
Делаешь сэмплы 44100 раз в секунду. Детектишь пиковые значения внизу и вверху. Замеряешь время между пиковыми значениями. Делишь один на это время.
>>57889
https://ru.wikipedia.org/wiki/Частота
>Частота — физическая величина, характеристика периодического процесса, равна количеству повторений или возникновения событий (процессов) в единицу времени.
Вот картинка, какая частота у процесса, характеризуемого этим графиком? Что ты собираешься называть частотой звука?
У тебя на пикче несущая, модулированна амплитудно другой частотой. Что ты хотел этим показать?
>несущая, модулированна амплитудно другой частотой.
Ничего подобного, только отдаленно похоже.
>Что ты хотел этим показать?
Что в данном случае считать частотой по определению из википедии? Функция на графике периодическая, с периодом 1.5, если что.
0.5 вообще-то. Значит частоту звука в таком случае нужно считать как 1/0.5? Это при том что спектр сигнала будет состоять из двух палок на частотах 10 и 12? А если возьмем более близкие частоты?
Преобразование Фурье. Если звук состоит из многих частот, вроде речи или музыки, можно определить, какие частоты есть и каких больше/меньше. В этом поможет алгоритм БПФ. Если звук - чистый тон (одна частота), и есть варианты, какой именно, - алгоритм Герцеля.
>>358392
>>358401
>>358403
>>358411
Это что за долбоебина?
Какие есть Ардуины(или другие отладочные платы) на 128 меге?
В смысле какие? Открываешь али, пишешь atmega128.
Да ты бы и собаку.
У меня для каждого усб порта надо ставить дрова. Если ты шил через один убс порт через него и шей дальше, не вставляй в другие.
Иди переставляй дрова.
в том же порте что и шил. но я уже в других пробовал. дрова ставятся, а ide платку больше не видит
Открываешь диспетчер устройств, вставляешь плату и смотришь что она определяется. Нагугли, это всё где-то описано.
йобаныйвротт она у меня изначально не прошивалась, start зашит с завода... дрова не стояли. вот нахуй так делать а. спасибо, заработало
Да должно работать.
Хотя конечно может быть, что бутлоадер без подтяжки R3 сходит с ума и бесконечно пытается подключиться к USB.
А зачем ты их выпаиваешь то? Чем они тебе мешают? Особенно R4 который вообще никуда не подключен без USB считай.
ну может один и не надо убирать... у меня эти пины как ацп запроганы
Нужны будут 2-3 простеньких игры.
1. Какой именно брать? Нано, уно, еще какая хуйня, не ясно.
2. Что почитать для того чтобы вкатиться? Буду очень рад если у анона есть какой то материал про игры, сам нашел пару каналов на ютубе.
Уже чувствую как много у меня будет вопросов.
640x352, 0:39
Если хочешь, можешь стащить мой проект
https://github.com/desertkun/pods
Но он на STM32. Но есть и уже разведенная плата, надо просто все компоненты закупить и запаять.
дигиспарк это ж блеять атмега, она микроамперы потребляет. Не навешивай на нее моторов, осветителей и нагревателей, и на питальник будет решительно похуй.
>архив библиотек и скетчей
Литературу собирай. Библиотеки со скетчами и без инторнета напишутся.
Тут ты прав. Хоть мозги начнут работать.
А точна готовом всём тупеешь...
Плат думаю тоже прикупить пару десятков разных, и контроллеров без бутлоадера.
А то вдруг их под СТС подведут.
Из соседнего треда анон с ксилинксом соснул прои попытке купить.
Специальные технические средства.
КРОВАВЫЙ РЕЖЫМ!!!111
Готовься все делать на православных КР580.
>Из соседнего треда анон с ксилинксом соснул прои попытке купить.
Это был теоретик, ничего он не покупал.
>>59173
Через SPI можно, если на небольшое расстояние. Если побольше то RS-232 или RS-485.
>связь по вай фай
Почему именно wi-fi? Можно взять другие радиомодули, хоть CC1101.
>на православных КР580
Как говорят, что если у тебя в детстве не было велосипеда, то не смотря на твой нынешний Чорный Жып, у тебя в детстве не было велосипеда.
Не выделили мне в детстве родители денег на закупку комплектующих для Радио-86РК и хочется пощупать это чудо-юдо. Зреет мысль затариться советским говнецом и спаять его на макетке.
Ограничься лучше минимальным комплектом: статическое ОЗУ, ПЗУ и КР580ВВ55. Целиком весь компьютер на макетке паять заебешься. Или хоть плату закажи, в крайнем случае ЛУТ-ом сделай.
Да, это реклама. https://vk.com/id18110958
Извращения на любой вкус, включая Радио-86РК на статической памяти. Не все микросхемы есть у него в наличии, для двух стульев zx max 128 и zbc почти половина нашлась.
Пофапай. Не осилил сборку Ленинград-2, так как ушел из той помойки, где каждый ебаный день обсирают и втаптывают в дерьмо как на видео с пингвинами.
Сиди, собирай. Недостающую ИЕ4 сам найдешь.
Память на выбор: 565РУ5Б, 565РУ6 или 8 SRAM по 2Кх8 537РУ10.
Может интересен комплект КР1821ВМ85А + ИМ1821РУ55? Некрофилией начинает попахивать.
И вот в чем проебался - в даташите требуют подавать 5в на вход датчика - а у меня мк питается от батареи на 5.5в ( алсо напрямую запитывать от батареии не хочу - датчик жрет энергию как не в себя) - чего делать?
В общем, жопой чую, что HC-12 не пойдёт, но почему — не понимаю. Объясните, пожалуйста, и альтернативы предложите, если есть. Анально ебаться с ручной подгонкой любой хуйни кучу времени готов, время на данный момент менее ценно, чем деньги.
Жопой чую, что при колхозинге не хватит быстродействия, которое критично для управления дроном. Адекватно пояснить, правда, не смогу, подожду более прошаренных анонов.
Диод поставь по питанию, у них падение 0.4-1,5В
А вообще - не еби мозг, от лишних .5В ничего не произойдёт.
nRF24L01+ либо аналоги, каждые 5мс передача данных на управления вполне реальна. Дальше, 4 моторчика с лопастями, два в одну сторону, два в другую. Управлять 4мя ШИМами + транзисторы L-MOSFET, для большего тока и т.д. После ставишь акселерометр и гироскоп.
Пульт делаешь из двухосевых переменных резисторов, как в джойстиках аналоговые стики и той же nRF24L01+. Батареи Li-Ion.
Всё.
Хватит, вполне. Только он жмот и глупенький, а значит не добьётся цели, не потратив двойную сумму.
Это просто Микро.
Это плата от Sparkfun, у них и схемы есть.
https://cdn.sparkfun.com/datasheets/Dev/Arduino/Boards/Pro_Micro_v13b.pdf
Ухх, спасибо тебе, добрейший человек!
Это ж что получается, можно на этом контроллере развести ноги для A4, A5, D11, 12, 13 и они будут работать?
Решил замутить это:
http://mozgochiny.ru/electronics-2/sovsem-neobyichnyie-chasyi/
Все по схеме и скетчу собрано, но почему то Часы отстают сильно, да и диоды вяло мигают.
Как думаете, там на скрине выставлен внутренний кварц на 8мгц, нужно ли ещё какие нибудь Настройки тактирования менять с тех, которые ардуиноИДЭ ставит по умолчанию для тиньки85?
Сделай счётчик, который будет считать до определённого числа и добавлять лишнюю секунду. Это для случаев, когда частота не плавает.
Я только светодиодом мигаю, и копипащу скетчи с гитхаба, а ты говоришь счётчик добавить:)
Но всё равно спасибо за совет!
Проще уменьшить количество секунд в минуте и тогда отставать не будут.
Самодельная ардуинка.
Не моё. На подобии хочу что то сделать.
Идеал-ардуинка размером с флешку, и hdmi штекером св вводом пинов.
А шилды соответственно тоже с hdmi.
>>59743
>внутренний кварц на 8мгц
Внутри микроконтроллера нет кварцевого резонатора. Ты подключил внешний и настроил от него тактирование?
Это не удивительно что оно сильно отстает, например в atmega328p точность внутреннего генератора (который на 8 МГц) всего лишь ±10%. Даже если ты подключишь внешний кварц, то точность и стабильность в диапазоне температур все равно будут не слишком высокими. Но поскольку такими часами невозможно пользоваться как часами, то и так сойдет.
>Думал что встроенный норм.
Читай даташиты, там все это написано. Не знаю, бывают ли микроконтроллеры со встроенными кварцевыми резонаторами, но я таких не видел. А стабильность RC-генераторов явно не достаточна для часов.
алсо, может проводами эту проблему можно решить? только без ethernet и ебли с маршрутизаторами, больно дорого
Zeegbee, пейджер, по типу как у торгашей?
Зависит от того что ты хочешь от сети. Самый простой вариант когда инициатором передачи может быть только одно единственное устройство (ведущее), а остальные были бы ведомыми.
>может проводами эту проблему можно решить?
Самый простой вариант - I2C с одним ведущим, только нужно чтобы адреса не совпадали. Посложнее CAN, только ардуину в этом случае лучше выкинуть.
>но как я понял, они все не рассчитаны под сеть с 30-40 устройствами в одном месте.
Например можно сделать передачу по принципу запрос-ответ с одним ведущим, тогда можно делать почти на чем угодно.
Если хочешь сократить код, то можно по такому принципу:
PORTD = ((0x03 << val) >> 1) & 0x3F;
Только светодиоды нужно будет подключать к порту по порядку.
>говнокодом попахивает
>ардуина
Действительно неожиданно. Попахивать начинает с первой строки, где pinMode. Потом все эти analogRead, digitalWrite и прочее.
есть ли какой то способ передавать их без централизации? (Что если одно устройство не дотягивает до базы, поэтому передает данные через другое устройство)
Все таки вопрос с лорой, мне гуголь не врал на счет "не более 6 устройств" или я что-то путаю? Просто было бы потрясно, если бы можно было такую децентрализованую сетку организовать за небольшую цену
продолжительное гугление дало понять, что есть некий чудо-модуль nRF24L01 с огромной дистанцией и аж 125 каналами, и при этом в каждом канале может находиться по 6 передатчиков 750 передатчиков в одной точки, нихуясе.
окей, допустим, я, как говномаз 100 левела займу все 125 каналов в одно рыло: nrf позволяет принимать пакеты с разных каналов сразу? если нет, то как быстро модуль прыгает по каналам? с примерно такой же скоростью, как вайфай свистки, или побыстрее?
То есть - это медяшка текстолита, а + пружинная скобка.
>NRF24L01+
>пять байт на адрес, MESH сети
>не могут 30 устройств в одном месте
Ну если ты такой зелененький, то используй RS485 и Modbus.
Ебать ты читаешь, не могу не удивиться. Передатчиков может быть столько же, сколько приемников, но единовременно. Передал и ушел в прием, повторить, не смешивать. Ставишь им адреса разные, а их аж до 256x256x256x256x256 вариаций, на любом из 127 каналов, правда не рекомендую использовать от 0 до 80, там вайфай обычно и мешают друг другу. Ну и решаешь задачу MESH сети любым способом. Либо общий адрес приема и передачи, а внутри пакета реальный адрес. Либо еще как.
Подожди, но если на одном канале будет 10 передатчиков и 10 приемников, передатчики постоянно передают данные, там же коллизии фреймов будут, шо песда, этот трабл самому ведь надо решать?
нихуя не понятно, но чень интересно
Там есть такая фича как подтверджение получения с авто-переотправкой с определенным интьервалом до 15 раз. (Auto Ack)
Но я сделал так: все модули сидят но вызывной частоте и слушают. Если модуль А хочет связаться с модулем Б, он передает по вызывной частоте пакет мол "хочу связаться с Б, го на канал X", после чего оба переключаеются на этот канал и спокойно, без коллизий, общаются. После сеанса, оба возвращаются на базовую частоту.
https://hackmd.io/V0iaipPwSlSgGBGv0dPZFQ?view
АВТОКОЛЛИЗИИ, бро. Они их сами решают, причем суть в том, что пока на канале есть общающиеся, он не перешлет и дождется свободной частоты своего канала. Причем у тебя есть 1МБод, в течение которого ты можешь свои 32 байта переслать более 3000 раз. Куда тебе больше, если все рассчитано на сбор данных с сенсоров.
А я вот радиоуправление сделал, каждый 5мсек данные пересылал, при нужных 20мсек. Такие дела.
1000000 бит в секунду, разделить на 32 умножить 8 бит. А нет, не 3000, а только... Постой, 1000000 на 8 равно 125000 байт в секунду, 125000 байт в секунду и есть более 3000 раз по 32. Но на самом деле придется еще по протоколу немного затормозиться, так как дуина максимум на 16МГц работает.
решил притащить сюда свое говно. Это прибор измеряет высоту над точкой включения и вертикальную скорость, нужен для полетов на планере\параплане\дельтаплане. Так-то у меня есть заводской прибор, но самодельный все не дает мне покоя. Никак не получается реализовать одну штуку, памагити! Вот код:
#include <Tone.h>
#include <BMP180.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
BMP180 sensor;
LiquidCrystal_I2C lcd(0x27,16,2); // set the LCD address to 0x27 for a 16 chars and 2 line display
float vario_down = -1.1; // Установка СНИЖЕНИЯ
float vario_up = 0.35; //чувствительность на подьем
float alt[51];
float tim[51];
float beep;
float Beep_period;
int disp_alt;
int samples = 40;
int maxsamples=50;
boolean thermalling = false;
short speaker_pin1 = 3;
short speaker_pin2 = 4;
float updduration = 1000;
long lastupd = 1000;
Tone tone_out1;
Tone tone_out2;
void setup()
{
lcd.init(); // initialize the lcd
lcd.backlight();
delay(1000);
sensor.begin();
sensor.read(0);
tone_out1.begin(3);
tone_out2.begin(4);
}
void loop()
{
float timee=millis();
float tempo=millis();
float vario=0;
float N1=0;
float N2=0;
float N3=0;
float D1=0;
float D2=0;
for(int cc=1;cc<=maxsamples;cc++){ // усреднитель
alt[(cc-1)]=alt[cc];
tim[(cc-1)]=tim[cc];
};
sensor.read();
alt[maxsamples]=sensor.alti;
tim[maxsamples]=tempo;
float stime=tim[maxsamples-samples];
for(int cc=(maxsamples-samples);cc<maxsamples;cc++){
N1+=(tim[cc]-stime)alt[cc];
N2+=(tim[cc]-stime);
N3+=(alt[cc]);
D1+=(tim[cc]-stime)(tim[cc]-stime);
D2+=(tim[cc]-stime);
};
vario=1000((samplesN1)-N2N3)/(samplesD1-D2D2); // рачёт звука
if ((tempo-beep)>Beep_period)
{
beep=tempo;
if (vario>vario_up && vario<15 )
{
Beep_period=350-(vario5);
tone_out1.play((1000+(100vario)),300-(vario5)); // звук на подъёме
tone_out2.play((1003+(100vario)),300-(vario5));
thermalling = true;
}
else if (vario< vario_down){ // звук на сливе
Beep_period=200;
tone_out1.play((300-(vario)),340);
tone_out2.play((303-(vario)),340);
thermalling = false;
}
}
//if (timee-lastupd > 1000)
//{
lastupd = millis();
lcd.setCursor(0,0);
lcd.print((String)"SPEED "+vario+"");
lcd.setCursor(0,1);
disp_alt = abs(sensor.alti);
lcd.print((String)"ALT "+disp_alt+" YEAH!");
//}
}
что не работает:
если раскомментить здесь, то программа начинает прерыватьса раз в секунду, вместе с обновлением дисплея, как сообразить нормально? а если оставить как есть, то показания на дисплее меняются очень часто, что вкупе с разбросом показаний с датчика делает их почти нечитаемыми.
//if (timee-lastupd > 1000)
//{
lastupd = millis();
lcd.setCursor(0,0);
lcd.print((String)"SPEED "+vario+"");
lcd.setCursor(0,1);
disp_alt = abs(sensor.alti);
lcd.print((String)"ALT "+disp_alt+" YEAH!");
//}
решил притащить сюда свое говно. Это прибор измеряет высоту над точкой включения и вертикальную скорость, нужен для полетов на планере\параплане\дельтаплане. Так-то у меня есть заводской прибор, но самодельный все не дает мне покоя. Никак не получается реализовать одну штуку, памагити! Вот код:
#include <Tone.h>
#include <BMP180.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
BMP180 sensor;
LiquidCrystal_I2C lcd(0x27,16,2); // set the LCD address to 0x27 for a 16 chars and 2 line display
float vario_down = -1.1; // Установка СНИЖЕНИЯ
float vario_up = 0.35; //чувствительность на подьем
float alt[51];
float tim[51];
float beep;
float Beep_period;
int disp_alt;
int samples = 40;
int maxsamples=50;
boolean thermalling = false;
short speaker_pin1 = 3;
short speaker_pin2 = 4;
float updduration = 1000;
long lastupd = 1000;
Tone tone_out1;
Tone tone_out2;
void setup()
{
lcd.init(); // initialize the lcd
lcd.backlight();
delay(1000);
sensor.begin();
sensor.read(0);
tone_out1.begin(3);
tone_out2.begin(4);
}
void loop()
{
float timee=millis();
float tempo=millis();
float vario=0;
float N1=0;
float N2=0;
float N3=0;
float D1=0;
float D2=0;
for(int cc=1;cc<=maxsamples;cc++){ // усреднитель
alt[(cc-1)]=alt[cc];
tim[(cc-1)]=tim[cc];
};
sensor.read();
alt[maxsamples]=sensor.alti;
tim[maxsamples]=tempo;
float stime=tim[maxsamples-samples];
for(int cc=(maxsamples-samples);cc<maxsamples;cc++){
N1+=(tim[cc]-stime)alt[cc];
N2+=(tim[cc]-stime);
N3+=(alt[cc]);
D1+=(tim[cc]-stime)(tim[cc]-stime);
D2+=(tim[cc]-stime);
};
vario=1000((samplesN1)-N2N3)/(samplesD1-D2D2); // рачёт звука
if ((tempo-beep)>Beep_period)
{
beep=tempo;
if (vario>vario_up && vario<15 )
{
Beep_period=350-(vario5);
tone_out1.play((1000+(100vario)),300-(vario5)); // звук на подъёме
tone_out2.play((1003+(100vario)),300-(vario5));
thermalling = true;
}
else if (vario< vario_down){ // звук на сливе
Beep_period=200;
tone_out1.play((300-(vario)),340);
tone_out2.play((303-(vario)),340);
thermalling = false;
}
}
//if (timee-lastupd > 1000)
//{
lastupd = millis();
lcd.setCursor(0,0);
lcd.print((String)"SPEED "+vario+"");
lcd.setCursor(0,1);
disp_alt = abs(sensor.alti);
lcd.print((String)"ALT "+disp_alt+" YEAH!");
//}
}
что не работает:
если раскомментить здесь, то программа начинает прерыватьса раз в секунду, вместе с обновлением дисплея, как сообразить нормально? а если оставить как есть, то показания на дисплее меняются очень часто, что вкупе с разбросом показаний с датчика делает их почти нечитаемыми.
//if (timee-lastupd > 1000)
//{
lastupd = millis();
lcd.setCursor(0,0);
lcd.print((String)"SPEED "+vario+"");
lcd.setCursor(0,1);
disp_alt = abs(sensor.alti);
lcd.print((String)"ALT "+disp_alt+" YEAH!");
//}
Первое: усреднять есть смысл по количеству кратному степени двойки. У тебя 8-бит процессор, он тупо тяжелее делит на 50, чем на 64. Второе, нахуя столько усреднений на BMP180, замедли сам датчик. Экран обновляется слишком часто? Обновляй его по таймеру.
да дело в том, что программист из меня неочень, я в детстве на паскале обьектном в делфи учился, но навык растерял уже, а СИ совсем нов для меня и поэтому код этот я не совсем сам написал, что касается усреднителя, он спизжен целиком. А вот смотри, в конце у меня таймер и реализован, разницу считает между временем работы программы и временем последнего обновления дисплея "if (timee-lastupd > 1000)", тогда он обновляется раз в секунду, но и звук начинает раз в секунду подавать, будто между обновлениями и не работает вовсе!
как правильно собирать скетч, и прошивать его через терминал линупса? makefile взять готовый, это понятно, но я не могу осознать что конкретно там происходит. куда гуглить и что?
и что делать, если блядский arduino ide говорит, что прав на чтение ком порта нет? chmod 666 /dev/ttyUSB0, addgroup, sudo arduino и всетакое не помогает даже близко. может avrdude под каким-то другим пользователем прошивает?
>makefile взять готовый
Ардуино ИДЕ под линуксом перестала работать?
>скетч
Слово то какое мерзкое. Самому не противно?
>прав на чтение ком порта
udev
>Слово то какое мерзкое.
Нормально слово.
>udev
А то, что sudo даже не помог?
Там что-то другое у него. Видимо не /dev/ttyUSB0 надо, а что-то другое.
Усреднитель на for'е - фактически задержка, поэтому и не работает. Смотри сюда:
if (Summ_counter < Count_Max)
{
Summator += Value;
Summ_counter++;
}
else
{
Real_Value = Summator / Count_Max;
Summ_counter = 0;
Summator = 0;
}
Товарищи!
У меня есть вот такая ардуина:
https://ru.aliexpress.com/item/STM32F103C8T6-ARM-STM32-Minimum-System-Development-Board-Module-Forarduino/32342717171.html?spm=a2g0v.search0302.3.10.3901d766U7hWAS&ws_ab_test=searchweb0_0,searchweb201602_0_10910_453_10911_454_10914_10915_10618_536_317_537_319_10059_10696_10084_10083_10887_10307_321_10889_322_10902_10065_10068_10301_10103_10884,searchweb201603_0,ppcSwitch_0&algo_pvid=729c7d31-ba42-45b3-a8f7-e3a3805546a6&algo_expid=729c7d31-ba42-45b3-a8f7-e3a3805546a6-1
Пишут, что загрузчик надо загружать через адаптер USB-UART. Его у меня нет.
Есть вот такой прибор:
https://ru.aliexpress.com/item/1-j-JLink-V8-USB-ARM-JTAG/32860933960.html?spm=a2g0v.search0104.3.2.444917bcHMiTWc&ws_ab_test=searchweb0_0,searchweb201602_1_10065_10068_319_317_10696_453_10084_454_10083_10618_10307_10301_537_536_10902_10059_10884_10889_10887_321_322_10915_10103_10914_10911_10910,searchweb201603_54,ppcSwitch_0&algo_pvid=89ce7926-7fb0-4589-a9ba-0d1b9f219779&algo_expid=89ce7926-7fb0-4589-a9ba-0d1b9f219779-0
Еще есть отладчик с интерфейсом SWD.
Я контролеры ни разу не прошивал и паяльник в руках ни разу не держал, подскажите, что нужно делать чтобы из первой платы сделать ардуину и программировать её из арудино иде. Или как её программировать на имеющемся оборудовании. С программированием разберусь - в школе бейсик и паскаль проходили. Если интересно буду выкладывать результаты.
>из первой платы сделать ардуину
Плохая идея. Собственно ардуина уже давно стала синонимом квадратно-гнездового мышления и всего такого.
>Или как её программировать на имеющемся оборудовании.
Тут уже есть тред по STM32, не логичней ли спрашивать там? А так уроков по STM32 полно, бери любой и делай все по нему.
>не всё ли равно что это будет?
Вообще-то нет. Как ты собрался использовать отладчик из пердуино-ИДЕ? Впрочем, если ты самостоятельно никакие уроки по STM32 нагуглить не можешь, то наверное для тебя все равно.
Я не могу самостоятельно нагуглить как подключить J-Link к плате. Как ардуино подключается к атмеге? Пишут что ардуино идет может работать с стммами, она может только заливать, но не может отлаживать? Не беда, буду писать качественный код, хуяк-хуяк и в продакшен.
Уже поздно, взял этот (.
>Нигде не проебался?
По всем пунктам.
>код пишется на Си или на ассемблере.
Или на множестве других языков программирования. Только на ассемблере точно не стоит, кроме как для расширения кругозора.
>Но если шить через ардуинку
В пердуинке стоит прошит загрузчик ближе к концу памяти и выставлены фьюзы так, чтобы микроконтроллер начинал выполнять код с этого загрузчика (который блише к концу ПЗУ), а не с начала ПЗУ как обычно. Потом этот загрузчик перепрыгивает в начало памяти и программа выполняется как обычно. То есть загрузчик никак не влияет на дальнейшее выполнение программы.
Поэтому "скетчи" можно прошивать без всяких загрузчиков, так же как можно через дуриновский загрузчик прошивать программы скомпилированные без участия ардуины.
>ардуиновские же скетчи
Только пердуино-язык это обыкновенный С++ с дополнительным препроцессором.
>отстают на 5-10 секунд
Это почти нормально. В документации указана точность ±2ppm (две миллионные доли). В месяце два с половиной миллиона секунд, так что 5 секунд попадают в этот допуск.
>что можно оптимизировать
Для начала использовать прерывания вместо непрерывного тыканья по I2C. Потом выкинуть ардуину.
>этот код
На это физически больно смотреть.
> что можно оптимизировать и чем плох мой вариант написания
Тебе дышать важнее, чем есть или пить? Реши сначала проблему серьезней и исправь эти блоядские отступы.
К чему ты это написал? По твоему Maxim Integrated в документации на свои микросхемы нагло врут? Или это китайцы под видом DS3231 пихают клоны или отбраковку?
Или ты к тому, что DS3231 тут ни к чему и можно просто подключить к атмеге обыкновенный часовой кварц на 32768 Гц с точностью ±10ppm?
Т.е. скомпилировав с помощью ардуино иде в хекс и залив через юсбасп все по идее должно работать?
>Поэтому "скетчи" можно прошивать без всяких загрузчиков, так же как можно через дуриновский загрузчик прошивать программы скомпилированные без участия ардуины.
Насколько это проверенная информация?
Вся необходимая документация на атмеги есть в открытом доступе, исходники дурины на гитхабе. Что мешает посмотреть все это самостоятельно?
https://github.com/arduino/ArduinoCore-avr/blob/b7c607663fecc232e598f2c0acf419ceb0b7078c/bootloaders/lilypad/src/ATmegaBOOT.c
Разумеется можно так написать программу, чтобы она проверяла наличие определенного загрузчика, но часто ли так делают?
Вкатываюсь, как дела с питоном на всяких arduino-support мк ? Сижу с esp8266 и esp32 и чет си заебал.
Пробовал на них js но там на обоих платах нету поддержки хардварного шима, а на 32 блютуз не имплементирован.
Хотелось бы узнать на сколько питон хорошо там живет и какие узкие места.
Собственно вопрос как шить Bootloader? нужен ли USBasp программатор или есть программное решение?
чтоб его можно было "выключить", ну то есть разорвать цепь питания юзай либо оптопару, либо транзистор
Нахуя тебе шить bootloader? Ты типа не-ардуинщик и хочешь сам на С все сделать?
З.ы. нашел, что там проводок впаивают, но это как то по пидерски
Как-то шутили - "Arduino - квадратно гнездовое мышление", оно заметно. 302 - это не ошибка, это значит что тебя шлют нахуй на другой адрес с текущей странички.
Тем же wget-ом с компа скачай страничку и увидишь 302 - redirecting(или following) to new address или как-то так.
Интересная версия.
Как мне все-таки тогда достучаться до сервера, если у меня передача данных в виде GET? Прошу советов мудрых.
А еще я достал симку для модемов, и пошли некоторые подвижки: теперь они видит размер страницы, тобишь последнее число отображает.
Тебе просто нужно последовать по Location заголовку, который тебе дал сервер. Скорее всего, если ты первоначальный запрос хардкодишь, то тебе просто надо поправить первоначальный запрос на тот который получаешься в редиректе.
Проблемс в том, что я даже не могу понять, куда меня редиректит. По запросу HTTPREAD высирает обрубленную строку.
Дубина(с)! Полный дебаг давай, или тебе жалко показать все 235 байт ответа? Экстрасенсы в отпуске на Бали.
>или тебе жалко показать все 235 байт ответа?
Мне и самому бы поглядеть хотелось.
Прочитай еще раз:
>По запросу HTTPREAD высирает обрубленную строку.
The format for AT+HTTPREAD is,
AT+HTTPREAD=start_address,byte_size
Prior to this AT command, AT+HTTPACTION=0 ot AT+HTTPDATA should be sent.
Почему ты не указываешь ему смещение? Где ты вычитал то, что можно указывать только размер?
Пиздец я жопочтец.
Товарищи! Реквестирую книги по микроэлектронике!
В частности - интересует тема функционально-полных логических базисов, с подробным описанием пикрил.
Насколько мне известно, продукционная модель представления знаний - имеет тенденцию к формированию противоречий,
вследствие необратимости дизъюнкций: https://ru.wikipedia.org/wiki/Продукционная_модель_представления_знаний
Дизъюнкцией - является логическая операция ИЛИ,
и на пикрелейтед её выражают на элементах И-НЕ / ИЛИ-НЕ.
То есть без неё и противоречий этих ебучих - не обойтись, верно? Ну охуеть теперь...
>В частности - интересует тема функционально-полных логических базисов, с подробным описанием пикрил.
Как будто у тебя в ВУЗе не было математики. Или уже все забыл?
В чем вопрос то? Любая логическая функция может быть представлена в виде комбинации минтермов или макстермов. Так что, если с помощью набора элементов получится сделать все девять возможных логических функций от двух аргументов, то такой набор будет функционально полным.
Каким тут вообще боком модель знаний?
По идее можно ток смотреть, но это неточная хуета и костыли. Разве что полную остановку мотора увидишь.
Ты можешь разобрать серву и добраться до потенциометра, в следствии чего получишь обратный фидбек. Или купи уже готовую серву с фидбеком.
Приходилось ли анону видеть attiny13/85 или atmega 325 в керамике?
Абу содомит! Чому с Палестины и Израиля постинг запрещён ?!
>не в тему
В тему. AVR это ардуино, без вариантов.
>attiny13/85 или atmega 325 в керамике?
Разве такие бывают? У них вроде как только атмеги 128 и 64 для космоса в керамике есть.
Так я и интересуюсь. Может с каких выставок или презентаций что можно найти..
Хочу собрать СУРОВУЮ РУССКУЮ АРДУИНО, на КМках и керамике.
Так ты про клоны? Я то написал про микрочиповские.
Если на российских деталях, и хочешь полную программную совместимость, то можно попытаться сделать на FPGA.
>на КМках
КМки числятся как не подлежащие к применению во вновь разрабатыаемой аппаратуре.
>купил китайкую копию хуйни для довенов с низким порогом вхождения
>приходится ебаться = порог вхождение высокий
Такие как ты это и есть довны, надрачивающие на стандартную библиотеку и конфигурацию и тактирование портов в отрыве от задачи, под которую берется контроллер. Соси хуй, быдло.
https://kaimi.io/2017/10/atmos-atmel-avr-operating-system-true-sleep-and-yield/
1300 постов с превью от картинок грузятся здесь долго, в этом треде!
Процессор свестит и пердит.
Сделайте перекат! Можете залить ег на архивач.
Ну, или, прикрепите тред как бесконечный,
с лимитом в 500 постов и бампом.
В arduino nano всё работает как ожидается: в Serial.begin() можно поменять скорость; если скорость чтения и отправки не совпадают, то в serial monitor (юзаю VSCode) или putty выводится нечитаемая хуета. Это ОК.
В arduino Pro Micro нихуя непонятно: указываемая скорость в Serial.begin() игнорируется; при чтении данных из порта через serial monitor или через putty вывод всегда читабельный, какую бы скорость чтения я не указал - хоть при 300, хоть при 25000 бод я всегда вижу читаемые буквы (см. код). Причем если смотреть через putty, то ардуина еще и периодически подвисает где-то на 100мс (с вышеуказанным кодом не могу это измерить).
Почему так? На сайте arduino про это ничего не сказано. Какой baud rate в Pro Micro (и остальных платах с atmega32u4, видимо?), всегда ли он такой и как его изменить?
Самый беспроигрышный вариант - заглянуть в код. Или можно посмотреть ассемблерный результат.
Но зачем пользоваться ардуиновской ерундой, когда можно взять gcc и CMake?
> Самый беспроигрышный вариант - заглянуть в код.
Еще бы понять, что там для какого чипа используется.
> Но зачем пользоваться ардуиновской ерундой, когда можно взять gcc и CMake?
В этом случае я лучше stm32 начну изучать. Ардуино засчет библиотек и своего фреймворка пока выигрывает.
void loop() {
if (irReciver.decode(&results)) { // если данные пришли
Serial.println( results.value, HEX ); // выводим данные в окно монитора порта
irReciver.resume(); // принимаем следующую команду
if (results.value == 0xFF629D){ //если сработал код 0x
digitalWrite (LED, HIGH); //включаем светодиод
}
if (results.value == 0xFFE21D){ //если сработал код 0х
digitalWrite (LED, LOW); //выключаем светодиод
if (results.value == 0xFFA25D){ //если сработал код 0x
digitalWrite (LED2, HIGH); //включаем светодиод
}
if (results.value == 0xFFE21D){ //если сработал код 0х
digitalWrite (LED2, LOW); //выключаем светодиод
irReciver.resume(); // принимаем следующую команду
}
}
}
}
Ананы, а что если синус сформировать простым прибавлением и вычитанием скажем 1, а не вычислением формулы синуса? Т.е. я имею ввиду что форма будет не идеальный синус, но очень на него похожа, по крайней мере в протеусе пропускал с выхода контроллера на LC, осциллограф показал вполне достойный вариант. Я чего вообще спрашиваю то, мне для асинхронника надо формировать, там же обмотки=индуктивность, по идеи же должно быть все чикипуки, индуктивность, как в сказке двое из ларца, сама все за меня сделает?
И еще вопрос по логике, как мне формировать три синуса на трех полумостах?
Сначала открываем нужный(ые) нижние ключи, формируем шимом на верхнем часть волны, закрываем и верхние и нижние, смещаемся на 120 градусов... ска пздц каша в голове, нихуя не понимаю.
Хочу начать вкатываться в Ардуино с этой бордой https://www.nvidia.com/ru-ru/autonomous-machines/embedded-systems/jetson-nano/
Какие меня ждут подводные? Ардуино ИДЭ поддерживает эти платы?
Какие задачи ты собрался решать с помощью анализа 4К-видеопотока? Достаточно ли у тебя программистской квалицикации для такого?
Ты все дев-борды называешь Ардуино, да?
Да и цена норм, почти как китайские нанки за 80 рублей.
Короче, покопался еще раз в исходниках платформы, выяснил следующее:
> и остальных платах с atmega32u4, видимо?
Да, ардуины на этом чипе представляются компьютеру как USB CDC устройство.
> указываемая скорость в Serial.begin() игнорируется;
В USB реализации класса Serial передаваемая скорость и настройки действительно полностью игнорятся.
> Какой baud rate в Pro Micro, всегда ли он такой и как его изменить?
В USB реализации Serial есть метод baud(), возвращающий текущий baudrate. baudrate определяется автоматом динамически - ставишь в serial monitor скорость чтения 9600 и в ардуине становится 9600, ставишь скорость чтения 115200 - в ардуине становится че-то около 50 тыщ. Изменить из ардуины его нельзя, да и смысла нет - скорость записи (время выполнения Serial.write()) никак не зависит от этого значения, только от количества передаваемых данных.
serial monitor в VSCode, кстати, в таком режиме почему-то дропает часть данных из порта.
По моим замерам, описанным в посте по ссылке, nano на скорости 2000000 baud передает данные быстрее, чем pro micro - один килобайт за 6 и 8,6 мс соответственно. Хотя еще надо будет целостность данных потестить в обоих случаях.
90% что питание не может выдать ампераж, который требуется серве. Сколько твой источник может выдать? Может хотябы 1А? Какая серва?
Я с китая заказывал, захуяривал без резисторов ибо мне похуй. Все норм работало.
Вообще все началось с того, что я начал делать самолет на ардуино,
у меня был ESC регулятор с мотором, он мог выдавать нужный ток для питания ардуино, но он сгорел вместе с мотором, я купил новый
мотор и регуль, но вот он не может потянуть даже две сервы одновременно, я поэтому я решил запитать от батареи через DC DC понижатель, захотел узнать сколько потребляет одна серва , но не могу управлять ей. Если взять сигнальный провод в руки то она вертится и показывает 0.3 А на холостом ходу, но что бы от ардуины не хочет сигнал получать. Как и сказал выше, что бы корректно работало я припаивал 40 омный резистор между землей и сигналом, но хочу узнать в чем причина. Запитывал я все от Компьютерного блока питания, к 5 вольтам подсоединял, серву, ардуино от компьютера, землю сервы и ардуино соединял.
>Металла Мотор-микро сервопривод для Игрушка Лодка автомобилей Самолет Вертолет
Обожаю их "русский"
Им надо хотя бы один ампер давать, в пике вроде могут до двух сожрать.
http://coolcode.ru/arduino-upravlenie-servoprivodom-bez-biblioteki-servo-h/
серва слушает команды, но не удерживает положение + корректно работает только в пределе 90 градусов дальше не реагирует
Короче, я знаю что вы петухи тут дрочите на всякие готовые модули.
Знает кто какую микросхему - радиопередатчик\приемник, позволяющей менять частоту на лету.
Посрал на 433, переключился на 315 посрал там, опять прыгнул на 433 сожрал говна и тд...
Да, частотой до 1Ггц, от хз 315 тех же.
есть такая косточка. Ебался лет 10 назад. ТRC 101(102). ВЧ цепи лепил к ней из деталей выковыряных из сотовых телефонов )). Диапазон от 300 Мгц до 1Ггц. На лету можешь выбрать диапазон и вещать передавать (правда с ВЧ цепями сам ебаться будешь).
Ардуино - топ. А тв мамкин ебучий программист блядь, ебаный выблядок, ищущий пути возвышения самооценки через оскорбление других, блядь. Соси хуй и пиздуй в школу.
>я ее нагуглить вообще не могу
Этот пидор намешал русских и англицких букв в названии http://www.russianelectronics.ru/leader-r/news/company/2106/doc/8116/
Референс по авр Си библиотеке: Описаны все функции и возможности.
https://www.microchip.com/webdoc/AVRLibcReferenceManual/
Программирование на Си, хотя на самом деле это просто переводная выжимка из даташитов. Полезно почитать перед тем как уже читать даташиты на конкретные камни.
Шпак Ю.А. - Программирование на языке С для AVR и PIC микроконтроллеров - 2011.djvu
Погромирование на асме:
Ревич Ю.В. - Практическое программирование микроконтроллеров Atmel AVR на языке ассемблера (Электроника) - 2014
>>61842 ардуина далеко не топ. Ардуина чтобы школяр или левый человек никогда не имевший дело с МК сделал совю хуйню и охуел "Ибать ОНО работатет!!!" Но дальше с ней одни сплошные проблемы.
Например функция digitalWrite() по сути она должна дергать МК за ногу и ничего более, НО! - https://arduinonsk.ru/blog/83-how-digital-write-works в ней ОЧЕНЬ много лишнего дерьма.
На родном си это виглядит вот так
DDRB |= _BV(DDB5);
PORTB ^= _BV(PB5);
Это займёт 2 такта работы МК.
_BV() это макрос который выполнаяется на этапе компиляции и не отнимает ресурсов во время работы МК.
Ардуина плоха что удерживает человека на уровне хобби и не даёт подняться. Ардуинщик это вечный хоббист который клепает из лего свои домики.
на этапе компиляции формируешь массив со значениями синуса, чтобы во время работ не считать синусы, а просто брать готовое значение из таблицы с определённым шагом, не?
С тремя фазами так же, делаешь таблицу и бегаешь по ней с переменной скоростью по таймеру.
Встал вопрос об отладочной плате. На моём мк нет ардуино, да и в принципе на PICaх или для других микроконтроллеров вообще нет дешевых отладочных плат по цене ардуино.
А для каждого отедельного проекта на стадии тестирования глупо разводить плату. Тогда понял, что лучшее решение - взять макетную плату с гнездами, ставить туда МК, кварц, программатор. Вот как на этом видео. Очень удобно, можно вставить любой МК, кварц и разъём программирования и готово.
https://www.youtube.com/watch?v=npc3uzEVvc0
Но это годится только для DIP- как быть с макетной платой, если это SOIC или QFP? Пока что предстаёт в голове идея делать под нужный чип миниплаты, на конце которых будут ножки для монтажа.
Вот похожий пример. Ардуино Uno за 5 долларов(с возможностью кастомизации), очень аппетитно звучит.
https://www.youtube.com/watch?v=sNIMCdVOHOM
> Пока что предстаёт в голове идея делать под нужный чип миниплаты, на конце которых будут ножки для монтажа
Такие платы уже готовые продаются.
>На моём мк нет ардуино
Это называется dev board
3 секунды в гугле, пикрелейтед PIC32 Pinguino - PIC32MX440F256H dev board
Кочайте всё!
Думаю Чебурашка оставит нас даже без таких безобидных хобби..
В СТМах включаешь тактирование записью в регистр, включаешь периферию записью в регистр, пользуешься. Я правда нихуя не понимаю, зачем ты, слабо представляя работу микроконтроллера, хочешь сразу ебашить на низком уровне? Я наоборот, разбираюсь с HALом и только потом вникаю в низкоуровневую часть того, что намутил.
Он правильно делает. Хотя бы что-то запомнит, что умеет периферия да и рефман почитает как нормальные пацанчики, режимы работы и не будет охуевать как макаки от какого-то непонятного набора магических заклинаний в халах-хуялах.
>>35913
Тащемта так и устроены все "quickstart". Вот тебе готовый код, скомпилил, работает? Отлично, раскуривай что где и как и допиливай по вкусу. Про тактирование портов мельком написано в разделе RCC, и нужно быть внимательным - ответ в том, что после (пере)запуска в битах тактирования портов устанавливается 0(reset value), те отключен и нужно включать. Да и вообще надо очень внимательно смотреть на reset value.
Зато опыт ардуинства пригодится при разработке на передовых отечественных процессорах. Только выиграли!
> Хотя бы что-то запомнит, что умеет периферия да и рефман почитает как нормальные пацанчики, режимы работы и не будет охуевать как макаки от какого-то непонятного набора магических заклинаний в халах-хуялах
Вот этого двачую. Сколько уже раз натыкался на баги в халах-хуялах, и если бы я не знал, как работает микроконтроллер на низком уровне и не умел читать референс мануалы, я бы просто охуел, а потом и вовсе бы забил. Халы-хуялы - это хорошо, экономит кучу времени, позволяет быстро писать легко поддерживаемый и портируемый код, но без знания, как оно работает под капотом, лучше туда не лезть
Кто-то пользуется программатором USBasp? В какой программе заливаете прошивку?
Пока что пользуюсь им на дефолтной прошивке с программой AVRDUDEPROG 3.3.
Пытался сделать, что бы подвязать его к Avr Studio 4.19 и можно было бы прошивать его напрямую из студии. Делал по этой инструкции:
http://new-tech.in.ua/tips/142-usbasp-change-firmware-and-software
Прошил вторым программатором первый(установив перемычку) прошивкой AVR Doper, установил драйвер, он стал виден, как COM2, но студия не хочет его видеть, как STK500.
Я не настоящий ардуинщик, только пару раз прошивал атмеги когда повторял готовые конструкции.
Мне непонятно зачем ты пользуешься какой-то непонятной графической оболочкой для avrdude. Неужели не можешь ввести необходимые команды с клавиатуры?
>Пытался сделать, что бы подвязать его к Avr Studio 4.19 и можно было бы прошивать его напрямую из студии.
Не знаю как в этой студии, но во многих IDE, наверное даже в большинстве, можно задать команды которые будут выполняться после завершения компиляции или каких-то еще действий. Не проще ли туда вставить команду avrdude -p и т.д.?
Квадратно-гнездовое мышление? GTFO!
Это же обычная светодиодная матрица со строками и столбцами. Гугли про динамическую индикацию.
HCMS индикаторы с псевдоSPI поинтересней - залил и забыл. На твоем АЛС если повиснет пердуина - только одна строка(столбец) будет светится.
Микроконтроллер Атмега 8535. Понадобилось сделать эмулятор памяти, работающей по I2C.
С AVR'ом, к сожалению никак не знаком и кроме как в Ардуино-скетчах не сталкивался.
Посоветуйте, с чего начать? Какую IDE использовать? Есть онлайн гайды прямо для моего микроконтроллера?
Спасибо.
Илья, он же школотрон, залогинься!
> Посоветуйте, с чего начать?
Перечитать тред и съебать в STM32, где был дрыщекод эмуляции памяти, который надо слегка перепилить и заведется под AVR.
> Атмега 8535
Это что за хуйня по части импортозамещения? Назови название спизженного "аналога". Ебать антиквариат, у него даже JTAG нет. Удачи в ебле с отладкой через printf.
> Какую IDE использовать?
AVR Studio.
Ок, спасибо
>>62715
>AVR Studio
Ну, в принципе логично.
Братан, ну вот почему именно школотрон?
Если хочешь меня тут деанонить - пиши сразу в ЛС, хули ты?
>был дрыщекод эмуляции памяти
Не, к логике работы именно кода - никаких вопросов. Вопрос только в настройке TWI в нужный режим.
>Это что за хуйня по части импортозамещения?
1887ВЕ4
>Удачи в ебле с отладкой через printf
Ну я думаю, что при наличии либы, реализующей I2C Slave на TWI, можно было бы обойтись и отладкой по пинам.
>Перечитать тред
Не ну какбы 1.5к постов, из который 50% мусора... То же время потраченное на чтение даташита принесёт куда больше пользы... Но если уж его я не прочитал, то сам какбы понимаешь
Школотрон! Вернись с небес на Землю.. Тебе крылья не идут. Поделись крыльями.
Говнокод этих времен >>46723 уже не на чем запускать и тестить. Сам потестишь и расскажешь. Быдлокодилось под мега328.. Отсылку спама по UART выкинул (там буквально пара строк).
> либы, реализующей I2C Slave на TWI
Это насколько тупым надо быть? IIC по шагам отлаживается и пишется, спецификация позволяет из-за бесконечных таймаутов.
Смотришь в даташит, смотришь в статусный регистр. PROFIT!
А теперь съебал гуглить как вырастить огромные птичьи крылья с перьями и сюда отчет.
Если совсем упарываться пометом -тебе нужно съебать в ПЛИС-о тред. С ходу решением может быть 4 регистра 595 для данных, мультиплексор 32:1 для выдачи конкретного бита, счетчик который показывает какой бит выдавать и какой-то регистр или конченный автомат сравнения адреса + логика склейки этой поеботины, в которую вливаешь дерьмо по SPI, а отвечать она будет настолько быстро, что будет просить добавки даже на тактовой (SCL) в десяток-другой МГц...
> Ну вот че ты доебался с ПЛИСами этими? Посмотри сколько стоит самая дешевая импортозамещенческая плисина и успокойся.
Совсем поехавший? Тебе не нужны ПЛИС типа FPGA на десятки-сотни LE. На первый взгляд достаточно простой CPLD на 64 макроячейки. Поищи их. В виду простоты схемы ее и на рассыпухе можно собрать.
> И я совершенно нихуя не понял, из того, что ты написал в >346723
Омич-полуебок, скажи - ты наркоман? Школотрон...
Ну охуеть теперь, буду я ещё собирать костыль на рассыпухе, для платы которая должна быть с две пачки сигарет в длину
Наконец-то у меня получилось заставить работать USBasp прямиком из AVR Studio 4.19 как STK500! Это намного удобней: написал программу и сразу же из студии прошил, к тому же у STK500 куда больше возможностей, чем у avrdude. У меня стоит Windows 7. Для этого мне пришлось облазить половину рунета, но оно того стоило.
Итак, описываю ПОДРОБНЫЙ порядок действий, как USBasp превратить в STK500, уверен, это кому-то пригодится:
1) Сначала нам надо поменять прошивку USBasp из дефолтной на прошивку AVRDoper(прошивку атмеги8, которая в нем стоит). Для того, чтобы прошить программатор, потребуется другой программатор. Для прошивки программатора замыкаем перемычку J1, подключаем шлейф и прошиваем файлом usbasp-mega8-12mhz.hex из папки Firmw. Сделать это можно прогами AVRPOG3.3 или SINAPROG, выставляем нужный чим(мега8), резервируем дефолтную прошивку(считываем ее куда-нибудь), стираем старую прошивку и прошиваем флеш новой прошивкой.
2) Возвращаем перемычку прошитого программатора на место J2, втыкаем его в USB. Windows начнет поиск драйверов и не найдет. Указываем путь к драйверу к папке xpvista7. Это последняя версия драйвера для AVR910 с сайта protoss. Заходим в диспетчер устройтв, и смотрим. Прогрмматор будет виден как Communication Port (номер). Этот номер должен быть от 1 до 9. У меня он изначально обозначился, как COM17. Поэтому нажимаем по устройству правой кнопкой, Свойства-Параметры порта-Дополнительно и меняем номер(я поменял на COM2).
3) Заходим в AvrStudio и жмем значёк Con. Выбираем STK500 и номер COMпорта, который указан. Он начнет ругаться, что нужно обновить драйвер, просто нажимаем отмена. И вуаля! Теперь мы можем работать с STK500.
Файлы:
http://rgho.st/6gc6fryzN
>куда больше возможностей, чем у avrdude.
С чего бы это? Там из возможностей должно быть только чтение/запись памяти программ и фьюзов. Вот у отладчика действительно больше возможностей.
>сколько стоит самая дешевая импортозамещенческая плисина
Если 5576ХС1Т с 5-ой приемкой, то в 2,5 раза дороже чем 1986ВЕ1Т.
> Щколоте нужно CPLD типа MAX-3000, MAX-II, MAX-7000 или подобный треш.
Ему нужно то, что можно потом заменить на отечественный аналоговнет (если я правильно понял и это тот чувак, который спрашивал за отечественный i2c флэш в треде отечественной электроники).
Ты идиот. А ну съебал со своим школотроном отсюда! И некроговно свое забери.
>конфигурационное ПЗУ типа AT17 стоит как крыло от самолета.
5576РС1У стоит в три раза дешевле 5576ХС1Т, если что.
Других импортозамещенных ПЛИС практически нет. Есть интеграловские однократно программируемые CPLD, но они вроде как радиационно стойкие и вряд ли будут существенно дешевле.
Просто признай - замены CPLD НЕТ, а FPGA тут на хуй не вперлось. Этого достаточно.
Остается вариант на рассыпухе собирать. Осторожно бздану что используя планарные мс - впишется в спичечный коробок по размерам с платками в 2(3) этажа.
> чтобы я втыкал ардуину в usb и она сразу начинала получать данные о компе без ручной установки софта?
Ты уже ставишь вручную дрова на usb
*числа
>atof
Не надо давать вредных советов по использованию плавающей запятой на микроконтроллерах.
А если начал использовать плавающую запятую, то тогда sscanf уже не так жирно на этом фоне будет.
>Проблема в том, что не знаю, как заставить диоды одновременно мигать
1) Небольшая задержка, допустим 1 мс.
2) Инкрементировать счетчик (простую переменную) для первого светодиода. Если счетчик достиг заданного значения, то обнулить его и инвертировать сигнал на светодиоде.
3) Повторить пункт 2 для второго светодиода.
4) Остальная логика для третьего и четвертого светодиода.
5) Перейти к пункту 1.
Подключи все светодиоды к одному порту и пиши в порт число, а не биты дергай. Как только ты запишешь число в порт, все пины на этом порту изменят свое состояние одновременно.
А мне показалось что у него основная проблема не в небольшой задержке при переключении светодиодов, а в том чтобы два светодиода мигали с разными периодами.
О чем ты, в чем у тебя проблема? Ты не можешь застаить светодиоды мигать с разным периодом?
Или проблема в том, что команды записи в порт создают задержку в доли микросекунд?
Это не имеет отношения к изначальной проблеме, но тоже лучше сделать.
Я говорю о том, что нужно изменить код вывода результата на пины.
Как уже говорил, подсоедини свой чертвертый диод к порту B, например к пину PB3.
Вместо того, чтобы сразу включать/выключать диоды, запиши результат своих вычислений в какую-нибудь int или byte переменную (пусть будет int leds;), каждый бит в этой переменной будет отвечать за состояние пина, т.е. первый бит - PB0, второй - PB1 и т.д. (точное соответствие в даташите смотри), далее пиши это число в порт, как ты это делал перед циклом - PORTB = leds; таким образом у тебя все четыре пина и светодиода будут менять свое состояние одновременно. Должно быть примерно так:
int leds = 0;
while {
leds = // поменял какие-то биты
PORTB = leds;
leds = // поменял еще какие-то биты
PORTB = leds; }
Возможно еще придется сделать так, чтобы менялись только первые четыре бита, но это уже даташит свой смотри.
>>62899
> в доли микросекунд
Замерял как-то на atmega32u4 (arduino pro micro), разница между включением пинов на PORTB и PORTD около 0.8 микросекунд.
>Замерял как-то на atmega32u4 (arduino pro micro), разница между включением пинов на PORTB и PORTD около 0.8 микросекунд.
Пиздец ты ардуинщик, замерял он. Команда SBI выполняется два такта, задержка будет соответствующей.
Что не так?
> Команда SBI выполняется два такта, задержка будет соответствующей.
Отлично, я почитаю позже что это за команда, но сциллограф показал, что при выполнении кода
PORTB = b;
PORTD = d;
пин, висящий на порту D включается позже, чем пин па порту B, приблизительно на 0.8 микросекунд. Такой задержки между включениями пинов на одном порту я не увидел.
Светодиоды должны включаться одновременно, но с разным периодом + постоянно должно проверяться условие (включены ли диоды одновременно или нет). Но вместо этого диоды просто включаются по очереди, не говоря уже о проверке условия
Все равно не понимаю. Тебя напрягает задержка в несколько микросекунд? Или ты не можешь сделать так, чтобы два светодиода мигали одновременно, но с разными периодами?
Нужен прям жесткий realtime? Ставишь сбоку 74HC11 (3-input AND gate) и не ебешь мозги себе и окружающим.
жесткий real-time не нужен, да и в железе исполнять не собираюсь.
Сначала вообще реализовал это все на 3-х ключах, что при их замыкании будет диод светиться и все замечательно,но препод говорит, что нужно сделать тоже самое, но на диодах (с разной частотой), чтобы самому свичи не щелкать.
>>62910
не могу сделать, чтобы три ( ну или хотя бы два) мигали с разным периодом
Давай проще - нарисуй картинкой в масштабе что нужно. Все 4 сигнала. Судя по тому что не пердуинщик, на прерывании таймера конченный автомат сделаешь и будет заебись.
>чтобы три ( ну или хотя бы два) мигали с разным периодом
Заводишь три таймера с разными делителями и на выходах получаешь разнопериодное мигание.
Это ничего не доказывает, нужно смотреть ассемблерный код. Неизвестно что там компилятор выдал, может там в промежутке вычисляется это твое d или еще что-то.
Реализовать данную логическую схему (3-И) на мк, используя диоды, чтобы было видно, при каких значениях на входах, мы получаем 1 на выходе
>Ну что там может быть непонятного?
Как минимум то, что я чертов распиздяй и языки программирования изучал очень поверхностно, а в программирование мк до этого не пытался вовсе, а теперь пытаюсь во всем этом разобраться, учитывая то, что от препода задание есть, а на вопросы о том, как это реализовать ответ один - "в интернете все есть"
Это какая-то ерунда, а не задание. Я нихуя не понял.
>используя диоды
Какие диоды?
>чтобы было видно
Это совсем непонятно. Нужно только перебрать все комбинации (8 штук) на входе? Тогда зачем генераторы с вроде как независимыми периодами, если для этого нужен счетчик?
Попробуй эту хуйню запустить. С настойками задержек сам ебись. Адовый говностиль кодинга, забивая огроменный хуй на некоторые формальности работы с портами и их изменением.
#include <avr/io.h>
#include <util/delay.h>
//#define F_CPU 8000000
int main(void) {
unsigned char cnt=0;
DDRB =0x07;
DDRC =0x01;
while (1)
{
PORTB = cnt;
if (cnt == 0x07 )
PORTC = 0x01;
else
PORTC = 0x00;
_delay_ms(100);
cnt = (cnt+1) & 0x07;
};
return 0;
}
Что-то мне подсказывает, что биты у тебя извне должны приходить, а три светодиода просто должны отображать, что за биты пришли.
Но если надо генерировать биты самому, то я вижу это так (предполагая, что все четыре светодиода на порту B):
while (true)
{
// генерируем биты
for (int i = 0; i < 8; i++)
{
// делаем побитовый AND с тремя битами
int res = (i & 1) & ((i >> 1) & 1) & ((i >> 2) & 1);
// выводим три входных бита (PB0-PB3 ?) и выходной бит (PB4 ?)
PORTB = ((res << 4) & 0b1000) | (i & 0b0111);
// секундная задержка, чтобы можно было че-то увидеть
delay_ms(1000);
}
}
>Какие диоды?
Светодиоды, офк
У генераторов разная частота, чтобы в разный момент времени на входах были разные сигналы (перебираются 0 и 1), потом на графиках смотришь, в какой момент на выходе получаешь 0 или 1. А нужно эту логическую схему перенести на мк, задав разные частоты диодов (чтобы также перебирать 0 и 1 на входах) и также смотря, что получается на выходе. Задание придумывал не я
Тебе не нужны таймеры, если не требуется высокая точность периода мигания светодиодов. Ну зачем!?
Какой-то сплошной поток бреда, не удивлюсь если препод такой же бред несет.
> \tif (cnt == 0x07 )
> \t\tPORTC = 0x01;
Вот это, конечно, логично и эффективно, но вряд ли препод такое примет.
Только там не три независимых генератора, а счетчик. Каким боком следует из задания, что это именно то что тебе нужно?
Хуйня вопрос. Тычем рожей в таблицу истинности. Вопросы?
#include <avr/io.h>
#include <util/delay.h>
//#define F_CPU 8000000
unsigned char res[] = {0,0,0,0,0,0,0,1};
int main(void) {
unsigned char cnt=0;
DDRB =0x07;
DDRC =0x01;
while (1)
{
PORTB = cnt;
PORTC = res[cnt];
_delay_ms(100);
cnt = (cnt+1) & 0x07;
};
return 0;
}
Пиздец бля задания. Понятно, почему в рашке нихуя нормального нет. В чём тут вообще образовательная суть? В ознакомлении с работой логических элементов, что ли? Нет, нихуя, это задание на байтоёбство на си. Я понимаю ещё если бы это на каком-нибудь HDL было, это гораздо ближе к теме. Но здесь какая-то полная хуйня. Беги из своей шаражки быстрее, пока тебе мозги не засрали. Есть ещё шанс нормально выучиться. А то так и будешь мигать светодиодами, выполняя дурацкие задания старых пердунов, не зная действительно полезных вещей по специальности
> Что-то мне подсказывает, что биты у тебя извне должны приходить, а три светодиода просто должны отображать, что за биты пришли.
Ты слишком высоко ценишь рашкинское аброзаванее. Тут цель тупо в демонстрации работы элемента 3-и светодиодами. Есть 3 входа, один выход. Нужно перебрать все комбинации и зажечь соответствующие светодиоды. Всё. Вот так у нас учат цифровой схемотехнике. Путём мигания светодиодами на ардуине, мля
С чего ты взял что это курс цифровой схемотехники, а не байтоебства?
Но все равно пиздец, потому что с такой формулировкой задания можно только догадыватся что имелось в виду.
Какой пиздец. Жди проклятий, особенно если не смогу сегодня уснуть после такого отвратительного ответа.
Дядя, ну ты чего? Я пытаюсь тут разобраться, что и к чему, вкатываясь впервые в мк, а тут сразу проклинать собрались. Рили, спасибо, не думаю, что сам разобрался бы
>Вот так у нас учат цифровой схемотехнике
Бывает и такое. Нексттайм вроде придется реализовывать на мк работу триггеров, счетчиков, регистров и пр., ибо лабы в Multisim'е по ним есть. Что с ними буду делать - не знаю, наверное, опять дадут задание, толком не объяснив, что делать и как реализовывать, хехмда
> С чего ты взял что это курс цифровой схемотехники, а не байтоебства?
Потому что задания на логические элементы даются в курсе цифровой схемотехники. Задания же на программирование мк даются в курсе микропроцессоры, и там дрючат в основном ассемблер, алу, память, конвейер, регистры и тому подобное, но никак не логические элементы.
По сути, здесь анону задали написать эмулятор логической схемы на микроконтроллере. Это же пиздец как тупо, даже тупее, чем писать его просто под обычную персоналку
Что за специальность? Надеюсь ПТУ какое-нибудь, а не институт.
> придется реализовывать на мк работу триггеров, счетчиков, регистров
Пиздец, неужели нельзя это делать на плис, что намного более подходит теме курса? Да даже тупо симуляция верилога на ПК вообще без железки имела бы намного больше смысла
>там дрючат в основном ассемблер, алу, память, конвейер, регистры и тому подобное, но никак не логические элементы.
Правильно, а на практических занятиях пишут на ассемблере что-то простенькое. Начинают например с простого мигания одним светодиодом.
>По сути
Код a & b & c - это уже эмуляция логической схемы? По сути, нет.
Триппера и счетчики? На меге8? Надо отдать должное что быдлокодится не в пердуино иде, а как нормальные люди сразу на Си под bare metal.
Вполне возможно реализовать, используя входы внешних прерываний и счетный режим таймера (если что-то быстро считать) или те же прерывания (если просто макет для медленного счета). Засада будет с RS триппером и его запрещенным состоянием - как его реализовывать? Там как ни как есть доля вероятностей, метастабильность и непредсказуемость при одновременном снятии единиц со входов R и S. Хотя наверное проще забить болт на это(вероятности).
За ПЛИС голосую. Они поинтересней для такой тупой работы.
>>62962
>>62959
>>62958
>>62951
Задание можно переформулировать так: напишите такую программу, чтобы четыре светодиода мигали следующим образом...
Тогда это вполне подходит под курс байтоебства. Так что нечего тут выдвигать бредовые предположения. Наверняка в реальности все окажется еще ужаснее чем можно было бы предположить. Например это совмещенный курс по цифровой схемотехнике и урокам кройки и шитья.
> Код a & b & c - это уже эмуляция логической схемы? По сути, нет.
Почему это? Если в задании сказано эмулировать логическую схему, и в результате этого появляется код a & b & c на языке программирования Си, то да, этот код эмулирует логическую схему. А программная эмуляция цифровых схем - это совсем другая область, которую не стоит сходу давать неподготовленным студентам
> Вполне возможно реализовать, используя входы внешних прерываний и счетный режим таймера
Да возможно конечно, кто ж спорит. Но это может сломать детскую психику, и с самого начала привить ложное понимание предмета
Ты домысливаешь всякую ерунду, потому что это задание сильно неоднозначное. Эту хрень можно истолковать множеством способов. Даже не факт что этот анон переписал задание правильно, не выкинув из него что-нибудь.
> Ты домысливаешь всякую ерунду
Возможно. Но я слишком хорошо знаком с уровнем образования по тематике в нашей стране, поэтому мои домыслы, к сожалению, часто оказываются верны.
> потому что это задание сильно неоднозначное.
То, что препод не может четко и поняно сформулировать задание, тоже показатель качества образования
>То, что препод не может четко и поняно сформулировать задание
А где ты видел само задание? Ладно бы тут была фотография билета с заданием, но тут лишь то что написал тот анон.
Задание было сугубо в устной форме
>>62979
Цифровая схемотехника
Лекции, как по мне, довольно неплохие, в них вся теоретическая база в общем, которая довольно доходчиво объясняется (но ни слова о программировании), а вот с лабами вообще не понятно, делай то, но не понятно как (при том, что лекций именно по программированию мк вообще никто не проводит)
>$ avrdude -c usbasp -P usb -p attiny13 -u -U hfuse:w:0xfe:m
>avrdude: reading input file "0xfe"
>Writing | | 0% 0.00s failed;
>Writing | ################################################## | 100% 0.03s
>avrdude: 1 bytes of hfuse written
>avrdude: verifying hfuse memory against 0xfe:
>avrdude: verification error, first mismatch at byte 0x0000
> 0xff != 0xfe
При этом с high-voltage программером всё нормально меняется, чип уходит в невидимость для usbasp (работу пина ещё не проверял).
В доках ни о каких защитах ничего не нашёл, только
>When programming the RSTDISBL fuse, High-voltage Serial programming has to be used to change fuses to perform further programming.
Но это говорит лишь о том, что после* выставления необходим высковольтный.
Собственно, в интернете многие "случайно" этот бит меняют и "ломают" свои мк, но как и чем? Проблема во мне, avrdude'е или китайском usbasp? lfuse меняется нормально external clock уже случайно выставлял, лол.
Ты даун? Естественно он потеряется для usbasp, так как он не в состоянии сбросить тиньку и по время ресета войти в режим программирования.
То что "ломают" - это включают тактирование от внешнего кварца или еще хуже - генератора.
У меня пригорало - при установке делителя частоты на 8 как-то не хотел запускаться debugwire. Через дракона восстанавливал назад.
>Ты даун?
Нет же, ты. Вопрос был в другом. Возможно, слишком много текста, поэтому вот:
avrdude с usbasp не может выставить RSTDSBL фьюз*. Высоковольтный может. Делаю ли я что-то не так с avrdude'ом или так и задумано?
Просто не хочется лишний раз чип переставлять во время отладки.
Может еще раз прочитаешь вывод avrdude?
С другого бока вопрос - после передергивания ануса тиньки по питанию после подачи команды на изменение фьюза RSTDSBL пробовал читать-писать тиньку? Более чем уверен что соснешь сочного хуйца с пикрила после применения бита отключения ресета, о чем недвусмысленно намекает команда ошибка верификации фьюза(ов).
>пробовал читать-писать тиньку?
Пробовал, конечно, всё продолжало работать, программа зафлешилась. Он не выставлял его в 0xfe, на что как раз verification error и указывал ("должно было быть 0xfe, а прочитано 0xff"), а не хуйцах твоих.
Однако, сейчас обнаружил, что еслить сделать
>avrdude -U flash ...
>avrdude -U hfuse...
То всё нормально меняется. Это как так? — https://pastebin.com/k8RgWAQ5
Тот же анон. Поначалу думал, что программатор не работает, так как сигнатуру не читал(вернее читал, но нулями), а память можно было только стереть.
Оказалось, что в этой прошивке он задействует только 4 основных провода, питание нужно подавать на прошиваемую микросхему отдельно.
Развел на бредборде тини2313 со светодиодом и подал отдельно питание, стало прошиваться всё нормально, включая фьюзы, память и читать сигнатуру.
Если что, то библиотеку delay.h, я использовал только для теста, я в курсе, что профессионалы для задержки используют или while, for, или таймер, так как она косячная и не даёт точное время.
Пикрил - едва заметное глазу тление светодиода.
Uno с алиэкспресс.
ну вот, к примеру:
#include <SevenSeg.h>
SevenSeg disp(11,7,4,2,1,10,5);
const int numOfDigits=4;
int digitPins[numOfDigits]={12,9,8,6};
String inputString = "8888";
boolean stringComplete = true;
void setup() {
disp.setDigitPins(numOfDigits,digitPins);
disp.setDPPin(3); // set the pin for the Decimal Point, if you have one
disp.setCommonAnode();
disp.setTimer(2);
disp.startTimer();
disp.setDutyCycle(50);
Serial.begin(1200);
}
void loop() {
if (stringComplete) {
Serial.println(inputString);
disp.write(inputString);
inputString = "";
// clear the string:
stringComplete = false;
}
}
void serialEvent() {
while (Serial.available()) {
char inChar = (char)Serial.read();
// add it to the inputString:
if(inChar != '\n') {
inputString += inChar;
}
// if the incoming character is a newline, set a flag
// so the main loop can do something about it:
else {
stringComplete = true;
}
}
}
ISR(TIMER2_COMPA_vect) {
disp.interruptAction(); //attaches the timer to the interrupt
}
Uno с алиэкспресс.
ну вот, к примеру:
#include <SevenSeg.h>
SevenSeg disp(11,7,4,2,1,10,5);
const int numOfDigits=4;
int digitPins[numOfDigits]={12,9,8,6};
String inputString = "8888";
boolean stringComplete = true;
void setup() {
disp.setDigitPins(numOfDigits,digitPins);
disp.setDPPin(3); // set the pin for the Decimal Point, if you have one
disp.setCommonAnode();
disp.setTimer(2);
disp.startTimer();
disp.setDutyCycle(50);
Serial.begin(1200);
}
void loop() {
if (stringComplete) {
Serial.println(inputString);
disp.write(inputString);
inputString = "";
// clear the string:
stringComplete = false;
}
}
void serialEvent() {
while (Serial.available()) {
char inChar = (char)Serial.read();
// add it to the inputString:
if(inChar != '\n') {
inputString += inChar;
}
// if the incoming character is a newline, set a flag
// so the main loop can do something about it:
else {
stringComplete = true;
}
}
}
ISR(TIMER2_COMPA_vect) {
disp.interruptAction(); //attaches the timer to the interrupt
}
Так пины 0 и 1 для последовательного интерфейса используются же. А ты 1-ый пин как раз на сегмент E и повесил.
О! Сотни нефти тебе! Жаль, беда, 13 пин у меня занят температурным датчиком ds18b20 который необходим в этом проекте. Есть какое-то решение в данной ситуации?
Мультиплексоры или сдвиговые регистры.
>С чего бы это? Там из возможностей должно быть только чтение/запись памяти программ и фьюзов.
Это да, но из несомненных плюсов:
1)Не надо никуда выходить из студии. Написал код, нажимаешь build, нажимаешь кнопку залить флеш(обвёл красным) - прошивка заливается.
2)Автоматическое удаление флеша/еепрома, запись и верификация.
3)Максимально удобно ставить фьюзы, простой и понятный интерфейс, что нажал - то и получил. Не надо ебаться с даташитами и калькуляторами фьюзов, чтобы их выставить.
И всё это прям в IDE, напомню.
>1)Не надо никуда выходить из студии.
Не знаю как в студии, но в эклипсе, qt creator и других средах тоже не нужно. В настройках проекта в команде "run" прописываешь avrdude со всеми необходимыми аргументами.
>2)Автоматическое удаление флеша/еепрома, запись и верификация.
Достаточно для avrdude задать соответствующие аргументы.
>3)Максимально удобно ставить фьюзы, простой и понятный интерфейс, что нажал - то и получил. Не надо ебаться с даташитами и калькуляторами фьюзов, чтобы их выставить.
Вот это верно, только это требуется делать довольно редко. А тебе для твоего STK500 придется выбирать порт.
Вот здесь
https://amperkot.ru/msk/catalog/programmator_lc01_usbisp-24247326.html
продается USBisp, а на плате написано USBasp. Понятно, что китайцы напишут что угодно, но как тогда отличить что есть что? Вот например это USBasp?:
https://iarduino.ru/shop/programmers/usb-isp-programmator.html
Опять же, в заголовке пишут что USBasp, но в адресе почему-то пишут
>usb-isp-programmator.html
Алсо, можно ли взять два испа и одним перепрошить на асп? Просто все пугают что эт опиздец кирпич и им ничего не сделать — нужно срочно перепрошивать.
>>1)Не надо никуда выходить из студии.
>Не знаю как в студии, но в эклипсе, qt creator и других средах тоже не нужно. В настройках проекта в команде "run" прописываешь avrdude со всеми необходимыми аргументами.
Я не хочу разбираться с avr-dude.
>>2)Автоматическое удаление флеша/еепрома, запись и верификация.
>Достаточно для avrdude задать соответствующие аргументы.
См.выше, зачем учить какие-то команды avr dude?
>>3)Максимально удобно ставить фьюзы, простой и понятный интерфейс, что нажал - то и получил. Не надо ебаться с даташитами и калькуляторами фьюзов, чтобы их выставить.
>Вот это верно,
>только это требуется делать довольно редко.
С чего ты это взял? Джаст фо фан за полчаса испытал все виды тактирования от 128 кГц до кварца 20 мгц, и виды питающего напряжения от 2,7 в до 5 в, также вотчдог простым нажатием мышки. Если бы я это делал с даташитами, то на это ушло бы полдня.
>А тебе для твоего STK500 придется выбирать порт.
Ноуп, в программе он определяется автоматически. Так что всем советую перепрошивать USBasp в STK500.
Это два абсолютно одинаковых USBasp. Подумай сам, у них одинаковая схема, одинаковый микроконтроллер, да даже выглядят они один в один. Только зачем то один из них назвали USBisp, но это не важно.
>>64364
>Алсо, можно ли взять два испа и одним перепрошить на асп?
Да, соединяешь оба программатора шлейфом, на прошиваемом замыкаешь перемычку J1 и заливаешь любую прошивку.
Нигде в треде 168 не упоминалась (кромея перечня всего семейства мк).
Не знаю, где ты там 328 дешевле находишь, мне китайцы предлгают 168 за $1, а 328 — за $2. В dip28. qfp ещё дешевле, там целую ардуино мини можно за 1$ купить.
В чип и дипе в dip28 168 стоит 330р, а 328 стоит 170р
https://www.chipdip.ru/product/atmega168-20pu
https://www.chipdip.ru/product/atmega328p-pu
Хм, посмотрел на других сайтах (microchip.com, octopart.com), и действительно, 168 стоит дороже (по всех корпусах).
Подводных не должно быть, у них разница-то только в объёме памяти.
Да, через кондер с XTAL2 кварца на XTAL1 без кварца
Если в лоб - нет. Ставишь дегенератор и его выход подаешь например на 6 инверторов как повторители (74HC04) c последовательными резисторами - и можешь спокойно тактировать 6 МК через выводы OSCin.
Вместо дегенератора можешь на свой страх и риск раскачивать кварц через инверторы и с выходом делаешь действия из п.1.
Короче, легче по кварцу поставить на каждый мк, если не нужно совпадение частот.
Имеешь ввиду, что 328 — левак? В чипе такие жирные наценки делают, что хер разберешь где там левак.
Не думаю. Их тысячными партиями можно по полтора доллара покупать.
Или лучше как пикрилейтед 2, когда источник питания не отключается, а на сокете оборвать питание?
... и надо ли во втором случае делать землю общей у сокета и внешнего ип?
Ну на второй картинке в посте выше, земля прошивальщика не свзана с мк. Вот на текущем пикрилейтед сейчас у меня так. Связал несколько мк по i2c (желтые линии) и у каждого сокет под прошивальщик, а землю с внешнего питания привязал к земле usbasp.
https://youtu.be/AeCGLFKsxCU
Это первый вопрос, который тебя интересует? А какой там код, ты узнал? Кодом можно одну и ту же задачу написать по-разному, соответственно разный объем памяти будет занимать и с разной скоростью будет работать, соответственно разные ардуинки могут подойти.
Какая ардуина — это дело десятое, тем более здесь нет каких-то особенностей, типа работы с usb. Вот когда мне пришлось делать средство ввода для компа, тогда нужен был определенный чип. А тут хули, ничего особенного на вид.
>земля прошивальщика не свзана с мк.
А, ну так она там вообще ни с чем не связана же. Программатор так не заработает.
А почему? Я же подаю питание с внешнего источника на мк, а с прошивальщика беру только данные.
Я могу землю и плюс соединить, но боюсь, что забуду отключить внешний источник при прошивке и моя плата накроется пиздой.
Логические уровни это что такое? Это два диапазона напряжений, один диапазон соответствует лог. 1, а другой диапазон лог. 0. А что такое напряжение? Напряжение это разность потенциалов, т.е. напряжение может быть только между двумя проводами, а не само по себе. Поэтому общий провод (GND) микроконтроллера нужно соединять с общим проводом программатора.
Мимопроходил.
Большое спасибо за объяснение. Часто видел рекомендацию делать землю общей, например на драйверах шаговых двигателей, где еще нужен внешний источник питания.
Ну ты Vcc от программатора можешь не подключать, если боишься. Но только они же будут параллельно, в любом случае, напряжение выше не станет, ток тоже.
То есть по твоему, при параллельном включении двух разных источников питания ничего плохого не произойдет? А если их напряжение будет отличаться на несколько десятков милливольт?
При первом приближении - ничего не будет. Установится напряжение наибольшего источника питания, а "слабый" источник или отключится, или будет немного потреблять тока от более мощного (с большим напряжением).
Если тупо - можно соединить через диоды (диодная развязка).
Менее тупо - через идеальные диоды на P-канальных MOSFET (один диод может быть и из 2 MOSFET-ов - для случая когда в обе стороны надо блокировать утечку)
>или будет немного потреблять тока от более мощного (с большим напряжением).
А сколько это немного? Несколько сотен миллиампер?
Трудно сказать. Очень зависит от схемоты БП. Может пойдет лишний ток, может нет.
Пикрил - адовая смесь для питания стратегической железки.
Затея была понизить 24В до 8.5 через DC-DC, который если повиснет и сдохнет с отключением выхода - питание пойдет через 7808 (не прокатило - 7808 адово грелись, выкинули), далее пониженные 8.5 вольт идут каждые на свой LDO (U7 и U8) которые "суммируют"выходы и дают 5В, и с этих "резервированных" 5В питается другой LDO на питание мозгов. Работает и далеко не один год.
Это не аргумент. Ты сам писал:
>или отключится
Допустим суммарное внутреннее сопротивление источников питания 100 мОм, разница напряжений 50 мВ, какой там будет ток, если источник не отключится?
Не еби мозги. Питай схему от "основного" источника, а дополнительный (программатор) подключай через обычный диод. Ну просрешь 0.7вольта (0.4) вольта на диоде и что с этого?
Будет схема питаться от "основного" источника, а при его пропадании перейдет на "запасной" через диод и все.
Вроде как совмещать два импульсных источника не очень хорошо. Я в детстве как-то соединил и у меня блок питания навернулся.
Спасибо, за совет.
Я тащемто прикидывал ориентировочно цену шим на 555, че надо было по номиналам ему накидать?
>на одноразовый проект
А других проектов не будет? Всегда можно снять арудину, написать новую программу и использовать по новому, в отличии от. Рассыпуху тебе никто за 10 рублей не продаст — у многих магазинов есть ограничение на минимальную покупку.
Можешь генератор частот купить, лол — он на порядок выше 150 рублей. Ардуина — самое дешевое, что есть. А если купить отдельно чип без платы, то можно и в 50 рублей уложиться (правда 100 рублей программатор еще)
>(правда 100 рублей программатор еще)
Можно программатор громова соорудить, но нужен старый компьютер с физическим компортом.
> Меня жаба душит тратить почти 150 рублей на одноразовый проект
Это троллинг крохоборством?
Просто вдумайся: даже какая-нибудь шаверма или бигмак стоят дороже, чем ардуино плата, с которой можно делать кучу интересных и полезных вещей
Поддвачиваю. 150 рублей вообще ни о чем. Это может одна-две пачки сигарет. Смысл жаться на рассыпуху, когда можно взять пердуину? Следующим шагом будет выдерание из АОН или еще чего говна мамонта 8051 и вопросы чем его шить или внешнее ПЗУ или (OTP) PIC контроллера из мусора под ногами?
google: servo tester
>Ну че школотрон, задрочил за неделю говнокод эмуляции i2c памяти на 256 байт?
Нет, слишком сложно в этом разбираться. Вот бы мне кто-то скинул готовую библиотеку под ардуино...
Тупо скомпилить и залить код это уже что-то из области научной фантастики? Вот скажи, нахуя тебе всралась эта пердуина?
Вангую насяльника нихуя не выдает, кроме пиздюлей, даже копеечный usbasp зажимает, все из своего кармана? Собираешь из подножного мусора на диодах программатор Громова, а потом ебешся выискивая на помойке комп с настоящим COM портом и не меньший вынос мозга как это дерьмо через КПП протащить?
На Си больше шансов прострелить ногу при прямой работе с регистрами, но оно и работает намного быстрее. Намного быстрее.
Вообще в ахуе - сколько там дрочишь? Уже с полгода? За дошираки работаешь, а в остальное время работаешь секретуткой? Или уроки учишь, а на DIY времени не хватает, как и на чтение до просветления даташита в сортире?
Школота такая школота... Хоть пробовал быдлокод компилить и запускать(хоть на своей пердуинке, а не аналоговнет) как есть или как всегда хуев соснул?
> Вангую насяльника нихуя не выдает, кроме пиздюлей, даже копеечный usbasp зажимает, все из своего кармана? Собираешь из подножного мусора на диодах программатор Громова, а потом ебешся выискивая на помойке комп с настоящим COM портом и не меньший вынос мозга как это дерьмо через КПП протащить?
> Вообще в ахуе - сколько там дрочишь? Уже с полгода? За дошираки работаешь, а в остальное время работаешь секретуткой? Или уроки учишь, а на DIY времени не хватает, как и на чтение до просветления даташита в сортире?
Ууух, вот это проекции. Аж жар от монитора пошёл
Имею Uno. Скажите, как можно сообщить ардуине, что в данный момент нужно записать значение переменной, допустим имея кнопку, замыкающую контакты. Или киньте ссылкой.
Я сам занимался как-то давно микроконтроллерами, даже название помню pic16f828a. Прошивал это дело на ассемблере, потом заебало
Короче, мне необходимо сделать следующую преблуду:
подключить гироскоп+ блютуз модуль к одной плате и затем по блютузу передать значения гироскопа на другой блютуз модуль, для другой платы соотественно, а с нее уже вывести результаты по usb на компуктер.
И самое главное, чтобы все это было маленьких размеров.
Подскажите какие платы ардуино (мб STM32) мне подойдут?
Потянет ли такое arduino nano, micro?
[надменный тип мод вкл]Заходишь на любой сайт по продаже ардуинок и забиваешь bluetooth в поиске — тебе выдаст все модули. Потом забиваешь их название в гугле или ютубе и смотришь как авторы с ним мудохаются — выбираешь самый подходящий для себя. [надменный тип мод выкл]
Скорее всего есть модули со встроенным микроконтроллером, как это есть у вайфай модулей типа ESP8266. Кстати, почему не вайфай? Почему бы тебе не передавать по вайфай данные в интырнет, а уже с интырнета брать данные с помощью комплюктера. Всего одна плата вместо двух ардуинок и двух передатчиков. Даже есть туторы как управлять такими модулями через интернет.
Блютузы, говорят, не очень стабильные. Вроде как есть даже платы с блютузом и вайфаем вместе, это если у тебя копеечка имеется — они стоят в районе 700р.
>Подскажите какие платы ардуино (мб STM32) мне подойдут?
Если ты не будешь брать готовый модуль вайфай, то для передачи одного значения все что угодно. Можно попробовать Digispark (там есть юсб коннектор и она на атини) — самая мелкая из всех модулей, но я ее никогда не юзал и у него всего шесть контактов. Есть еще ардуино nano или micro, но они в 2 раза больше, у них больше контактов. Есть еще средняя между этими размерами — mini, но это по сути урезанная micro без загрузчика с юсб.
>Потянет ли такое arduino nano, micro?
С головой. Будешь юзать 1% ресурсов мк.
Записать значение переменной откуда и куда?
спасибо за быстрый ответ
Я хочу сделать что-то типо собственного контроллера.
Он будет помещаться в док, на зарядку, а затем из него вытаскиваться и по блютузу работать недалеко от самого дока.
> Скорее всего есть модули со встроенным микроконтроллером
Да, типа техасовского cc2541, который стоит в куче ардуиновских блюпуп модулей. Единственное, к нему нужно отладчик спаять, чтобы заюзать как полноценный микроконтроллер. Есть у них ещё cc2640, внутри которого арм, и подходит армовский тулчейн, но они дороже и не распространённые
Ну ты подключаешь кнопку как на пике
Идешь в примеры>02digital>button
И вот в этом месте
if (buttonState == HIGH) {
Это место
}
Записываешь переменную свою.
Все три на одной шине что ли? Тебе делать нечего, кроме как самому себе гемор создавать? Соединяй каждую пару ардуин отдельным serial портом, всего на пару ног больше занято будет.
avr studio это atmel studio?
>Школота такая школота
Спасибо что подправил - там должно быть "Школотрон такой школотрон".
> А сам то ты кто? Просто долбоеб?
Конь в пальто.
> Соединяй каждую пару ардуин отдельным serial портом, всего на пару ног больше занято будет.
Не понял. Ты имеешь ввиду USART? Я смотрел и там такая же проблема, типа когда один мастер, а остальные слейвы, то норм, а чтобы все и принимали и передавали, то получается мусор.
> Соединяй каждую пару ардуин отдельным serial портом, всего на пару ног больше занято будет.
Не понял. Ты имеешь ввиду USART? Я смотрел и там такая же проблема, типа когда один мастер, а остальные слейвы, то норм, а чтобы все и принимали и передавали, то получается мусор.
Ну и пиздец опечаток в прошлом посте.
Если не нищеброд - 74LVC1G08 (Single 2-input AND gate) в помощь. 2 входа - это выходы ТХ esp+hc, выход - на вход пердуинки.
Если не найдешь 74LVC1G08 - подойдет и 74HC08, у которой всего 1 элемент 2И будет использовать. Если объединять 3-4-5.. выходов ТХ - ищи или собирай на нужное число входов логический элемент И.
Вся эта хуйня поломается если отключишь питание ИЛИ esp ИЛИ HC из-за неопределенно-рандомного состояния на входе (выходе ТХ) отключенного устройста. Лечится дополнительным резистором к плюсу питания.
Спасибо! Я уже таки начинался, сделал через INPUT_PULLUP. Потом думал получится всякие двойные нажатия обрабатывать, подключил библиотеку AceButton. Но обломался, так как у меня цикл должен прерыватья на полсекунды и максимум что получилось, это обработать сигнал [кнопка была нажата]. Ну и ладно.
>Но обломался, так как у меня цикл должен прерыватья на полсекунды
Вангую это ты delay(500) юзаешь, а ты посмотри как пример блинк_визаут_делей работает. Синк эбаут ит.
> А чем это отличается от I2C.
Много чем. Для начала - как школотрон нашнешь ебать мозги - а, бля, как этого ебаного слейва на iic запустить?
IIC изначально ориентирована на работу одного(или нескольких) мастеров с ведомыми, а RS232 - точка-точка без посторонних.
У IIC скорости до 400 КГц (делим на 9 - 44 килобайта/с), у RS232 - 115200 (любое говно держит) (делим на 10 - 11.5килобайт), но можно разогнать и больше(мегабит - это под 100 килобайт в секунду) на коротких расстояниях.
У IIC явно есть "транзакции" когда обратился в самом начале к слейву и он знает что именно с ним общаются, в RS232 такого нет, там каждый байт независим от других (и непонятно кому он адресован для случая когда много слейвов, чего не может быть).
Если хочешь баловаться именно с RS232 - погугли про MODBUS. Переходник из RS232 в RS485 делается одной микросхемкой, из ебли - управление микросхемкой, точнее направлением - вещаешь в шину или слушаешь. Уже на шине устройства имеют каждое свой адрес и по этому адресу идет общение и при запросе, и при ответе, а вот окончание посылки (байты то никак не связаны, просто поток) определяется хитро - если в течении, необходимого для передачи 3.5 байт тишина - то это конец посылки и можно ее разгребать.
А там глядишь на CAN подсядешь. Гарантия доставки, но каждая посылка всего 8 байт.
Спасибо, посмотрю про мобиус.
Да, типа того. У меня опрос датчика и вывод данных раз в полсекунды.
>блинк_визаут_делей
кроме упоминания 2 раза "посмотри пример блинк визуат делей" на ардуино.ру я сам этот пример не нашел. Понимаю, что там счетчик времени и вызываешь код по времени без задержек. Можешь скинуть ссылку?>>64867
>необходимого для передачи 3.5 байт тишина - то это конец посылки и можно ее разгребать.
Только в RTU версии, в ASCII протоколе - по символу конца строки.
>А там глядишь на CAN подсядешь. Гарантия доставки, но каждая посылка всего 8 байт.
Не посылка, а пакет. Пакет состоит из посылок. Посылка может быть и байтом(8 бит), а может быть и 5, 6, 7 или 9 бит(хотя такие посылки никто не использует).
Вряд-ли он будет использовать ASCII, поэтому и не писал.
> Не посылка, а пакет. Пакет состоит из посылок.
Сегмент, пакет, фрейм и прочие радости модели OSI?
> А там глядишь на CAN подсядешь. Гарантия доставки, но каждая посылка всего 8 байт.
> Посылка может быть и байтом(8 бит), а может быть и 5, 6, 7 или 9 бит
Случаем с UART не путаешь? Там да, от 5 до 9 бит.
В CAN (2.0B в STM32 и MCP2515)- как-то не припоминаю. Там же есть явное поле, указывающее длину в байтах. Может старая версия протокола? Как-то похуй, может пруфы подгонишь? Возможно в прекрасном далеком пригодится.
>Вряд-ли он будет использовать ASCII, поэтому и не писал.
Почему? Ведь ASCII проще, чем RTU.
>> Не посылка, а пакет. Пакет состоит из посылок.
>Сегмент, пакет, фрейм и прочие радости модели OSI?
Почему, пакет и посылки(кадры) это общепринятое название.
https://ru.wikipedia.org/wiki/Modbus#Модель_данных
Спецификация Modbus описывает структуру запросов и ответов.
Их основа — элементарный пакет протокола, так называемый PDU (Protocol Data Unit). Структура PDU не зависит от типа линии связи и включает в себя код функции и поле данных. Код функции кодируется однобайтовым полем и может принимать значения в диапазоне 1…127. Диапазон значений 128…255 зарезервирован для кодов ошибок. Поле данных может быть переменной длины. Размер пакета PDU ограничен 253 байтами.
А кадры(frame) пишут и в пдф на микроконтроллеры авр при описании USARTа.
>> А там глядишь на CAN подсядешь. Гарантия доставки, но каждая посылка всего 8 байт.
>> Посылка может быть и байтом(8 бит), а может быть и 5, 6, 7 или 9 бит
>Случаем с UART не путаешь? Там да, от 5 до 9 бит.
Да, верно, я всё напутал. Я думал, что RS-232 и USART это одно и тоже. Просто и там, и там TX и RX.
> может там в промежутке вычисляется это твое d или еще что-то.
Мда, так и есть, первый пик, еще и чтение из портов почему-то сразу друг за другом идет.
Вытащил запись в порты в отдельную функцию и задержка уменьшилась до ~0.03 микросекунд, второй пик.
> SBI
Ну тут не SBI, а out, видимо потому что я не отдельные биты устанавливаю, а записываю число.
Ты зря использовал для этого дизассемблер. gcc с ключем -S (дополнительно можно -fverbose-asm) выдал бы более читабельный результат. Либо из имеющейся в ELF файле отладочной информации вроде как можно то же самое получить через objdump, это может оказаться проще если используешь пердуино ИДЕ.
А что это за волшебная программа? Синтаксис как у ардуино иде, а внешний вид как у вижуал студио.
> это может оказаться проще если используешь пердуино ИДЕ.
Не вижу там ничего подобного. gcc в следующий раз может попробую (если он будет вообще), спасибо.
>>64926
> А что это за волшебная программа?
Слева IDA, справа Visual Studio Code.
> Синтаксис как у ардуино иде
В VSCode есть расширения для программирования на C++ и использования всего, что есть в arduino ide.
Мне просто код в arduino ide неудобно писать, в VSCode хоть какой-то автокомплит есть, вертикальное выделение, комментирование по хоткею и прочее, через ардуино ide максимум библиотеки ставлю из ее репозитория.
Нет, на avrstudio для настоящих мужчин не перейду.
Это у него visual studio code.
>Синтаксис как у ардуино иде
В пердуино ИДЕ обыкновенный С++. Пердуино всего лишь добавляет свои инклюды в начало файлов и еще немного по мелочи.
А на скриншоте у этого анона даже ничего специфичного для С++ не заметно, за исключением префикса 0b, который также есть в виде расширения gcc для Си.
>Не вижу там ничего подобного.
Ты о чем? Поскольку у тебя в пердуино используется gcc, elf должен получаться в результате компиляции, а потом преобразовываться в hex через objdump. Для того чтобы использовать gcc -S, для начала придется пропустить исходники через пердуиновский препроцессор, потом прописать все пути к заголовочным файлам и прочее. Тебе оно нужно? Вот и смотри код через objdump -S, так проще.
Первая ссылка из гугла https://forum.arduino.cc/index.php?topic=46843.0
>avrstudio для настоящих мужчин
Не, это для детей. Настоящие мужчины пишут мейкфайлы самостоятельно.
Вопросы и советы приветствуются.
pastebin.com/p7iMvXFu
Судя по всему, в качестве USB-адаптера серийного порта там копия CH-340. Под неё нужно ставить драйверы. Я не помню, на Шин 10 вроде бы драйверы сразу в комплекте, но нужно проверить.
> Ты о чем? Поскольку у тебя в пердуино используется gcc
Да, но arduino ide использует от gcc, avrdude и прочего только функции сборки и прошивки, дизассемблировать же она ничего не умеет ни через внешние утилиты, ни самостоятельно. Утилиты умеют, а ide - нет, вот я о чем.
> Хочу взать горсть здесь
Возьми лучше там, где сразу "горсть" за раз продают, а не по одной штуке "горсть" раз.
> Пикрил - норм для вкатывания?
Смотря что делать собрался.
> The MCU used by WEMOS X2 is LGT8F328P, a Atmel MEGA328P compatible chip.
MEGA328P как раз в нанках стоит.
Вот так попробуй:
Хотя, если верить отзывам, он несовсем compatible.
Возможно ли как то программно закирпичить микроконтроллер AVR?
У меня пока что на этот счёт две теории на этот счёт:
1) В программе включить lock-биты.
2) Перегрузить стек рекурсивной функцией.
>Нет, на avrstudio для настоящих мужчин не перейду.
Я вот тоже пытался осилить, но там обычный пин включить — это какой-то пиздец. Тоже самое с стм32, где обычное мигание светодиодом выглядит как путешествие через девять кругов ада.
Все, что для профессионалов выглядит как "приложить в три раза больше усилий просто так"
> Я вот тоже пытался осилить
Я не пытался, просто если захочется использовать официальный SDK без высокоуровневых абстракций типа digitalWrite(), а не ардуиновский, то лучше сразу stm32 начну изучать, как раз две blue pill без дела лежит.
> "приложить в три раза больше усилий просто так"
"Просто так" или нет зависит от задач. Если тебе не надо тонко настраивать оборудование, то да, незачем лезть на уровни ниже.
вот спасибо!
Как с солидворксом. В больших компаниях с кучей персонала и годами работы, это может и удобно, но одному мимокрокодилу с мелкими проектами и небольшим временем — на порядок сложнее возиться. Можно тоже самое сделать в других программах со скоростью в 10 раз выше.
Я смотрю на стм32 и там даже копирование или создание нового проекта можно поставить на автомат. Но почему-то до сих пор никто не сделал ничего подобного.
Или может есть какие мини электро-вентили — не для водопроводных труб?
> Как с солидворксом.
Да как со всем - C# vs C, онлайн конвертеры vs ffmpeg, Ubuntu vs Arch, etc.
> Я смотрю на стм32 и там даже копирование или создание нового проекта можно поставить на автомат. Но почему-то до сих пор никто не сделал ничего подобного.
В Keil uVision и True studio вроде проект не так трудно создать, библиотеки для работы с перефирией отмечанием галочек подключаются.
В CubeMX можно в гуе сконфигурировать всё железо и получить на выходе проект для кейла с конфигурационным кодом.
Ладно, это оффтоп уже.
Можно ли собрать цифровой скремблер на базе ардуино? Здесь кто нибудь пробовал самостоятельно собирать цифровой скремблер который можно подключать к десктопу, лаптопу, планшету, смартфону, рации? Если пробовали то какие результаты и насколько высокий уровень защиты получился?
Можно ли собрать вокодер на базе ардуино? Здесь кто нибудь пробовал самостоятельно собирать вокодер который можно подключать к десктопу, лаптопу, планшету, смартфону, рации? Пробовал ли кто то собирать в едином устройстве цифровой скремблер и вокодер на базе ардуино?
https://s.click.aliexpress.com/e/e0Sijge
перистальтический насос большой поток дозирования насос вакуумный
Типа того. А вообще, что за жидкость, какой обьем надо гнать, какая точность дозатора и скок нсть денег?
А то тут 150 р людям ДОРОХА.
Гугли перистальтический насос. Если ты можешь найти мягкие трубки из пищевых полимеров, то сам насос можно собрать хоть из говна и палок.
Да я хочу литьевой пластик смешивать, заебался это делать вручную. Там речь идет о миллилитрах и если соотношение двух компонентов будет не соответствовать требуемым, то это здорово повлияет на качество. Обычно я беру шприц и им смешиваю, объемы разные, но больше литра вряд ли будет, а так по 300-500мл.
>А то тут 150 р людям ДОРОХА.
Не, я могу на это хоть 5 тыщ кинуть т.к. это долгоиграющая штука.
Спасибо, поищу. Мне важен не насос, а дозатор. Так-то жидкость у меня может стекать в смешиваемую емкость под собственным весом. Мне ее отмерить нужно как-то.
Да, спасибо вам. Насос тот, что мне нужен.
Надо на барахолках искать модуль для проведения анализов крови.
Там координатный столик и дозатором реактивов.
0,0005 грамм точность.
Поясни, есть готовые и общепризнанные библиотеки для разных протоколов по типу MODBUS, CAN и т.д.?
Или профессионалы пользуются только лично написанными библиотеками?
1 - Визуально убедиться в частоте установленного кварца
2 - Проверить дефайн F_CPU
3 - Проверить fuse div8.
4 - Пойти нахуй
> голый мк
Какой?
> кварц 16 и пара кондеев
Покажи схему
> такое ощущение, что delay работает дольше чем должен
Если точно так же прошить готовую ардуину с таким же чипом, результат какой будет?
Чуть обосрался. Забыл одну мелочь.
1 - Визуально убедиться в частоте установленного кварца
2 - Проверить дефайн F_CPU
3 - Проверить fuse div8.
4 - Проверить что через fuse выбран внешний КВАРЦ, а не внутренний RC дегенератор
5 - Пойти нахуй
>Какой?
328p
>Покажи схему
Как на пикрилейтед
>результат какой будет?
Совершенно другой. Частота мигания на порядок выше.
>Визуально убедиться в частоте установленного кварца
Ты про маркировку? Там точно 16
>Проверить дефайн F_CPU
Я делал хекс через ардуину иде, а там не ставится он
>Проверить fuse div8.
Стоит
>Проверить что через fuse выбран внешний КВАРЦ, а не внутренний RC дегенератор
Это как?
С учетом того что у тебя fuse c инверсией - их не трогал. Поэтому как гласит Даташит - работаешь на 8 МГц от внутреннего RC и похуй на кварц.
Осторожней с ними - выберешь внешний дегенератор и соснешь без высоковольтного программатора. Стадия говорит что
Поставил галочку на все CKSEL и мк затих. Теперь выдает ошибку. При чтении фьюзов почему-то стоят галочки на всех чекбоксах. Даже в лок байтах, где я ничего не трогал.
Обосрался со студией.
Первая ссылка в гугле http://homes-smart.ru/fusecalc/?prog=avrstudio&part=ATmega328P
Если получишь кирпич - я не при делах, костылями не пользуюсь, а как нормальные люди через менюшку AVR dragon в AVR studio выбираю что надо. По дефолту 0010.
0000 - внешний тактовый сигнал и получишь кирпич.
1111 - кварц более 8МГц и самое большое время его разгона.
Те SKEL3 SKEL2 SKEL0 сделать как SKEL1, те сбросить(по картинке).
Поставил другой мк и там вот такое. И как снять галку с серого чекбокса?
> как снять галку с серого чекбокса?
> костылями не пользуюсь
Это хорошие новости. Сможешь старый оживить, если в сейчас работающий зальешь blink без задержек и вместо светодиода подключишь вывод XTAL1(7) кирпича, который после этого начнет отвечать на команды но это не точно.
Я щас экспериментами добью еще один, это чуть позже.
Как мне заставить работать внешний резонатор в новом мк? Галки все снят т.е.
>1111 - кварц более 8МГц и самое большое время его разгона.
Убрал галки вроде стало быстрее, но это совершенно не то, что должно быть. Может попробовать прочесть фьюзы с того мк, что стоит у меня в плате ардуино уно? Он у меня как раз вынимается
О, заебись! заработало. галку убрал с CKDIV8 и заработало.
А такой вопрос, вот я щас хотел считать фьюзы с мк на уно, вынул контроллер и ради интереса вставил чистый купленный отдельно и ардуино иде его не хочет прошивать. Почему?
В первом бутлоадер зашит внутри? Я просто обратил внимание, что когда я экспортировал в хекс, то у меня создалось два файла: один standard, а другой with_bootloader.standard
You make me cry, bastard!
А как? Я щас тынкул Инструменты/Записать загрузчик и выдал "ошибка при записи загрузчик"
>Может попробовать прочесть фьюзы с того мк, что стоит у меня в плате ардуино уно?
А чего их там читать-то, и по даташиту понятно, какие они должны быть для внешнего кристалла. На моей китайской Uno вот:
>Fuses OK (E:FD, H:D6, L:FF)
Заходишь сюда — http://eleccelerator.com/fusecalc/fusecalc.php?chip=atmega328p , выбираешь нужную тебе конфигурацию, шьёшь.
>>65050
>соснешь без высоковольтного программатора
А при чём тут высоковольтный? Он ведь только в случае отключения ресета же, как он генератором-то станет?
>Заходишь сюда — http://eleccelerator.com/fusecalc/fusecalc.php?chip=atmega328p , выбираешь нужную тебе конфигурацию, шьёшь.
Но ведь это костыли. Зайти на сайт, поставить фьюзы, потом ставить в программаторе их и не дай бог ошибишся одним фьюзом.
Почему бы не пользоваться халявным STK-500 за 3$ и по человечески не ставить фьюзы?
>>64352
>>62818
>Почему бы не пользоваться халявным STK-500 за 3$ и по человечески не ставить фьюзы?
Потому что надо будет переходить на atmel studio и писать в 3 раза больше кода для мигания светодиодом.
Все, разобрался, тут пример есть http://wiki.amperka.ru/установка-и-настройка-arduino-ide:arduino-restore-bootloader-with-arduino
>Почему бы не пользоваться халявным STK-500 за 3$ и по человечески не ставить фьюзы?
Наверное, потому что у него его нет, т.к. он только начал играться с мк?
У меня есть два usbisp-а, с помощью которых можно перепрошить в STK-500. Просто его надо использовать через atmel studio, а мне это не нужно.
Если его можно использовать через ардуино иде, то буду благодарен за подсказку как сделать это.
>От аккумуляторов литиевых частота поедет
А с чего ей ехать? Подавай напряжение соразмерно частоте своего кварца. В даташите к 328 я видел таблицу где к каждой частоте приписывают требуемое напряжение.
Сначала 4.2 вольта, а потом напряжение падает. От 7.2 ардуинка детонирует, это я даже рассматривать не буду
Если забить на формальности - мозги powerbank. Тут тебе и зарядка, и стабильно-кетайский выход на 5 вольт и может даже визуальная индикация состояния батарейки.
> Импульсные повышайки тоже нехуйственно влияют на вход.
Помедленней. У тебя же выход DC-DC будет понижаться нешумящим LDO и срача на выходе практически не будет. Любитель АНАЛьных утех, развлекаясь с 16 и 24 битными АЦП что так ебет тема шума БП?
Такой вопрос: как проверить датчик на работтоспособность?
Есть в наличии bme280 (температура/давление/влажность), подключение по i2c.
Датчик работал нормально, до того, как я случайно гранату.
Теперь ардуина (pro mini, 328, 5в, если это имеет значение) ведет себя следующим образом:
если датчик не подключен, скетчи грузятся, ардуина работает
если же датчик подключить, то такое чувство, что ардуина тупо фризит (мб уходит в бесконечный ребут или что-нибудь такое) , светодиоды не мигают, скетчи не грузятся.
датчик подключаю как обычно (a4 -> sda , a5 -> scl).
---
Собственно, вопрос ещё раз: как проверить, что именно не фурычит: датчик или прослойка между паяльником и креслом?
Л - логический
А- анализатор
Эта штука заставит твое очко сиять всеми цветами радуги и покажет ху из ху.
Типа такой хуйни. Это не конченный ответ, а пример что искать из нищебродских вариантов. На побаловаться не жалко. Обычный клон saleae и софт saleae logic.
https://www.aliexpress.com/item/USB-Logic-SCM-24MHz-8-Channel-24M-seconds-Logic-Analyzer-Debugger-for-ARM-FPGA-Logic-Analyzer/32873970588.html
Хотя ссылки говно — на порядок выше, чем у анона
Если издалека - то любое место с деталями для ноутбуков, типа
https://magazin-detaley.ru/matricyekrany/
https://magazin-detaley.ru/moduli-matrica-tachskrin-dlya-noutbukov/
и кучи подобных.
Пердуинка не потянет их, это голые стекла, которым надо постоянно слать данные для отображения и по разным интерфейсам - может быть параллельный 24 бита, может быть LVDS.
Использую 1.8" -> 7" сенсорные сборки на ILI9341 либо SSD1963, АЦП сенсора TSC2064 на всех. Сейчас на них цены взлетели, раньше брал по 12$ + доставка, получалось 15$. Теперь же они ОЧЕ дорогие, как найдёшь.
I2C гасится когда у тебя любая из его ног лежит в нуле, то есть просажена на землю ака КЗ на минус. Так как тактирующий и информационный по-умолчанию равны VCC, то МК начинает сканирование на предмет датчика и виснет. Бери тестер и звони контакты.
>Потому что надо будет переходить на atmel studio
Для домашних поделок ты вправе использовать что угодно, хоть ArduinoIDE, хоть WinAVR, но все профессионалы пишут код для avr только в AVR Studio.
>и писать в 3 раза больше кода для мигания светодиодом.
Huh?
while (1)
{
PORTB ^= (1 << PB5);
for (long int i = 0; i <= 1000000; i++) { asm("nop"); };
};
>все профессионалы пишут код для avr только в AVR Studio
Если кто-то пишет код для атмег в эклипсе или visual studio, то можно сразу утверждать что это не профессионал?
Принципиально ни чем. Коды команд те же, единственное что их меньше у tiny, которые например не умеют в команду mul (умножение). Может больше команд IN/OUT из-за малого количества регистров.
>но все профессионалы пишут код для avr только в AVR Studio
Ага, и кубики в солидворксе рисуют. Проходили уже.
>PORTB ^= (1 << PB5);
Вот почему всё изподвыподверта? Это же понятнее:
digitalWrite(5, st=!st);
Конечно, можно свою функцию написать за пару секунд, но в этом и суть С, что нужно заново изобретать велосипед, хотя вот он готовый за углом стоит.
Да, мне впадлу гуглить и мараться дерьмом.
Как в пердуиноиде делать прямую запись в регистры?
Например в UDR, SREG, OCR1A?
Как явно сбросить-установить бит I в регистре SREG (читай глобально включить-отключить прерывания)?
Как написать обработчик прерывания ISR (имя прерывания)?
>Ага, и кубики в солидворксе рисуют. Проходили уже.
Не знаю, кого ты там проходил. Никакая серьезная фирма не будет во встраиваемых системах, от которых зависят жизни людей, использовать ардуино-иде, cv-avr и т.д.
>>PORTB ^= (1 << PB5);
>Вот почему всё изподвыподверта? Это же понятнее:
>digitalWrite(5, st=!st);
Где там изподвыверта? Там проще некуда. Только на си выйдет в три раза меньше машинных команд, чем в твоей функции.
>digitalWrite(5, st=!st);
Именно digitalWrite это одна из наиболее дурацких вещей, которые есть в ардуине. Эта функция делает множество лишних действий только лишь из-за того, что указывается не номер порта и номер разряда в этом порту, а номер вывода на плате.
GPIO это в любом случае просто, а ты попробуй использовать таймеры в режиме захвата. Да хоть просто частоту ШИМ попробуй настроить. А что будет если поставить кварцевый резонатор с другой частотой, допустим для снижения потребления?
Нет, ардуиновская хрень слегка упрощает только простейшие действия с периферией, чуть что посложнее и оно будет только мешать.
>Никакая серьезная фирма
А ты мамкин максималист — тебе сразу боинг подавай? Фирмы бывают разной серьезности и для мелких компаний достаточно CAD проще, потому что процесс идет быстрее и ориентирован на сотрудничество более мелких групп — меньше гемора с базами данных и настройками.
Скорее наоборот, если ты в сжатые сроки начнешь ворочать солид, который съедает время на побочные телодвижения, то ошибок ты нагородишь столько, что пизда всем жизням людей.
>Там проще некуда
Какие-то сдвиги и путанная логика, когда в ардуино ты указываешь номер пина и его состояние — всё.
Я еще с таким не сталкивался. Мне пока незачем.
Возможно. Я пока не сталкивался с нерешаемыми задачами.
>А что будет если поставить кварцевый резонатор с другой частотой
Будет работать все медленнее. Выше с этим маялся.
В итоге самый эффективный — это ардуино иде.
1й не эффективен
2й и 3й опасны для пользователя
4й хотя бы ракетами забросает, хотя вращающиеся пистолеты могут выстрелить назад.
> Можно ли через ардуино иде сделать атмеговский хекс?
Да, она его и делает, только кладет хуй знает куда. Думаю, можно спалить в логе куда именно, или через process monitor в винде.
> А если можно, то зачем тогда ардуина сама?
Это готовый к удобному использованию development board. Хочешь - бери голый чип, ставь кварц, трави плату, етц самостоятельно.
>ставь кварц
У меги есть своё тактирование.
>трави плату
Есть же зиф-кроватки, их можно воткнуть в бредборд спокойно.
>А если можно, то зачем тогда ардуина сама?
1) "Простой" язык программирования для новичков. Позиционируется якобы как язык для вкатывальщиков, которые со временем начнут заниматься серьезно, но на самом деле тот, кто решил вкатываться через Ардуино, так и остается Ардуинщиком.
2) Хекс файл заливается в загрузчик через UART, а не посредством программатора. Нажал одну кнопку в иде - залил прошивку скетч. Пользователь не может накосячить с фьюзами при прошивке.
3) Макетная плата.
1) так я о нём и говорю. Если ты пишешь на идешном языке, и оно компилится и под атмегу, то смысл?
2) ну разве что. Хотя идиот найдёт и как кирпич сломать на ровном месте.
3) так с атмегой диповой проще же, не?
Краткий экскур. На 11 порте висит ардуина, которой очень хочется управлять из терминала. Так как я лютый быдлокодер, с последовательными портами не работал, скопировал пример отсюда blablacode.ru/programmirovanie/392, изменив лишь названия переменных.
Так вот, что я делаю не так, что у меня ничего не получается? Качал пример исходник, но все равно ничего не получилось. Значит это, что я безнадежен и мне навсегда закрыт путь в IoT?
>Можно ли через ардуино иде сделать атмеговский хекс?
Да, через экспорт в бинарный файл из меню "скетч". Хекс сохраняется в раздел проекта (поэтому тебе не дадут экспортировать, если ты не сохранил проект)
>А если можно, то зачем тогда ардуина сама?
1. если ты связываешься с какими-то другими прогами. Например в протеусе можно загрузить хекс и просимулировать работу ардуины.
2. загрузить в голый мк. Как раз щас появилась такая задача — хочу построить свою плату из шести контроллеров в связке, и не хочу городить огороды из готовых плат с загрузчиками. А так у меня стоит плата с резонатором и разъемом под UART всего лишь — компактно.
Минус в том, что приходится делать лишние телодвижения с сохранением в хекс, потом загрузкой через прошивальщик, но так делают уже для готовых продуктов, когда прошивка уже готова. Я например на стадии разработки прошиваю напрямую через ардуино иде в ардуино уно, а когда код готов, то записываю через UART в голый мк.
Кроме того, ардуина подразумевает сохранение бутлоадера, что занимает память. А в голый контроллер можно записать без него.
>но на самом деле тот, кто решил вкатываться через Ардуино, так и остается Ардуинщиком.
Истина. Самому сложно переходить на стм32 или авр студио — слишком уж все легко и интуитивно сейчас. Так же подсел на VB.NET (вроде как тоже есть поговорка, что начинающий с бейсика никогда не станет настоящим программистом, потому что другие языки будут ему чужды). Но мне похуй — я не программист по специальности и для моих скромных запросов хватает.
Для настройки тактирования использование фьюзов это действительно как-то не очень. Но где еще ты будешь хранить бит защиты прошивки от чтения?
В STM32 фьюзы тоже есть, только называются они там как "option bytes".
Потому что они есть, как оголенный провод из стены. Я вот тоже хотел их избегать, но кто я такой?
Ты линкуешь как-то не так. Твой 32-х битный экзешник почему-то хочет 64-х битные dll-ки.
Вот, теперь понял. То есть по большей части проблема в необходимости бутлодера.
>необходимости бутлодера
Ну если ты впихнешь в плату ардуино уно купленный где нибудь в чипе и дипе микроконтроллер, то у тебя ничего не прошьется. Для прошивки ttl конвертером тоже понадобится бутлоадер.
>Вот, теперь понял
>проблема
А я не понял что ты считаешь проблемой. Хекс это скомпилированный бинарник, который шьется в любом случае.
>То есть по большей части проблема в необходимости бутлодера
либо в необходимости дополнительного места, либо в необходимости использовать хекс где-то еще, кроме как непосредственно в ардуине.
... либо я не знаю как зашить бутлоадер в чистый мк, а потом прошивать как обычно ttl конвертером, поэтому хуй с ним — куплю usbasp и буду ебаться с транспортировкой хекса и теребить фьюзы.
USB-TTL конвертер, которыми прошивают ардуины мини — те, у которых отсутствует собственный прошивальщик на плате. Я не знаю как устроен встроенынй прошивальщик в уно и нано.
>собственный прошивальщик на плате
"Прошивальщик" это и есть USB-TTL чип уже впаянный на плату.
Мимо проходил
Входить по сети. Гугли для своего дистрибутива как включить SSH, что там и где надо на флешке отредактировать.
А ещё чтоб настройки по DHCP подцепились. Но это в 2019 году везде включено. Только если у тебя не какой-то специфический дистрибутив там.
Для установки SSH тоже нужно пару штук сделать в устройстве, опять таки нужен экран. Дистрибутив Raspbian (нужен именно он).
>USB-UART
Интерфейс UART — в магазинах называется "USB-TTL конвертер" и задействует пины RX и TX на микроконтроллере.
Интерфейс SPI — в магазинах называется USBasp или USBisp, и задействует пины SCK, MISO и MOSI
>И почему ТТЛ
Этого я не знаю, в магазинах именно так называются. По КМОП и UART магазин ничего не выдаст или выдаст не то, что ищешь.
Не нужно. Вставляешь сд карту в пеку через какой-нибудь кард ридер и прописываешь авто старт SSH.
>в магазинах именно так называются
Нет. Если только это не кривой перевод с китайского на алиэкспрессе.
Называй вещи правильно.
Как из этого собрать роутер? Где взять скетч?
Пердуина на Wiznet W7500 с одним сетевым интерфейсом и внешний шилд на Wiznet W5100 под второй сетевой интерфейс.
Так втыкай, хули ты мозги ебёшь
Есть ext4 браузер для винды, гугли. Либо прокидывай флешку в виртуалку с линуксом.
Я не знаю как тебе проще, но если есть лишняя флешка, качай убунту с ubuntu.com и грузись с неё. Там без установки запускается обычная убунта, в которой сидеть можно. В ней всё откроется.
Ну или гугли как на винде открыть.
(Есть мысли, использовать 2 ноги, как вход, считать импульсы по фронту, записывая в переменную, увеличивая ее значение, а после того, как количество импульсов достигнет 16, обнулять переменную и производить подсчет импульсов заново)
> считать импульсы по фронту, записывая в переменную
Пердуинщики набежали?
Есть же режим внешнего тактирования таймера, который сам будет считать независимо от выполняющегося говнокода.
> да хоть на диодах в двоичной системе
Просто в основном цикле выводишь значение счетчика в порт.
С учетом того что 4 разряда, а это максимум 9999, ближайшее 16К - нужно 14 ног под светодиоды для отображения в двоичном виде.
Кнопку для сброса можешь не делать, а перезагружать сам МК.
Вопрос что делать когда счетчик досчитает до 9999 и переполнится - на твоей совести.
Бля, в шары долблюсь. 4 разряда это оказывается 4 бита, а не десятичных разряда.
Пердуину в помойку, бери счетчик 74HC161, на выводы Q3-Q0 через резисторы вешаешь светодиоды и будет тебе счастье.
Импульсы подавать на вход CP.
https://assets.nexperia.com/documents/data-sheet/74HC161.pdf
Задание состоит в том, чтобы реализовать счетчик именно на мк, не важно каким программным способом
Образно говоря, задание получил в форме
«Есть импульсы, есть мк и устройство вывода (lcd дисплей, например) - ебись как хочешь»
Сказать честно, я сам - тот еще распиздяй, так что - большего и не заслуживаю
Если няшный трапик - попробую что-то нацарапать. Только вот тестить не на чем, просто по документации будет писаться и вывод на 4 светодиода.
Зря ты так. Настоящие распиздяи не пытаются выяснить, как справиться с заданием на анонимных форумах
На 4 бита. Читай комменты в самом начале main и проверяй.
Внезапно. Студия умеет и понимает передергивание PIN и при этом срабатывает счетчик.
Проверил, все идеально. Без твоей помощи не вывез бы, спасибо.
Сейчас про таймеры почитаю, чтобы разобраться полностью в коде и представлять, как это все работает
обычно я жду пока кто-то что-то сделает, а потом беру эти наработки и спокойно все сдаю. Но тут никто не понимает, что вообще происходит и как это делать, приходится самому что-то выяснять
Что бы ты в Аду сгорел! Ты будешь оплачивать психолога и лечение бессонницы и ночных кошмаров после таких отвратительных ответов?
Дядя, это опять ты? Если честно не обучен адекватно выражать благодарность, но, правда, спасибо
Кстати, TCNT0 вроде задает начальное значение таймера, TCCR0=0x07 задает его срабатывание на внешние импульсы по фронту. Но как он обнуляется, понять не могу. Подскажи, пожалуйста
А, понял, я идиот, он и не обнуляется вовсе, просто еще один разряд не выводит, а подсчет так и идет
Все проще. Смотри верхний правый угол.
Как мне декодировать полученный сигнал? Я думал, что из-за того, что сигнал может быть очень зашумленный, то лучше это делать на компе, но я так и не смог найти никаких алгоритмов связанных с этим. Вероятно плохо искал, писать самому конечно можно, но думаю, что такой вещи должно быть посвящено очень много исследований. Если же сигнал +- не сильно засранный то может попробовать просто сделать схемку с компоратором, если я правильно назвал эту схему.
Бля, есть же передача данных по ИК — в старых телефонах такая техника была. Долгая шо пиздец. Потому и использовали ИК, чтобы отсечь стандартное освещение.
>нагуглил что мне нужен асинхронный протокол передачи данных
Например UART. Такое используется в некоторых измерительных приборах для гальванически изолированной связи с компьютером. Даже пердуина не нужна, только два переходника USB-UART.
Или есть вариант чуть сложнее - IrDA, тот же UART, но с дополнительной модуляцией.
>сигнал может быть очень зашумленный
Тогда используй корреляционный прием, согласованная фильтрация там и все такое. И соответствующие сигналы, коды Баркера и прочие.
В душе не ебу. Наверное фазовая или частотная.
Проблема в том, что я не уверен, что при большой частоте лазер будет так быстро включаться и выключаться. К тому же я хотел бы попробовать сам реализовать это софтом. В общем я посмотрел проекты для чтения азбуки морзе на ардуине. Вроде что-то навоял. У меня в общем программа читает, что выдает фоторезистор. Ждёт начальный бит "1", если встречает его - ожидает следующие 8 бит, потом ждёт последний и отправляет по сериал порту в программу на С#. Какие есть подводные?
>Проблема в том, что я не уверен, что при большой частоте лазер будет так быстро включаться и выключаться.
UART можно запустить на низкой частоте. И тоже можно сделать программно, если так хочется.
>Какие есть подводные?
Будет не эффективно по сравнению с UART, скорость будет ниже чем могла бы быть при той же помехоустойчивости.
По сравнению с вариантами в которых используется модуляция, (IrDA и прочие) будет низкая помехоустойчивость.
Просто эта фигня к понедельнику, а контроллер для UART ещё найти надо, разобраться с ним. К тому же если я исходящий сигнал просто настукивать пальцем буду, например с кнопкой или реле, то там частота прямо совсем маленькая будет. Типа 1 Гц или даже меньше. Хочется хоть как-то контролировать процесс.
Какой нафиг контроллер? Он в микроконтроллер встроен, ты через него в свою пердуину прошивку грузишь! Да вообще пердуина не нужна, достаточно переходника USB-UART.
>Через Serial.print очевидно передаёт ерунду
Не может этого быть. Либо ты передаешь не ту строку, либо вообще не строку, либо выставил неправильную скорость.
Инфракрасный датчик ловит только определенный спектр
Пробовал с Serial.read, он даже переменную int не принимает, всё выводит как последовательность 4 цифр от 0 до 9. Заработало с Serial.readString.
>Serial.print
>Serial.read
Путать вход с выходом это как-то по-пидарски.
>он даже переменную int не принимает
Ну ты и ардуинщик. Описание этих методов читать не пробовал?
>>65905
Я не путаю, просто на передающей стороне оказалось всё в порядке, а на приемной - нет.
>из полученного стринга надо вылавливать определенные числа
Можно использовать сишную функцию sscanf. Это будет работать не слишком быстро, но для пердуины сойдет.
Только инфу из поста >>54453
>то вообще пиши планировщик задач и квантуй время выполнения задач
Охуенный совет. Вчера весело помигал светодиодом, а сегодня какой-то блядь планировщик, какой-то квантовщик блядь. В адруино всегда метровый страпон в жопу вводят после легкой прелюдии?
Готовь разрабатывать свое очко, пытаясь запустить псевдопланировщик и задержку на аппаратном таймере.
Какой нафиг планировщик? В подобных случаях хватит простейшего конечного автомата. В данном случае хватит millis() и сравнивать с константой.
Я чтобы не ебаться с мультизадачностью, просто добавляю еще один мк. Тоже управляю двигателями — четыре штуки и каждый крутится с разной скоростью с разным временем. Соответственно, есть один управляющий мк и четыре мк на каждый двигатель.
А еще смотри тутор мигания светодиодом без делея. А еще я видел на хабре кто-то уже сделал библиотеку для этого — нашел когда гуглил про обход делея.
https://habr.com/ru/post/337430/
Многозадачная Ардуина: таймеры без анальной боли .
>>66195
Зря сарказм. Чем сложнее система, тем это оправданней.
Просто погугли как полыхают пердаки когда в операционной системе не реального времени (обычный линукс, форточки) нужно выдавать сигналы с жесткими таймингами. Нормальные люди не ебутся, а ставят отдельный мк, где по тактам время выполнения рассчитано и уже через него делают обмен.
Скорее ты пердуинщик с квадратно-гнездовым мышлением, не осиливший даташит за ненадобностью и вешающий светодиоды на АНАЛоговые порты, которые питаются не от VCC, а от AVCC о чем написано в даташите, но кто-то клал хуй и начал сваливать свою тупость на производителя.
В любой прошивке для 3д-принтера пердуина крутит четырьмя шаговиками, регулирует два нагревателя, при этом еще читает из последовательного порта g-код и парсит его. Ах да, ещё на экранчик выводит информацию и реагирует на нажатия кнопок
Здесь вообще сделана многозадачность с планированием событий по таймерам
https://github.com/KevinOConnor/klipper
Чем больше у тебя корпусов и точек пайки, тем меньше надёжность твоей системы, тем больше она жрёт питания и больше её цена. Хуй знает, с чего ты решил, что установка нового МК оправдана
>вешающий светодиоды на АНАЛоговые порты, которые питаются не от VCC, а от AVCC о чем написано в даташите
PB5 (SCK/PCINT5) это цифровой порт? В даташите написано, что да.
Если правильно понял твой высер.
Если заработает как надо - чтобы ты сдох и горел в Аду, выебанный суккубами!
>В любой прошивке для 3д-принтера пердуина крутит четырьмя шаговиками
Так он управляет ими последовательно, а не одновременно с разной скоростью. У меня-то у двигателей скорость разная и работают они порой параллельно.
У пека есть мультизадачность.
>>66243
Ну все гнида, готовься. В самое ближайшее время ночью, когда ты будешь в сонном параличе мы прилетим и высосем всю твою энергию через страх и секс, после чего ты умрешь.
Если реально - задание не совсем верно выполнено согласно картинки, где 1 на выходе только между восходящим и нисходящим фронтом, а в говнокоде - между 2 восходящими фронтами. Не вижу особо проблемы, в реальных сдвиговых регистрах так же.
Для обычного задания этого за глаза, не думаю что он будет вдаваться в тонкости. Теперь осталось разобраться в коде самому
>Теперь осталось разобраться в коде самому
Заметь - в этот раз не накалякал "спасибо". Отличный результат, кажется получилось отучить. Есть к чему стремиться. Я люблю смотреть на страдания.
Как же? По даташиту? По шпротеусу? По божественной AVR студии, напоминающей засохшее говно мамонта?
Да у меня от тебя прерывание. Ушел за газировкой и попкорном перед началом спектакля - "программная реализация сдвигового регистра на avr". Ты же расскажешь как оно работает и почему были выбраны именно такие решения, а не другие?
Да бред. Нет смысла вращать один двигатель с одной скоростью, а другой — с другой.
Например ты печатаешь цилиндрическую вазу, тогда в этом случае скорость xy шаговиков изменяется по синусу/косинусу, скорость z постоянна и очень мала, скорость экструдера тоже постоянна, но зависит от толщины сопла
LM1117 должен выдавать 5 вольт. Если выдаёт не то, меняй для начала его. Они дешевле семечек стоят.
Я в электронике не очень, больше по программированию, потому и спрашиваю.
> по 70р
Это четвертая часть цены этой платы, не говоря уже о том, что минимальный заказ в чипе и дипе — 300р. Есть смысл покупать регуляторы напряжения где нибудь на алике пачкой или искать аналоги. Я пикрилейтед в тиксере за 14 рублей взял, только не знаю подойдет ли он твоей плате (кроме того, что у него исполнение другое), по характеристикам входное до 35в, а выходное 5в.
Подойдёт, там 1-вход питания, 2- земля, 3-выход. У LM1117 1-земля, 2-выход, 3-вход.
>если деньги есть
>70 рублей
Не о тысячных партиях речь, вроде идёт. И 50 рублей разницы, когда в в чипе можно купить сегодня, а с алика в июле придёт — наверное, можно и переплатить.
>в чипе можно купить сегодня
Нельзя. Доставка один рабочий день — минимум, с ограничением по минимальной цене разница такая, что можно купить новую ардуину.
Если у него нет регулятора в запасах, а ждать не хочется с алиэкспресса (где доставка будет стоить больше чем сам товар), то выгоднее купить новую плату.
Вот есть же люди, которые могут найти в чипе дешевую деталь. Так же искал катушку — у меня выдает 500-1000р, а у чувака 180р.
Вот только у тебя вся распиновка не совпадает.
Пиздец, линейный стаб найти проблема.
Да зайдите в ремонтные мастерские - за десятку продадут.
1117 даже на платах сиди-ромов или хдд можно найти; на материалах на худой конец.
А уж если обмазаться аналогами...
Сказать проще чем сделать. Ремонтные мастерские нахуй пошлют, по крайней мере в ДС меня посылали — либо говорят, что нет (кому они пиздят?), либо говорят, что не разрешено. Разве что самому ковырять другую электронику, но тут не каждый готов разобрать работающее устройство ради починки платы за 200 рублей, а неисправные железяки мало кто хранит.
Если ты только вкатываешься в электронику, то починка всегда будет дороже чем новое устройство, если оно стоит пару долларов.
На партсдирект продают дешево запчасти для смартфонов и ноутов, причем могут и одну штуку продать, но я нашел только один регулятор (на все магазины) и он 3.3в
https://www.partsdirect.ru/goods/79795
... но конечно успех зависит от количества вложенной энергии в поиски.
>Доставка один рабочий день
Внезапно, магазин находится 24 городах, и можно и самому заглянуть +100 рублей на транспорт, да., если в одном из них живёшь. Не говоря о том, что наверняка могут существовать и какие-то ещё местные магазины в его городе.
>то выгоднее купить новую плату.
И опять либо ждать три ода с али за 200 рублей, либо уже за 500+ покупать, что уже явно гораздо больше, чем доплата по сравнению с али в 50-100 рублей за срочность в местном магазине.
Да и покупка новой платы лишает наслаждения от починки, что как бы тоже приятно и полезно.
Есть три массива разной длины.
int a[]={1, 1};
int b[]={2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2};
int c[]={3, 3, 3};
Можно ли (?) как-то сделать еще один массив с указателями на эти массивы, типа:
int abc[]={a, b, c};
Просто если я буду делать многомерный массив, то пиздец сколько памяти сжирается только потому, что для одного из измерений нужно выделять дохуя ячеек, хотя остальные совсем небольшие.
>И опять либо ждать три ода с али за 200 рублей, либо уже за 500+ покупать
В тиксере стоит 299р Atmega328
http://tixer.ru/catalog/Arduino/kontroller_uno_sovmestimyy_s_arduino_uno_ch340/
В робошопе 280р Atmega16U2
https://roboshop.spb.ru/arduino/arduino-uno-ch340
Это без учета доставки, конечно.
А все, норм, просто у меня вместо
int a[]={1, 1};
Был:
char a[]={"one", "two"};
И я пытался сделать так зачем-то:
char* abc[]={&a};
В робошоп ещё надо пиздовать на Восстания, а это 72 рубля туда-обратно. И то, если у тебя есть подоржник. А за наличку вообще 90. Это притом, что с Алика доставка бесплатная обычно
Ладно, даже "бесплатная доставка" всегда заложена в стоимость. Просто даже с доставкой дешевле выходит
Чет нифига не пойму. Как мне теперь получить обратно значение а[0], к примеру, через abc[]?
Пишу значит я
char st = &abc[0][0];
И мне выдает какую-то муть
Братан, иди в /pr/ с такими вопросами, научись нормально байтоебить на плюсах, разберись с указателями, напиши и отладь свой алгоритм на компе с тестовыми данными, потом уже пытайся запустить это на ардуине или че там у тебя.
>научись нормально байтоебить на плюсах, разберись с указателями
... и закрой этот раздел. Это такой троллинг?
В протошилде под мега256 выводы хоть и смешены, но расстояние между ними сохраняется.
В протошилде под уно р3 - сосу хуй, выводы смещены ВНУТРЬ и поэтому не могу вставить шилд с LCD. Как так то?
Все бы ничего и можно LCD шилд перепаять (СУКА. Это паяльник надо греть!) на крайние положения, но как быть с 8 и 9 выводом? Под них нет мест. Да, я ленивое хуйло которому впадлу даже схему на шилд искать.
>делаются на мк CH340
>будет ли он работать на CH340G?
Дяденька, ты упоролся? Это преобразователь USB-UART, который никак не программируется и к используемой меге в пердуине никакого отношения не имеет и используется только для прошивки и мониторинга порта
>никак не программируется
Не совсем так, там можно прошить VID, PID, серийный номер и что-то еще.
Трипл точно не врет.Изначально вопрос был CH340==Atmega328?
Поэтому так и писалось без особых подробностей.
Так что нет, никак не клон, не замена, не аналог.
Твой шилд утерял свою задачу. Можно взять макетные провода со штырьками, да повтыкать их.
Я потому эти шилды и не люблю.
Так я и не спорю, что это не аналог атмеги и вообще не микроконтроллер. Всего лишь указал на небольшую неточность — кое-что в CH340G программируется.
Правильно я понимаю, что это все можно подключить к любым диджитал пинам? Но зачем тогда в даташите подписывают на некоторых пинах MISO и MOSI? Типа только через эти пины прошивка запишется в контроллере?
>Можно взять макетные провода со штырьками, да повтыкать их.
Ну нахуй. Думал собрать монолитную этажерку где 1(2) этажа - протошилды под всякую херню и сверху LCD.
Можно впихнуть от меги, но как-то порнографично смотрится не эстет, но чуть коробит даже если поснимать лишние разъемы (самая правая сборка).
Видимо снова - здравствуй Али, покажи протошилды и длинные pls или как они там зовутся. Такой вот нежданчик прилетел.
В микроконтроллерах есть GPIO, а есть аппаратные интерфейсы.
GPIO - это когда пишешь что-то в регистр (в пердуине обычно через всякие digitalWrite и прочие) и на соответствующих выводах устанавливаются логические уровни, 1 в 1 соответствующие тому что записали в регистр.
А есть аппаратные UART, SPI, I2C, таймеры и прочее. Они работают иначе - записываешь что-то в соответствующий регистр, а оно автоматом на выход выдает сразу целую последовательность. А пока аппаратный интерфейс выдает все это, программа в микроконтроллере может делать что-то еще. Иначе, чтобы выдать на выход последовательность, придется несколько раз записывать данные в регистры GPIO, а в промежутках ждать и т.д., т.е. программа должна будет совершать больше действий.
>Правильно я понимаю, что это все можно подключить к любым диджитал пинам?
Из того что я написал выше, следует что можно, но это приведет к тому что работать все будет несколько медленнее чем могло. Однако в ссаной атмеге 328 есть два аппаратных SPI, можешь подключить к тому, который не используется для программирования.
Если входящее 9В, то при потерях на 1N4007 в 0,6...0,7В потребуется 6 диодов 1N4007 в последовательном подключении.
Фух, я думал ты серьезно. Испугал меня.
https://www.microchip.com/wwwproducts/en/ATmega328P
http://ww1.microchip.com/downloads/en/DeviceDoc/ATmega48A-PA-88A-PA-168A-PA-328-P-DS-DS40002061A.pdf
Второй SPI там через USART. И, само собой, недостаточно подключить к соответствующим выводам, программная часть тоже должна быть немного другой.
А подключать параллельно вывод на программатор и вывод на карту — плохая затея? Программатор не полезет на флешку?
Одновременно работать точно не будет.
Если ИЛИ карта ИЛИ программатор - будет.
Карту если что можно вытащить на время прошивки, но вряд ли понадобится - обычно подтягивающими резисторами подтягивают управляющие сигналы(как минимум CS) так, чтобы устройство было неактивно при отсутствии сигналов.
Если чуть правильней - где-то была AN, где писалось что выводы программатора подключаются как есть (напрямую) к выводам контроллера, а мусор на SPI шине - через условно низкоомные резисторы (может пара сотен Ом, не помню).
https://pastebin.com/MWuYQPc3
это приемник (который получает байты)
https://pastebin.com/rn6ayeRp
это передатчик (который посылает байты)
Может быть все же посмотришь как делают программный UART?
И еще раз повторю.
>>сигнал может быть очень зашумленный
>Тогда используй корреляционный прием, согласованная фильтрация там и все такое. И соответствующие сигналы, коды Баркера и прочие.
Это совсем несложно, на самом деле.
Окей, боюсь не осилю.
Задавай их здесь, чтобы все видели и могли нагуглить, что за манера блядь ломиться в личку для решения общих вопросов
Окей, тогда начну с самого тупого. UART - протокол (пик 1). Есть уже готовые интегральные схемы для его чтения (пик 2). Вы предлагаете прямо в распиновку USB разъема ардуины воткнуть данные с фотодиода? Простите за тупнёж.
https://youtu.be/q0By7XtOcQo
Что-то типа такого, только между ними не провода, а некоторый мой условный лазер и фотодиод, сигнал которых я ещё дополнительно хардаврно смогу почистить и усилить.
Ебать я даун, это те самые TX RX выходы в нижнем правом углу? У меня получается в одну сторону будет информация передаваться. Тогда из TX передатчика у меня идёт на лазер, а с фотодиода на RX приёмника, верно?
>программный UART
>TX RX выходы в нижнем правом углу
Не угадал, это аппаратный UART, через который еще прошивка в твою пердуину грузится. Хотя можешь и через аппаратный UART сделать.
Ты хоть осознаешь, что пердуина грузится через переходник USB-UART?
>в универе
Это пиздец наверное какой универ. Высшее образование, специальность - программист АРДУИНО!
RXD и TXD затянуты должны быть до "1", так что вешай на фоторезистор сначала резистор в половину его сопротивления, а потом и компаратор. Иначе завалы по фронтам и гадости при чтении байт.
https://www.google.com/search?q=фоторезистор+компаратор
Пробовал вчера поставить минимальную скорость для аппаратного, минимум получается все равно слишком быстрым. Так что придётся через софтовый. Да, осознаю конечно. Вчера ещё погуглил, библиотека Wire это не +- то что мне нужно?
Все, простите за тупые вопросы - разобрался. В какой нибудь такой плате такая же атмега поставлена только поменьше и впаяная в плату типа https://iarduino.ru/shop/boards/xduino-uno-r3-na-ch340g.html. Причем это тут большими буквами написано, но я с первого раза от чего то не смог прочитать.
Хотя я в ардуинах не разбираюсь, но возможно ты ошибаешься.
http://ww1.microchip.com/downloads/en/DeviceDoc/ATmega48A-PA-88A-PA-168A-PA-328-P-DS-DS40002061A.pdf
Страница 182 и 204, написано как считать скорость. BAUD=Fosc/(16хUBRR + 1), при этом UBRR составлен из двух регистров, в сумме получается 12 разрядов, т.е. максимум 4095. Итого можно снизить скорость до 25 бод/с при кварце на 16 МГц. Если и этого много, то поделив тактовую частоту (регистр CLKPR), можно снизить еще в 256 раз, если я правильно понял. Неужели у тебя лазер настолько медленный? Не может быть такого, если только в параллель к лазерному диоду не стоит конденсатор на несколько микрофарад.
Или можно использовать просто CH340G из пердуины, без микроконтроллера, там минимальная скорость 50 бод/с.
У меня не через лазер, а через поляризацию его. А там будет "инертность" катушки, то есть что она не мгновенно изменяет свое магнитное поле, инертность фотодиода итд. Мне бы в идеале несколько бит (2-8) в секунду для тестов.
>А там будет "инертность" катушки, то есть что она не мгновенно изменяет свое магнитное поле
Если так, то возможно схема не очень. Нужно подключать катушку к стабилизатору тока, если хочешь уменьшить переходной процесс, или хотя бы через резистор.
>инертность фотодиода
Фиг знает что у тебя там за фотодиод, но в ИК пультах на несколько порядков быстрее.
>Мне бы в идеале несколько бит (2-8) в секунду для тестов.
>поделив тактовую частоту (регистр CLKPR), можно снизить еще в 256 раз
Получается в пердуине минимальная скорость около 0.1 бод/с. Хотя там один UART, а тебе наверное еще нужно соединять с компом.
Я вчера пытался что-то с теми портами сделать, у меня на скорости 1200 получилось передавать от компа одной ардуине, от нее другой, а со второй читать с компа снова. По идее можно пойти в этом направлении и попытаться замедлить ещё сильнее. Я вот не знаю правда какую минимальную я могу поставить в компе.
В C++ нету типа "байт", все эти byte и uint8_t определены как unsigned char.
Собственно потому я и хочу использовать сд-карту, потому что памяти мало, а тут получается нет смысла.
Объемы неизвестны, но может попробуешь старую 45 серию памяти от atmel?
У них есть небольшие SRAM буферы внутри, куда прочитал страницу, пофиксил, (стер), дал команду записи, или же просто прочитал, правишь, правишь, правишь, и при пропадании питания даешь команду на запись буфера.
Альтернативно поищи память 23lc1024 - это SRAM с SPI интерфейсом или что-то типа 24F (fram) серии - может хватит на твои нужды.
Опять дополнительные железяки. Попробую создать копию файла, потом удалить первый, а второй переименовать. Надеюсь можно открывать одновременно два файла.
Да, проверил — работает. Параллельно можно открыть несколько файлов: из одного побайтово читаю, а в другой эти же байты записываю. На моменте, где нужно вписать другою инфу, я это делаю, а потом оба закрываю. Один удаляю, а второй переименовываю.
Так даже безопаснее получилось — я не ломаю оригинал на время своих манипуляций.
... а еще оказывается, что команда print из библиотеки SD дописывает информацию в уже существующую. Я-то думал что будет переписывать байты с самого начала. Не знаю каким образом определяется место начала записи, может все же его можно как-то менять.
Есть ли что-то типа такого шилда https://www.aliexpress.com/item/CPLD-Shield-V1-0-Altera-CPLD-core-board-Adapted-for-Arduino-extension/32912520088.html с CPLD на большее число ног и под mega2560? CPLD/FPGA полностью подключена ко всем выводам пердуины и куча свободных выводов с двух сторон.
Если нужно например двух-трех-... процессорную пердуину собрать в одну кучу, а не рассыпухой на столе - как это можно сделать? Банальная перепайка разъемов тут не поможет.
Вопросы нахуя идут нахуй.
>Выкидываешь пердуиноIDE и пишешь сразу на чистом Си
А в пердуине не чистый си++? Прям на ССИ УХ БЛЯ, без плюсов? Или в чем разница тогда, дядь?
Если он не успевает хуярить через digitalWrite, ему твоих портов напрямую разве что путем жутких ассемблерных извращений хватит.
Репортнул некропостера.
Есть в бытовой сети выключатель, который замыкает высоковольтную цепь. Какой на эту цепь проще всего повесить девайс или схему, чтобы информация о кратковременном замыкании этой цепи передавалась в ардуину на gpio?
Пример - постоянно включенная ардуина подсчитывает, сколько раз в комнате включили свет.
Интересует самое быстродействующее, неубиваемое и гальванически развязанное решение.
>быстродействующее, неубиваемое и гальванически развязанное
Выберете что-то одно.
Для полных имбецилов - реле на 220 вольт параллельно лампочке. Мне похуй что у них есть параметр - непрерывное время нахождения катушки под током. Посмотри на пускатели, реле на лифтах - все они 24часа в сутки под питанием.
Еще тупее - зарядка на 5В от фаллоимитатора параллельно лампочке - вот тебе готовый сигнал 0-5В.
Можешь заебашить 2 оптопары - по одной на каждую полуволну и поставив RC фильтр ловить сигнал о наличии сети.
Можешь поставить любой транс на 50Гц и с его обмотки смотреть напряжение.
Не понял задачи. Ты хочешь объединить несколько ардуин в одну? Нахуя Зачем перепаивать разъемы ты собрался?
Чем тебе шилд по твоей ссылке не угодил? Ты хочешь сказать, что на том шилде меньше разъемов чем лапок у чипа? Вроде там на картинке, массив разъемов виднеется и можно разглядеть пин 44, например.
В общем, не понял чего именно ты хочешь добиться.
>постоянно включенная ардуина подсчитывает, сколько раз в комнате включили свет.
Ардуина обязательно должна работать постоянно? Просто если ты адаптер питающий твою ардуину подключишь к своему выключателю, то по сути включение ардуины и будет служить индикатором включения твоей лампы — просто в функцию SETUP добавляешь код счетчика и EEPROM или SD карту, чтобы данные не терлись после отключения пердуины.
Правда не думаю, что это быстродействующий способ.
>Можешь заебашить 2 оптопары - по одной на каждую полуволну и поставив RC фильтр ловить сигнал о наличии сети.
Нагуглил оптимизированный вариант этой хуйни, спасибо за подсказку.
>Не понял задачи. Ты хочешь объединить несколько ардуин в одну? Зачем перепаивать разъемы ты собрался?
Каждую верхнюю пердуинку сделать шилдом. На первый взгляд их можно соединять. IIC и SPI можно соединять как есть, а вот с любимым UART - сосу без перестановки rt-tx.
>Чем тебе шилд по твоей ссылке не угодил?
Всего одной мелочью - поставив шилд сверху хуй подключишься к обведенным выводам, максимум 7 выводов если угловую гребенку запаять и светодиоды просру. Да и не уверен что оставшиеся подключены к пердуиновским выводам.
Под сферическую хуйню в вакууме. Снизу пердуинка опроса чего-то, выше шилд с clpd ввода-вывода и коммутатор, выше шилд эмулятора, еще выше - lcd шилд от эмулятора. Такой вот монолитный кирпич. А уж если взять DUE...
Надо паять проводки, но тогда смысл шилдов теряется.
Че бля? Нихуя не понял. Картинкой для имбецилов нацарапай пару вариантов что требуется. и картинку того, как тебя в котле будут ебать в сральник суккубы. Кто сказал что инкуб не может прикинуться суккубой?
Задался вопросом, как подключить ик порт с пультом. Да вот китайская жопа говорит, что хуй мне и запутал выводы на порте.
Где на этом порте 5v, grn, out, анон?
Заранее спасибо за ответ.
Сама китаева жопа - https://ru.aliexpress.com/item/Hot-Selling-New-Infrared-IR-Wireless-Remote-Control-Module-Kits-For-Arduino-Wholesale/32562721229.html?spm=a2g0s.9042311.0.0.274233edcuGFU7
Вроде как документация - https://datasheet4u.com/datasheet-pdf/ETC/HX1838/pdf.php?id=713831
Я процитировал задание, лел. Дешифраторы, шифраторы и демультиплексор как отдельные элементы, МК выполняет функцию мультиплексора. С числом выводов, скорее всего, объебался, ибо только прикинул схему подключения. Числа, как я понял, задаются вручную, с помощью подачи на входы шифраторов логической 1 или 0. На картинке взял числа рандомно. Странное задание в общем-то
Shifty myreg;
void setup() {
myreg.setBitCount(8);
myreg.setPins(11, 12, 8);
}
void loop() {
myreg.batchWriteBegin();
myreg.writeBit(0, digitalRead(12));
myreg.writeBit(1, digitalRead(11));
myreg.writeBit(2, digitalRead(10));
myreg.writeBit(3, digitalRead(9));
myreg.batchWriteEnd();
}
Полнейшую хуйню нарисовал.
Слева - уже соснул,шифраторы справа в оригинале выдадут - ХУЙ, ошибка кодирования, так как они принимают на входе сигнал "1 из..", а у тебя аж 2 единицы и больше на входена входе.
Допустим подал 0100 (свернется пусть в 10) и 0001 (свернется в 00).
Нахуй тут мега всралась? У тебя 2 бита данных и 2 бита адреса, а двумя битами адреса можно адресовать 4 адреса. 2 адреса в пустоту?
Хуй с ним, 4 адреса - 2 из них рабочие, 2 пустых (зададим произвольное значение, а это уже противоречит заданию).
КАК ТЫ СУКА СОБРАЛСЯ ДЕШИФРИРОВАТЬ 2 (ДВА) ебаных бита в минимум 8 значений? Это НЕВОЗМОЖНО.
Пусть объебался и у тебя 3 вывода на выходе - да, получишь на выходе код 1 из 8. ОДИН ИЗ.., а не 1010 и 1110 - дешифраторы так не умеют, будет ОШИБКА.
Будет нормальное задание, а не хуйня - тогда и приходи.
>оригинальную ардуинку uno/nano
Зажиточный господин пожаловал к нам на огонек? СН340 заместо FTDI корежит своей китайностью?
Ну не так уж и дорого. Всего полторы килодеревяшки за уно 3.
Плата c мк в дип корпусе, у наших барыг стоит около 700р.
>Плата c мк в дип корпусе, у наших барыг стоит около 700р.
Всего ничего. У наших барых - сраная однослойная макетка где-то 10х10см около 250 стоит, а пердуинки.. Мега2560 стоит дешевле чем уно. Такое вот ебеняево. Кажется даже чипучупс очень нервно покуривает в сторонке.
Кстати, а где на алике есть макетки типа 150х200? Пытаюсь вбить "медные платы" или "печатные платы" или "PCB" мне выдает полторы продавца и у всех толщина 1.5мм. А у меня заклепки 2.5мм, а 2.0мм нигде нет.
Короче херь какая-то. Самые распространенные заклепки 2.5, а самая распространенная плата 1.5.
FR4-2 — это двухсторонний?
Сап
Глупый вопрос, но недавно заинтересовался темой ардуино, до этого на атмеге собирал часы, ну и поигрывал в shenzhen i/o
Суть вопроса. Можно ли на данной плтформе собрать например мемулятор спектрума?
Покупать малинку и ставить на нее мемулятор слишком попсово, я слышал что собирали эмуль на атмеге.
Погуглил, но чет нихуя толком не нашел
Спасибо
Плохо искал https://www.qrz.ru/schemes/contribute/comp/avr_zx_spectrum.html
А вообще - для большего реализма рекомендую идти на хуй в тред о ПЛИС >>316943 (OP) и самому делать клон клона клона очередного клона.
Да, обязательны, только они должны быть с другой стороны мк близко к выводам питания. Но это не удивительно, ведь только конченые говноеды ставят дип-корпуса под 45 градусов, или любые другие, если только это не смд для пайки волной и не обосновано технически (для выравнивания длин высокоскоротных линий)
Если это по питанию, то очень нужны. У меня attiny13 без них вообще не запускалась. Я тоже думал, что не нужны.
Ноуп. Слишком много места занимают. Максимум в некоторых шмегах есть встроенные единицы-десяток пикофарад для раскачки и стабильности часовых кварцев и не более того.
Какие емкости у УВХ АЦП - не вникал, точно не доли микрофарад.
Я, конечно, не знаю. Но можешь сделать делитель напряжения, где один из резисторов это твоя ручка регулировки.
Но это будет нестабильно, ящитаю.
Я так яркостью светодиодной ленты управляю, она вся мигает почему-то. Видимо из-за мельчайших наводок каких-то.
Двачую этого. Во-первых, ты сможешь использовать эффективный ШИМ для двигателя, а не транзистор в линейном режиме, который будет греться как печка. Во-первых, можно написать полноценный ПИД-регулятор. Схема, которую предлагаешь ты - это тупой и медленный пропорциональный регулятор. Ну и в третьих, можно использовать всякие дисплейчики, кнопочки, светодиодики по желанию.
Вот, зачем нужна Ардуина
>Не понимаю зачем параллельно делать два конденсатора к одним и тем же дорожкам.
Здесь не актуально, а в почти ВЧ схемах есть тема - ставить параллельно и рядом друг с другом несколько конденсаторов разного номинала (и иногда размера) типа 0.1m и 0.01m.
Ближе к реальности - посмотри схемы eval досок - там можно заметить кучу "мелких" конденсаторов в 0.1m и "большой" групповой на 10m или около того.
>>67490 Тут хреново стоят, так как рядом друг с другом а не ногами. Надо отдать должное - хоть землю кварца развели более-менее и без сквозных токов.
Когда скучно - почитай "Начальный курс черной магии" >>350317 там все расписано, как и даже влияние размеров конденсаторов и их эффективные рабочие частоты.
Каждый конденсатор фильтрует свою полосу частот. Чтобы убрать больше шума нужно больше разных фильтров. Подключаем три конденсатора, получаем три фильтра.
https://www.youtube.com/watch?v=BcJ6UdDx1vg
Если коротко - КМОП схемы потребляют ток только в момент переключений, и который сосется с ближайших конденсаторов. Если их нет - может нехватить напряжения и какой-то из триггеров защелкнется в 0 вместо 1 и настает пиздец схеме, особенно если нет схем автоматического восстановления. Например счетчик команд может не на 1 увеличиться, а на любое число со всмеми вытекающими последствиями (в лучшем случае попадешь в пустую память и дойдя до конца памяти МК неправильно перезагрузится)
Вопрос задал >>67544 не досмотрев видео. Если я правильно понял, конденсатор бОльшей емкости пропускает более высокие частоты перепада напряжения т.к. скорость накопления емкости меньше некоторых частот и они тупо проходят темными нефильтрованными. Поэтому рядом ставится конденсатор меньшей емкости, чтобы отфильтровать более высокие частоты.
И такие фильтры надо ставить ближе к ноге мк? Если, допустим, у меня несколько микроконтроллеров на схеме, достаточно установить только один общий фильтр?
Видел, спасибо
>Если, допустим, у меня несколько микроконтроллеров на схеме, достаточно установить только один общий фильтр?
Ставить надо как можно ближе к микроконтроллеру.
По-моему делают с помощью ШИМ, чтобы частотой переключения 0 и 1 имитировать мелодию. Или подключай модуль ЦАП, если хочешь плавно менять вольтаж, хотя все равно будет дискретным аналогом, зависящим от битности преобразователя (типа 5 вольт делятся на 1024 или 2048 ступеней)
Или забей в ютубе "пианино + ардуино" и посмотри как там делают тональность. Например это:
https://youtu.be/bHOqsk8TnGY
В описании есть готовый скетч. Потом все это адаптируй под свою синусоиду.
А зачем нужен стабилизатор напряжения (типа AMS1117), если нужно помимо них стабилизировать конденсаторами? На всяких схемах (пик 1) или модулях преобразователей питания (пик2) эти стабилизаторы обмазывают конденсаторами.
Иногда их называют регуляторами и тут как бы понятно: эти штуки понижают до нужного напряжения, а потом (или до) стабилизируются конденсаторами. А вот название "стабилизатор" путает.
Можешь не ставить, это не ultralowdropout, чтобы твоя ардуина смогла вывести их из зоны стабильности
http://4pda.ru/2019/05/20/357569/
Nano Every при цене $9,9 стала самой бюджетной моделью новой линейки. Она построена на базе микроконтроллера ATMega4809, работающем на частоте 20 МГц, оснащена 48 КБ флеш-памяти и 6 КБ оперативной памяти.
Второй новинкой стала модель Nano 33 IOT с ценником $18. Она работает на микроконтроллере SAMD21G18A с частотой до 48 МГц, имеет 256 КБ флеш-памяти и 32 КБ оперативки. Плата оснащена модулями Wi-Fi и Bluetooth, совместима с платформой Arduino IoT Cloud и включает микросхему, способную хранить криптографические ключи на аппаратном уровне, что обеспечивает защищёное соединение Transport Layer Security (TLS).
Следующей в линейке идёт Nano 33 BLE стоимостью $19. Она имеет поддержку Bluetooth и построена на базе микроконтроллера nRF52480 с частотой 64 МГц, 1 МБ внутренней памяти и 256 КБ ОЗУ.
Самой дорогой новинкой стала Nano 33 BLE Sense с ценником $29,5. Она поставляется с набором дополнительных датчиков (девятиосевой инерционный измерительный блок, датчики температуры, давления, влажности, света, цвета и жестов) для поддержки носимых устройств и управления жестами. В остальном она полностью идентична модели Nano 33 BLE.
Arduino также анонсировала модуль Arduino SIM для добавления поддержки сотовой связи на плату MKR GSM 1400, которая стоит $69,9. Такая SIM-карта может использоваться в более чем 100 странах мира с единым тарифным планом, который предлагает 10 МБ бесплатных данных на срок до 90 дней, после чего 5 МБ в месяц стоят $1,5.
Новые Nano-платы уже доступны для предзаказа, а поставки начнутся в конце июля.
Да, китайский драйвер для китайского CH340 не подошел.
Алсо, я зажиточный господин, потому что получаю деньги за свое хобби. Как вы можете заниматься этим годами и не получать ни копейки? Вы что, ебанутые? Или вы несколько лет диодами мигаете? Kaimi вон под ардуинку свою операционную систему пишет.
Опять обдристаю, и постараюсь поточнее, а не бредом в 3 утра.
Слева где шифраторы - похоже верно нарисовал, 4 вывода, а не 3. 3 Вывода под само число и 1 под ошибку кодирования. Вопросов нет.
Если брать задание - то там же в 2 раза больше будут шифраторы - пока забьем.
Дешифраторы справа - наебался в числе линий - из по 3 штуки должно быть. По входам-выходам вопросов нет.
А теперь расскажи про мультиплексор и демультиплексор...
Так понимаю он четырехразрядный на 2 адресных входа (типа верхний и нижний дешифратор)?
Ты понимаешь что в таком случае не добавив регистры на выход дешифраторов или на участок между мультиплексором и дешифратором выход "неактивного" канала демультиплексора будет выдавать 0 и на выходе дешифратора будет активен не тот выход?
Платиновый вопрос - нахуя тут мега? Если из нее делать мультиплексор, то где или откуда берутся адресный вход (какой канал транслировать) на выход?
Ну добавил 1 вывод который будет коммутировать на выход выходы верхнего или нижнего шифратора.
Кто, как и по какой логике будет управлять внешним демультиплексором (dms)?
Короче снова какую-то бесполезную хуйню нарисовал, которая неработоспособна от слова вообще.
>Да, китайский драйвер для китайского CH340 не подошел.
Это просто криворукость. Нахрена тебе вообще грузить прошивку через UART? Давно бы уже взял дебаггер JTAGICE.
>свою операционную систему пишет.
Чем операционная система для AVR (каких достаточно много), будет отличаться от операционной системы для пердуинки?
Многие принтеры на пердуинах, точнее на чипах AVR. Китайцы на этом зарабатывают деньги.
Купил себе Chiron за 35к и он внутри весь состоит из модулей, которые можно купить где нибудь на сайте "всё для ардуино".
Дядя, а идей как подключить и реализовать это хотя бы как-нибудь кривовато нет? Это ласт задание просто, думаю, сделать хоть что-нибудь и зачтут. Так понял основная цель - заставить мегу в качестве мультиплексора заставить работать - остальное вторично
И вообще взлетит?
>Так понял основная цель
Начинать разрабатывать очко, сосать хуйцы и делать бочку.
Когда говнокод подгоню пока не знаю, и так дохуя времени просрал пока нашел из чего можно собрать.
Это условно-вольно-бредовая реализация.
Триггеры 173 лишние, не заметил что они есть в декодерах 4514.
Есть псевдолиния задержки, за которую народ из ПЛИС треда проклянет и обложит хуями в несколько слоев.
Демультиплексор не явный, сделан на буферах 125 и 126.
Здесь ПРИОРИТЕТНЫЕ шифраторы, которые не боятся более чем 1 единицы на входе, выход EN=1 говорит что что-то есть на входе(хотя бы одна 1), а не все входы в 0. Как с ним быть? В оригинале бы его подавать на сигнал Е дешифратора и гасить все выходы, но думаю можно будет отмазаться что "забил хуй выдаю старое состояние входов шифратора".
Этот апофеоз(?) хуиты попеременно с частотой тактового генератора опрашивает выходы первого шифратора, выдает их в линию, через демультиплектор (адрес канала привязан к тактовому сигналу) направляет на нужный дешифратор. Если где налажал - поменять местами входы LE. Тупой закос под display link или что-то подобное.
Спасибо. Я так понимаю, со "всякими защитными элементами" надо делать как-то так:
http://wiki.amperka.ru/робототехника:подключение-мотора-через-транзистор
Ебаный ты гений, я-то думал, что там все намного проще будет. На словах препода подключил шифраторы-> мк -> демультиплексор -> дешифраторы, залил код - готово. На такое задание я вообще не рассчитывал если честно, особенно учитывая тот факт, что предыдущие (с которыми ты помог и пару самому получилось сделать) были не сложными
Хуй его знает. Заработает или нет.
PB0 - выбор анальных ласк, PB1 или PB2 - 1 значит есть что-то новое на входе, 0 - ничего нет, выдаем старое.
Если налажал с номерами аналов - похуй. Никакой разницы.
Написано на ассемблере. Тут ТЕБЕ надо танцевать под чью-то дудку (тактового генератора снаружи) и особо нет времени думать и просраться и ловить попаболь как тут >>64896. Самый стремный момент возможного рассинхрона и нарушение логики работы на один "цикл" - это изменение значений на выводах снаружи за период 1(2) периодов тактового генератора МК между командами (in r16,pinD) (in r17,pinB)
Как минимум логика мультиплексора должна работать, с остальным сам ебись. Быдлокод не по фронтам работает, можешь спокойно кнопками задавать управляющие сигналы (pb0-pb2) и смотреть как что меняется.
Ошибку заметил - третья строка - "out DDRC,r16", а не PORTC.
Мое уважение, суккуб. Собрал схемку в протеусе - странно работает, меняю состояния на входах - верхнему дешифратору сугубо похуй, нижний что-то пытается показывать, меняя состояния иногда (не ебу, по какому принципу). Что-нибудь со всем этим постараюсь сделать, думаю, зачтут
И еще вопрос
Это твое хобби или способ заработка (красная ручка может означать, что препод, но маловероятно)?
Начни с малого - отдельно сама мега правильно работает или не тестил?
Схемку покажи и странности в работе.
Возможно тут гонки сигналов, тк мега сильно медленнее отрабатывает, чем 2 последовательных инвертора и будут задеты только выходные дешифраторы. Утверждать не могу и без скринов с багами гадать бесполезно.
По спойлеру там же сгорело пару микросхем с ключами, а кто-то жлобится повторить:
"Я тщетно стараюсь не думать о боли,
сжигая свой старый портрет.
И луч предрассветный гризaйлью рисует
чей-то чужой силуэт."
I2C. Вот такую штуку перед началом работы генерирует мастер.
Судя по-всему, это какой-то способ очистить шину?
Как это называется, как гуглить?
Ардуино обрабатывает этот кондишон нормально, если что.
Школотрон проснулся? Как там аналоговнет?
Самому интересно. Очень странно выглядит и очень похоже на >способ очистить шину
Тут что-то есть, но немного не то, говорят про 8 тактов шины, а не про кучу стартов на шине..
https://electronix.ru/forum/index.php?app=forums&module=forums&controller=topic&id=45291
"В таком случае надо отключить TWI модуль от ножек и вручнуню манипулируя SCL и SDA на мастере выдать 8 битов и выдать stop condition. Чтоб слейв отключился."
В свое время ловил зависания шины на nuc972 (очень нештатные воздействия снаружи) и лечились они буквально мануальной терапией в виде принудительной поочередной подачи земли и питания через довольно низкоомные резисторы на выводы scl sda.
До чего же ты ебанутый пердуинщик однако. Выебываешься на абсолютно любого анона с I2C и ардуиной или STM32, да еще с таким ЧСВ все это пишешь.
Ты сам то кроме пердуины и STM32 хоть что-то по радиотехнике знаешь? Вон, в ТОЭ треде тупые студенты выпрашивают решение простейших задачек. Что, не можешь решить такую элементарщину?
Школотрон порвался? Выносите и заносите следующего.
>ты ебанутый пердуинщик однако
И не только. В STM32 тредах бываю, иногда в ПЛИС подглядываю как на пикрил.
>с I2C и ардуиной или STM32
Triggered, да. И что с того? Вот не понимаю, как можно с полгода дрючить и дрочить на шину IIC а на выходе иметь чуть меньше, чем нихуя?
>да еще с таким ЧСВ все это пишешь.
Кому-то показалось.
>Ты сам то кроме пердуины и STM32 хоть что-то по радиотехнике знаешь? Вон, в ТОЭ треде тупые студенты выпрашивают решение простейших задачек. Что, не можешь решить такую элементарщину?
Вот здесь прав. Анальный анал не ебу, да и нахуй нужен. Отмасштабировать напряжение на ОУ смогу, на остальное лично мне похуй, всякие импульсные преобразователи не собираю. Больше был, отхожу потихоньку по цифровой смехоте и МК, где из анала - RC цепочка на ресете или RC фильтр на ШИМ и ОУ как повторитель. Очень медленно пробую делать клон одной железки, прямо в лоб не копируется, железо очень разное,совершенно разные ядра, шелла нет, консоли нет, а чтобы получить - надо хуй знает как перехватить управление загрузчиком который нихуя не умеет и неуправляем или же на основе eval платки по быстрому свою нарисовать (4-6 слоя)и на ней издеваться.
>Школотрон порвался?
Ты заебал называть рандомных анонов школотронами.
>иногда в ПЛИС подглядываю как на пикрил
Это ты наверное постил фотографии с некроговном типа FLEX10K и MAX7000? Это отвратительно, ты больной мудак в этом случае.
По моему у тебя имеются некоторые проблемы с головой, если ты в каждом аноне с I2C-проблемами видишь "того самого школотрона".
>Вот здесь прав.
Значит ты простой пердуинщик.
>>Вот здесь прав.
>Значит ты простой пердуинщик.
Встречный вопрос - а че сам не помогаешь студентам решать простые задачки? Не барское дело? С самого утра висит одна задачка без ответа.
Поэтому пердуинщик скорее ты. Не ебу какая у тебя там специализация или направление, но до уровня ебучих эффективных менеджеров с их "у нас все универсалы" не скатываюсь, а точно знаю что по таким вопросам обращаться к тем кто в них досконально разбирается, а не ко всяким тетям сракам которые дохуя слышали, а как применять или тонкости применения или работы не знают.
Расскажи про аналог - как часто его используешь? Ебашишь полосовые фильтры? Расчитываешь импеданс линий в зависимости от материала и его толщины? Постоянно каждый шаг проверяешь в LTSpice?
Вот объясни, почему в нормальных компаниях, а не шаражкиных конторах есть четкое разделение - схемотехники, трассировщики, программисты, монтажники, а не одна баба срака за всех?
>Это ты наверное постил фотографии с некроговном типа FLEX10K и MAX7000? Это отвратительно, ты больной мудак в этом случае.
Ну да, и че? Если начнешь бздеть что это говно - зайти за http://zx-pk.com и увидишь таких же некрофилов, которые сидят на ACEX и MAX7000 только из-за 5В уровней. Можешь взять что-то посвежее и ебашить кучу буферов-трансляторов напряжений. Сколько оно займет лишнего места не говоря о том, что буферы потребляют энергию, которая зависит от частоты передаваемого сигнала? Более медленная логика прощает некоторые ошибки проектирования, которые не появляются при использовании более скоростной логики - те же race condition проявляются немного по разному проебал пасту про тонкие различия разных серий 74 логики..
>некроговном типа FLEX10K
Зайти в импортозамещение и там покукарекай - Кукареку...
Страница 6, нижняя половина http://www.vzpp-s.ru/production/catalog.pdf
Ебать колотить, да мы же видим.. "некроговном типа FLEX10K", да еще и полную копию K30..
А вот CLPD че-то не хватило мозгов скопировать, а они местами интересней, чем FPGA для замены небольшого количества рассыпухи.
>>Вот здесь прав.
>Значит ты простой пердуинщик.
Встречный вопрос - а че сам не помогаешь студентам решать простые задачки? Не барское дело? С самого утра висит одна задачка без ответа.
Поэтому пердуинщик скорее ты. Не ебу какая у тебя там специализация или направление, но до уровня ебучих эффективных менеджеров с их "у нас все универсалы" не скатываюсь, а точно знаю что по таким вопросам обращаться к тем кто в них досконально разбирается, а не ко всяким тетям сракам которые дохуя слышали, а как применять или тонкости применения или работы не знают.
Расскажи про аналог - как часто его используешь? Ебашишь полосовые фильтры? Расчитываешь импеданс линий в зависимости от материала и его толщины? Постоянно каждый шаг проверяешь в LTSpice?
Вот объясни, почему в нормальных компаниях, а не шаражкиных конторах есть четкое разделение - схемотехники, трассировщики, программисты, монтажники, а не одна баба срака за всех?
>Это ты наверное постил фотографии с некроговном типа FLEX10K и MAX7000? Это отвратительно, ты больной мудак в этом случае.
Ну да, и че? Если начнешь бздеть что это говно - зайти за http://zx-pk.com и увидишь таких же некрофилов, которые сидят на ACEX и MAX7000 только из-за 5В уровней. Можешь взять что-то посвежее и ебашить кучу буферов-трансляторов напряжений. Сколько оно займет лишнего места не говоря о том, что буферы потребляют энергию, которая зависит от частоты передаваемого сигнала? Более медленная логика прощает некоторые ошибки проектирования, которые не появляются при использовании более скоростной логики - те же race condition проявляются немного по разному проебал пасту про тонкие различия разных серий 74 логики..
>некроговном типа FLEX10K
Зайти в импортозамещение и там покукарекай - Кукареку...
Страница 6, нижняя половина http://www.vzpp-s.ru/production/catalog.pdf
Ебать колотить, да мы же видим.. "некроговном типа FLEX10K", да еще и полную копию K30..
А вот CLPD че-то не хватило мозгов скопировать, а они местами интересней, чем FPGA для замены небольшого количества рассыпухи.
>Анальный анал не ебу, да и нахуй нужен
Вы заебали, это же фундамент, как ассемблер машинные коды и С++, как атмега и ардуина, как железобетонный ангар и каркасный сарай на покрышках.
Избавился от этого задания
Теперь страдаю с китайским чудом HC6800-EM3
На железе предыдущие задания реализую
>а че сам не помогаешь студентам решать простые задачки?
Им такое не пойдет на пользу. Ты вообще задумывался о том, что такие студенты будет делать после того как получат диплом?
>Расскажи про аналог
ТОЭ на то и называется основами. Это в основном повторение школьной физики и тренировка в использовании некоторых методов для решения задач. Также это основа для изучения последующих курсов, в том числе цифровой обработки сигналов. Ты бы еще написал что законы Кирхгофа нахуй знать не нужно.
>Страница 6, нижняя половина
Ты заебал, я только пришел домой от этой херни, а тут ты этим говном тычешь.
>А вот CLPD че-то не хватило мозгов скопировать
У тебя неправильные сведения. Есть интеграловская серия 5577, только корпус довольно крупный.
Ну сегодня он угадал, эт и правда "я" - тот кого он вечно называет школотроном. Он и правда поднадоел с этой хуйнёй, но я уже смотрю на него как на деда, которому больше не с кем поговорить.
>>67765
О каких аналогах ты вообще?
>выдать 8 битов и выдать stop condition.
Призрачно похоже, но мне нужно обработать эту хуйню со стороны слейва, что я пока не разбирался как делается.
Думал может есть этой хуйне название, тогда можно было бы и не разбираться, а просто загуглить готовое решение.
>>67780
>как можно с полгода дрючить и дрочить на шину IIC а на выходе иметь чуть меньше, чем нихуя?
Оч просто, на самом деле. Надо к ней для этого притронуться 4 раза за полгода: Первый раз - полгода назад, в попытке написать "повторитель", второй раз через 3 месяца попытавшись разобраться с тем как эта хуйня работает в HAL'е, 3-й раз попытавшись реализовать софтварно I2C-слейва, что довольно таки интересно, потому что я ни одной реализации не нагуглил, а то что есть - мусор, который даже не даёт на шину ACK/NAK и 4-й просто пробуя запилить эмуль i2c-eeprom ьуквально сейчас.
За всё это время ты миллион раз назвал меня школотроном, во всех абсолютно задачах "переходил на CLPD", и один раз был полезен, скинув эмуль eeprom'а для stm32
Школота призналась что школота.. Замечательно.
>но я уже смотрю на него как на деда, которому больше не с кем поговорить.
Очень похоже на правду.
>О каких аналогах ты вообще?
Лень искать по треду - последний раз было упоминание кого-то из серии 1887 как функциональный аналог мега8515.
>Призрачно похоже, но мне нужно обработать эту хуйню со стороны слейва, что я пока не разбирался как делается.
А мне кажется забить хуй если у тебя внутренний конченный автомат iic сам сбрасывается по СТОП, а на СТАРТ не реагирует,
пока адрес не появится.
> пробуя запилить эмуль i2c-eeprom буквально сейчас.
На чем или из чего?
>миллион раз назвал меня школотроном
Ой врешь.. не писал тут миллион постов.
>один раз был полезен, скинув эмуль eeprom'а для stm32
У тебя мозгов не хватило понять этот говнокод >>62763
>>67788
>>а че сам не помогаешь студентам решать простые задачки?
>Им такое не пойдет на пользу. Ты вообще задумывался о том, что такие студенты будет делать после того как получат диплом?
Как тонко съехал. Что-то в этом есть.
>Также это основа для изучения последующих курсов, в том числе цифровой обработки сигналов.
Отвечу вопросом из прошлого поста
> Вот объясни, почему в нормальных компаниях, а не шаражкиных конторах есть четкое разделение - схемотехники, трассировщики, программисты, монтажники, а не одна баба срака за всех?
> Ты бы еще написал что законы Кирхгофа нахуй знать не нужно.
Закон Ома забыл приписать. Ссылаясь на вопрос выше - нахуя например программисту это знать? Его задача писать программу, а не вникать - будет превышение тока по выводам, про толщину и ширину дорожек, IRdrops и тонкости трассировки - это головная боль других людей. Или же трассировщику какая разница что как или почему накрутил схемотехник или например как программер будет работать - в режиме baremetal или какую ос ставить.
>Есть интеграловская серия 5577
А вот это интересно. Мельком глянул даташит - это FPGA, а не CPLD.
"A security fuse may be programmed to disable all further programming and to protect the design from being copied orreverse engineered." и "Nonvolatile, User Programmable" - есть подозрения что есть память конфигурации внутри и сойдет за CPLD.
Школота призналась что школота.. Замечательно.
>но я уже смотрю на него как на деда, которому больше не с кем поговорить.
Очень похоже на правду.
>О каких аналогах ты вообще?
Лень искать по треду - последний раз было упоминание кого-то из серии 1887 как функциональный аналог мега8515.
>Призрачно похоже, но мне нужно обработать эту хуйню со стороны слейва, что я пока не разбирался как делается.
А мне кажется забить хуй если у тебя внутренний конченный автомат iic сам сбрасывается по СТОП, а на СТАРТ не реагирует,
пока адрес не появится.
> пробуя запилить эмуль i2c-eeprom буквально сейчас.
На чем или из чего?
>миллион раз назвал меня школотроном
Ой врешь.. не писал тут миллион постов.
>один раз был полезен, скинув эмуль eeprom'а для stm32
У тебя мозгов не хватило понять этот говнокод >>62763
>>67788
>>а че сам не помогаешь студентам решать простые задачки?
>Им такое не пойдет на пользу. Ты вообще задумывался о том, что такие студенты будет делать после того как получат диплом?
Как тонко съехал. Что-то в этом есть.
>Также это основа для изучения последующих курсов, в том числе цифровой обработки сигналов.
Отвечу вопросом из прошлого поста
> Вот объясни, почему в нормальных компаниях, а не шаражкиных конторах есть четкое разделение - схемотехники, трассировщики, программисты, монтажники, а не одна баба срака за всех?
> Ты бы еще написал что законы Кирхгофа нахуй знать не нужно.
Закон Ома забыл приписать. Ссылаясь на вопрос выше - нахуя например программисту это знать? Его задача писать программу, а не вникать - будет превышение тока по выводам, про толщину и ширину дорожек, IRdrops и тонкости трассировки - это головная боль других людей. Или же трассировщику какая разница что как или почему накрутил схемотехник или например как программер будет работать - в режиме baremetal или какую ос ставить.
>Есть интеграловская серия 5577
А вот это интересно. Мельком глянул даташит - это FPGA, а не CPLD.
"A security fuse may be programmed to disable all further programming and to protect the design from being copied orreverse engineered." и "Nonvolatile, User Programmable" - есть подозрения что есть память конфигурации внутри и сойдет за CPLD.
>Школота призналась что школота..
Как скажешь.
>Очень похоже на правду.
Ну так не веди себя как душная сумасшедшая бабка, чо ти.
>1887 как функциональный аналог мега8515.
Только 8535. Но я никак не могу привязать это к тому что ты говоришь, соре.
>На чем или из чего?
Просто на атмеге, не более. Собсна код и есть, но не обрабатывает вышеобозначенный кондишн.
>А мне кажется забить хуй если у тебя внутренний конченный автомат iic сам сбрасывается по СТОП, а на СТАРТ не реагирует, пока адрес не появится.
Ага, хули, не реагирует он. Если бы это так работало - я бы не спрашивал.
Вешается он после этой хуйни. При том что ведруина - не вешается, а прекрасно работает на той же архитектуре, просто с другим кодом.
>У тебя мозгов не хватило понять этот говнокод >>62763
Ну на самом деле, я про него просто забыл. Эх, если бы я только помнил, что в Ардуино-треде осталось что-то полезное, а не только бабка-Срака, которая почему-то всё время называет меня школьником...
>Отвечу вопросом из прошлого поста
В конторе, в которой я работаю, это не совсем так. Максимум совмещают программирование микроконтроллеров или ПЛИС со схемотехникой в части подключения всей цифровой фигни. Не спорю, такое не слишком хорошо, но до таких крайностей, про которые ты писал, даже близко не доходит.
>Ссылаясь на вопрос выше - нахуя например программисту это знать?
Я выше уже писал. Не знаешь ТОЭ - значит не знаешь основ цифровой обработки сигналов.
Кстати, ты выше писал
>RC цепочка на ресете или RC фильтр
Последняя задачка из ТОЭ-треда требует только знания переходной характеристики RC-цепочки (из одного резистора и одного конденсатора) и расчета делителя напряжения на резисторах. Выходит ты и простую RC-цепочку толком посчитать не можешь.
>это FPGA, а не CPLD.
Тут четкой границы нет. MAX 3000/7000 сделаны на основе программируемых матриц соединений, их можно назвать классическими CPLD. А MAX II уже на основе LUT-ов и LE в них почти такие же как в циклонах, все почти как в FPGA, только помельче и грузится быстрее.
>Не спорю, такое не слишком хорошо, но до таких крайностей, про которые ты писал, даже близко не доходит.
:)
>Выходит ты и простую RC-цепочку толком посчитать не можешь.
Это и не скрывалось. Открываю страничку http://tel-spb.ru/rc.html и прикидываю.
На пикрилах - где знание анала нужно?
Коротенький участок от ethernet phy до разъема с трансом?
Разводка памяти SDRAM? Ей почти поебать на все, главное остальные линии сделать короче чем линия clk.
Импульсный преобразователь? Картинка из даташита.
Верхняя моделька давно не обновляется, на нижнюю недавно вышла новая прошивка, которую еще не потрошил. На нижней ступор - сделана на LCP3250. Тест памяти через S1L показывает что все хорошо, а при загрузке в ОЗУ образа uboot - последние строки что NAND не найден(его нет) и зависает, даже не выдавая своей командной строки, а на линии TX - постоянный сигнал break (логический 0).
Вообще думаю стоит перевести общение на обсуждение разводки >>67490. Где тут аналоговая блажь может пригодиться? Это все-таки пердуино тред, а не всяких СВЧ хуевин на керамике или чего-то с памятью ddr2, где надо особо следить за длинами линий тактовых сигналов и непрерывностью полигонов земли или fpga с 10G(или PCI-ex) трансиверами, где реально надо следить за импедансом линий.
Так тонко в CPLD/FPGA не разбираюсь. Пока что использую как замену рассыпухи в режиме коммутаторов и сумматоров сигналов (например сложить 2 поочередно работающих уарта) и не более того.
>>А мне кажется забить хуй если у тебя внутренний конченный автомат iic сам сбрасывается по СТОП, а на СТАРТ не реагирует, пока адрес не появится.
>Ага, хули, не реагирует он. Если бы это так работало - я бы не спрашивал.
>Вешается он после этой хуйни. При том что ведруина - не вешается, а прекрасно работает на той же архитектуре, просто с другим кодом.
Опиши еще раз в чем прикол. У пердуины нет прерывания на старт, только старт+адрес. Зависание мастера? Как-то не верю, что за система где такое возможно и сам мастер не пытается оживить шину?
Сделай дамп стартовой фигни когда у тебя только мастер.
Очень интересно кто 0 на шине выдает - сам мастер или кто-то из слейвов? Может твоя сверхчувствительная пердуинка ложит мастера?
Тебя не смущает огромная разница в частоте scl? В теории можешь узнать делая разрыв линии и вставляя туда довольно высокоомные резисторы. Ну поломается обмен, зато есть шанс по падению напряжения на резисторе определить куда ток тек.
Нене няша, ты всё не так понял.
Я делаю слейва, сейчас на 16й атмеге.
Юзаю какой-то пример слейва из интернета https://www.electronicwings.com/avr-atmega/atmega1632-i2c , компилирую AVR-studio.
Мастер не вешается, но вешается слейв (на самом деле он не вешается, а кажется просто почему-то пытается прочесть, что за адрес я шлю) при подаче подобного сигнала.
Когда я юзал ардуинку для того чтобы взаимодействовать с мастером простая уно на 328 атмеге, она не вешается, шина не вешается, всё збс. Ну логично предположить, что если две железки на одной архитектуре и с одинаковым TWI-блоком работают по-разному, то проблема в том коде, который я использовал.
Просто если у этого передергивания стартов было бы название, может и разбираться не пришлось бы, а достаточно было б загуглить готовый код.
Ня, сулейву.
/
Atmel Corporation
File : TWI_Slave.c
Compiler : IAR EWAAVR 2.28a/3.10c
Revision : $Revision: 2475 $
Date : $Date: 2007-09-20 12:00:43 +0200 (to, 20 sep 2007) $
Updated by : $Author: mlarsson $
Support mail :
Supported devices : All devices with a TWI module can be used.
The example is written for the ATmega16
AppNote : AVR311 - TWI Slave Implementation
Description : This is sample driver to AVRs TWI module.
It is interupt driveren. All functionality is controlled through
passing information to and from functions. Se main.c for samples
of how to use the driver.
********/
Ищи AVR311, работает хорошо.
Ня, сулейву.
/
Atmel Corporation
File : TWI_Slave.c
Compiler : IAR EWAAVR 2.28a/3.10c
Revision : $Revision: 2475 $
Date : $Date: 2007-09-20 12:00:43 +0200 (to, 20 sep 2007) $
Updated by : $Author: mlarsson $
Support mail :
Supported devices : All devices with a TWI module can be used.
The example is written for the ATmega16
AppNote : AVR311 - TWI Slave Implementation
Description : This is sample driver to AVRs TWI module.
It is interupt driveren. All functionality is controlled through
passing information to and from functions. Se main.c for samples
of how to use the driver.
********/
Ищи AVR311, работает хорошо.
Ну да, я проверил, после "вступительной последовательности" - работает. Без неё, правда, отваливается - хз почему, анализатора под рукой нет. Спасибо, няша.
Ты там без инициализации синхронный интерфейс пытаешься запустить и удивляешься, что он отваливается?
Шта?
Нет, просто или в примере который идёт с либой, или в самой либе, неправильно обрабатывается повторный старт.
Собственно, на пикрил видно
Ну или я еблан и неправильно отправляю сигнал с ардуины на него, но я хз как можно "неправильно" использовать Wire.requestFrom(ADDRESS, 1, REG, 1, true)
Вот к стати результат работы твоего кода.
Без этой последовательности норм работает, повторный старт обрабатывает.
Школьник заинтегрировал..
Через неделю вернусь и надеюсь прогоню говнокод под отладчиком если найду и то и другое, ближайшая железка - это пердуина с мега2560 посмотреть на забавные эффекты - косяк в модуле TWI или прокладке между стулом и клавиатурой.
Для воссознания ошибки ебануть 10 стартов подряд и стоп в конце?
Что-то мне кажется ошибка будет в обработке повторного старта, но где или в чем? Практика покажет.
Поменялось. После повторных стартов он сначала не валится, но через какое-то время валится вот так вот
>Поменялось
Oh shi~
>через какое-то время
А если точнее? Пару ПОЛНЫХ дампов в состоянии снять options - save capture (ctrl+s) с момента перезапуска мк и до падения? Как вручную воссоздать условия когда падает?
Он падает только при записи, или при чтении тоже? Похуй что адрес(в памяти) не задан, выдаст любую хуйню(скорее всего 0) при чтении
На чем тестишь? 328 мега? Сейчас на руках нет ничего кроме даташита.
Атмега16, на внутреннем кварце.
Я только читаю, но как видно по пику - валится в момент, Setup to Write.
Вручную сгенерировать эту ошибку не могу, но могу сказать, что когда пытаюсь сделать то же самое с подключенным внешним кварцем - получаю снова пикрил.
В общем, захотел сделать лазерный гравер из dvd приводов, в качестве мануала взял вот это видео https://www.youtube.com/watch?v=3El2sW1eJ-g&t=1s
Спаял всё по схеме, но не знаю, как подключить лазер. Лазер брал такой же, как у него в видосе, только транзистор купил сразу модулем, вот такой:https://ru.aliexpress.com/item/32869991624.html
Нагуглил какую-то схему с ним (пик 1), но она отличается от того, что в видосе (пик 2).
Во-первых, правильно ли на первой схеме идёт подключение от GND на ардуине к SIG на модуле? Разве на сиг не с упраляющего пина должно приходить (D11 на первой схеме и A2 на второй).
Во-вторых, надо ли на модуль с транзистором подавать 5V от ардуины, как на первой пикче?
И, в-третьих, если на первой схеме всё верно, то можно ли подключить так же, только вместо контакта D12 использовать А2? т.к. я всё делал по схеме из видео и скетч планирую брать оттуда же. Или что-то ещё надо поменять, подскажите, плиз.
КЭП, да тут прям дохуища полезной информации... О кварце, который нахуй не всрался.
Может налажал в говнокоде(должен срать при каждом изменении TWSR и молчать при его неизменном значении), сам подправишь - добавь в UART(скорость не принципиальна, но лучше под 400килобод) вывод TWSR и пики со стульями и хуями в студию - в какие моменты какие состояния.
void main (void) {
...
unsigned char st1;
...
st1 = 0;
while (1) {
if ( st1 != TWSR)
{
st1 = TWSR;
UDR = st1;
};
...
};
Кварц 16мгц, кондеры на 22пФ. Фьюзы ставлю пикрил.
Если запускаю без множественного старта вначале - всё ок.
Если запускаю на внутреннем кварце - всё ок.
Если комбинирую эти два фактора - микрик подтягивает SCL к нулю, там и остаётся.
Насчет данных с анализатора: встроенный кварц, стандартные фьюзы, произвожу только операцию чтения.
https://yadi.sk/d/yOdgYSZgj_7kGA
>О кварце, который нахуй не всрался.
Ну хзхз. Если он похожим образом валится в двух случаях, при том второй случай провоцирует это состояние гораздо быстрее.
>добавь в UART(скорость не принципиальна, но лучше под 400килобод) вывод TWSR
Ну эт скорее всего в понедельник уже. А пока у меня UART полностью выпилен.
>>68034
Это тестовая система? Смущает 50кгц тактовая, а кто-то пиздел за все 400кгц..
Косяк только в начале, далее же все хорошо.
Как минимум это уже дает понять в каком стиле идут обращения, их частота и размер.
Жду понедельника с пиками и хуями на стульях лучше дампами
Если скорости юарта не будет хватать - есть SPI и его выводы SCK и MOSI. Ставишь самый маленький делитель и получаешь охуенную скорость. При захвате на 16МГц максимум увидишь 8МГц тактовую SCK, гоняя на SPI на 4(2) МГц - точно все увидишь без артефактов и глюков.
PS Правда что TL866 не умеет в NAND память, только параллельную NOR, и всякий последовательный NOR 45, 25, 24, 93...?
>Проблема в том, что не знаю как получить его значение
Что же ты такой немощный?
Четвертая ссылка из гугла http://digteh.ru/MCS51/timers.php Все написано довольно внятно. А можно и интеловскую или атмеловскую документацию открыть.
Написано что это регистры TL0 и TH0.
>считать входные импульсы до 16
Может быть до 15? Иначе, если таймер должен считать от 0 до 16 включительно, нужно TMOD=0x6, TH0=16. И просто выводи в бесконечном цикле значение TL0. Хотя может я и ошибаюсь.
>if (TL0=1)
Во первых это не сравнение, а присваивание. Сравнение это ==. Во вторых, даже если бы там было сравнение, это какой-то бред.
Давай сам делай, нечего у пердуинщиков готовое решение выпрашивать. Ты в свою шарагу для чего вообще пошел учиться?
До 15, верно
Я, кстати, смотрел инфу по этой ссылк, видел эти регистры, но как с ними работать - не понял. Т.е. в просто них записывается информация, которую с них же можно считать? Меня просто смутило что этих регистра два; в моем случает надо считывать вроде с TL0?
Садитесь на хуй пройдите в архив https://2ch.hk/ra/arch/2018-04-19/res/258237.html (М)
Может что-то полезное будет.
Я вообще 8051 в руки ни разу не брал. Так что могу в чем-то ошибиться. То есть сами микросхемы в руках держал, но ничего для них не писал.
>Т.е. в просто них записывается информация, которую с них же можно считать?
Ну да, по той ссылке это даже в примерах есть.
>Меня просто смутило что этих регистра два
Естественно. Микроконтроллер восьмибитный и не может прочитать 16 бит за раз, а таймер при этом 16-разрядный. У пердуины аналогично - два физических регистра TCNTxH и TCNTxL.
>в моем случает надо считывать вроде с TL0?
По идее да, только из считанного значения бери младшие 4 бита. Обнулять таймер не нужно, если что, он сам когда досчитает до 0xFFFF переполнится и обнулится.
Ты похоже забыл выдать единицу на выход, соответствующий входу таймера (P3.4, если не ошибаюсь), единицу. У 8051 все выводы с открытым стоком, поэтому для того чтобы переключить на вход - нужно выдать единицу.
>>68052
Да при чем тут вообще значения TH0? Они никак не должны влиять при TMOD=5, это ясно написано по той ссылке. Делать такое рандомным перебором - это пиздец.
Я еще прихуел с того, что китайцы это высрази за 60$, в 2019 году.
Уже отчаялся, сижу полдня с этим чудом, вот и пребирал от безысходности
Я понял кто это постит.. 8051 это не меги, хотя есть повыводный "аналог" - мега(90)8515 или 8535 (кто-то из них). Может на этом говне мамонта сделаешь?
Тебя еще суккубы в Аду не выебли? Боинг 747-400 в анус не влетел?
Ты хоть проверял работу мигалки со светодиодами на этом порту? Может у тебя вообще вывод в порт не работает?
И как же? Мне кажется попался на старую уловку - порты не умеют выдавать 1, она выдается очень слабыми токовыми драйверами и светодиод еле-еле будет светиться, зато имеют мощные транзисторы на землю для выдачи 0.
Светодиод включать не вывод-земля, а вывод-питание и зажигать подачей 0.
Но это не точно, давно читал и могу ошибаться
Ну вот. Зря я наверное это сделал, но все работает. Собирался было уже в машинных кодах писать, но в протеусе оказался встроенный ассемблер.
Вот как-то так, у меня в симуляторе все работает. Может быть ты вход перепутал?
Даже если таймеры не работают, ты мог сделать просто на прерываниях или вообще тупо в цикле значения из порта сравнивать с предыдущими.
>>68055
Пиздец ты упорный. Я бы наверное максимум через час уже отправился читать документацию.
Ну да, я выше писал. Там открытый сток. При этом, как я только что загуглил, у порта 0 даже подтягивающих резисторов нет, в отличие от остальных портов.
Так я ее и читал, даже на онглийском осилил пару сайтов, но везде +- одно и тоже было
Вот так все работает, оказывается я еблан, тактового импульса-то нет, вот я пробовал с VCC кидать, а он не считал это за импульс. Чтобы он засчитал 1 импульс надо было с VCC на GND перекинуть и так постоянно.
1596x1026, 0:26
Естественно, там открытый сток. Я два раза об этом писал.
Даже если бы там был не открытый сток, то подтягивающие резисторы могли быть или к земле или к питанию или их вообще могло не быть. Ты мог простым мультиметром проверить это, даже без чтения документации.
И еще, сейчас у тебя TCON=0x10 - это совершенно зря, туда вообще ничего можно не писать, в данном случае это ни на что не влияет. А вот P3=0xFF не помешало бы на всякий случай, хотя там и так после сброса наверное должно быть 0xFF (это тебе следует уточнить в документации). Надеюсь ты осознаешь, что если P3=0x00, то работать оно перестанет, или не перестанет, но выходной транзистор перегрузишь?
Если честно, то не осознаю; проверил программку, начал по внешним прерываниям инфу смотреть.
После сброса работать не перестает
Но на всякий случай прописать P3=0xFF и все будет хорошо?
За 1 такт передаем число, со входа на выход.
Прерывания по INT0, входные сигналы на P1, вывод на P2.
Но теперь просто все диоды включились и все, ничего не происходит. P1 как вход работает - проверил.
Суккуб, земля тебе пухом,такими темпами скоро откинешься от моих вопросов
>Суккуб, земля тебе пухом,такими темпами скоро откинешься от моих вопросов
Не стебись так. Через несколько дней лететь из ДС назад в свое ебеняево.
От меня живого толку мало в 8051. Не кодил, не знаю.
Могу только посоветовать написать типа счетчика в прерывании и убедиться что у тебя вообще работает заход в прерывание и отдельно вывод в порт.
>Если честно, то не осознаю;
И это завершающий пиздец. Особенно учитывая, что курс у тебя называется:
>Цифровая схемотехника
Получается что тебе не объясняли как устроены логические элементы на уровне отдельных транзисторов. Даже не объяснили что такое выход с открытым коллектором или стоком.
Не знаю даже что тебе посоветовать. По идее тебе следует бросить все эти пердуины и хоть немного изучить основы.
>все будет хорошо?
Все будет хорошо, если будешь внимательно читать документацию.
Вот этот >>68089 тебе правильно пишет. Ну как же ты так? Все это элементарно, нужно только внимательно прочитать учебник по сишечке и документацию на микроконтроллер (как облегченный вариант - методичку для студентов или какую-нибудь статью). И пиши лучше на ассемблере - для такого он проще.
Вызывает некоторые сомнения твоя временная диаграмма. Ты точно уверен, что срабатывать оно должно и по переднему и по заднему фронту, а не только по переднему? Но даже если твоя временная диаграмма правильная, то такой код не заработает, потому что прерывания в 8051 бывают либо по фронту либо по уровню, в зависимости от того что в регистре TCON. Причем, если я правильно понял, то только либо по переднему фронту, либо по низкому уровню. По уровню - значит прерывание будет вызываться непрерывно, пока уровень низкий. Ты хоть немного о причинно-следственной связи задумывайся. Вот как можно было читать хоть что-то про прерывания в 8051 и не осознать этого?
>Суккуб, земля тебе пухом,такими темпами скоро откинешься от моих вопросов
Ты меня ни с кем не путаешь? По 8051, тебе главардуинщик (который постоянно называет школьником анона с I2C-проблемами) вроде как почти ничем не помогал. Впрочем я тоже, поскольку проблема у тебя была вообще не в коде.
Потому что у тебя вместо схемы какие-то невменяемые картинки, ты бы еще сфотографировал переплетение проводов у себя на столе - нате вам, разбирайтесь что к чему подключено.
Как-то так, если я правильно тебя понял. Только срабатывает по заднему фронту, а не по обоим, как у тебя нарисовано. И период может быть не совсем тот.
Я вчера описал это все как деградант хотя и сейчас не лучше, есть входы для числа, тактового импульса и выход. С входов на выход в каждый такт, передаем состояние каждого входа поочередно, когда входы заканчиваются передаем заново. Срабатывать может и по заднему фронту, на период поебать.
У меня получилось так, но работает странно. Если на P0.2 подать единицу, а на все остальные 0. То при первом тактие имеем 0 на выходе, а на всех остальных после этого 1
Там 3 провода всего, думал и так понятно (
Думаю уарта должно хватить.
Тестирую ардуинкой, вроле говонил уже. 50 кГц потому что со встроенным генератором TWI атмеги работает до 100 кбод.
Твой код на 400 вроде не проверял.
То что оно в начале ложится это понятно. Почему начало на встроенном кварце работает, а на внешнем - вешается? Есть мысли? Может фьюзы неправильно выбираю?
Естественно. Ты хоть немного пытаешься голову напрягать? Или сразу методом тыка начинаешь делать, совершенно не задумываясь? Не, тут такое не пройдет, слишком много вариантов потребуется перепробовать.
Как минимум ты должен задуматься о том, что регистр P2 (и другие) работает и на вход и на выход. При этом у 8051 есть битовая адресация, позволяющая писать биты в эти регистры напрямую, без считывания предыдущего значения.
И, самое главное, тебе вот посоветовали туда скобки поставить, а собственно нахрена ты их вообще поставил и поставил именно таким образом?
Слушай, а у тебя протеус не вылетает спустя несколько секунд? Заебался уже. Ставил более новые версии, но там та же хрень.
>50 кГц потому что со встроенным генератором TWI атмеги работает до 100 кбод.
Трипл же не может врать. Может еще скажешь что мега в пердуине и мега вне пердуины совершенно разные сущности, и та что вне пердуины, времени и пространства спокойно умеет в uart 400 с хуем килобод особо упоротые под мегабод могут выжать при 16мгц, а пердуиновская максимум 115200бод?
Так же и twi - его нереально запустить даже на 400 килогерц?
Че за откровенную ересь несешь?
Со своим пердуиновским мусором в подобии головы добро пожаловать в манямирок пердуиновских ограничений из нихуя с костылями в придачу и скоростью еле ползущей улитки.
Очевидно что не вылетает, если я смог снять видео. На рутрекере пишут что нужно почистить реестр от следов предыдущей установки. Вообще протеус не особо полезная в практическом плане программа, сойдет только немного потыкать что-то вроде пика или 8051. Точно так же я мог сделать все это например в кейле, только там несколько менее наглядное отображение.
>>68107
Вот, сделал как-то, можешь проверять.
>Очевидно что не вылетает, если я смог снять видео. На рутрекере пишут что нужно почистить реестр от следов предыдущей установки.
Только вот предыдущей у меня не было. Начал вылетать с самой первой, потому установил еще одну версию.
Я его использовал для понимания электроники, жаль не отображает всех процессов, типа кз.
Удаляй и ставь заново, во время установки выбери не дефолтную установку, а кастомную, и посмотри, чтобы пути были такие, должно помочь:
Installation Path - C:\Program Files (x86)\Labcenter Electronics\Proteus 8 Professional\
Program Data Path - C:\Program Files (x86)\Labcenter Electronics\Proteus 8 Professional\
>>68142
что-то не то, работает также как и моя программа(хуево). Но с этим, думаю, что-нибудь придумаю
Вот тебе цитатка из AVR311.
>Может еще скажешь что мега в пердуине и мега вне пердуины совершенно разные сущности
Скажу то что на плате у ардуино стоит внешнй кварц на 16мгц, а у 16 атмеги встроенный генаратор на 1МГц.
Да, она кое-как работает со скоростями до 150к в таком режиме, но пробовал я это на отличном от AVR311 коде.
>Удаляй и ставь заново, во время установки выбери не дефолтную установку, а кастомную, и посмотри, чтобы пути были такие, должно помочь:
Спасибо, попробую.
>а у 16 атмеги встроенный генаратор на 1МГц.
Этот генератор нужен на черный день и все равно к нему пихают внешний. Непонятно при чем здесь ардуина.
И вообще когда оскорбляют пердуинщиков, то имеют ввиду всё восьмибитное семейство avr. Посему непонятно какого хуя тут катят бочку в треде, посвященном avr в целом. Похоже на выстрел себе в пустую голову.
Либо джентльмен не разобрался в сути срача, либо не разобрался в сути срача. Ардуина это просто стартер кит с готовой платой и готовым софтом. Если уж надо считать каждый байт и тебе жалко памяти, который сжирает бутлоадер и готовые библиотеки пердуины иде, то хули ты блять жопу рвешь — переходи на STM32 или добавляй еще один мк в связку. Даже бутылки под газированную воду заполняют на 90%. И если не хватает 90% от бутылки 0,5л, то берут тару бОльшей емкости, а не заполняют на 100% эту.
Надеюсь аналогия ясна.
>а у 16 атмеги встроенный генаратор на 1МГц.
Чет ты распизделся.. Точно ардуино головного мозга и нежелание даже по диагонали прочитать нахуй не всравшийся пердуинщикам даташит.
Можно до 8ми МГц раскочегарить внутренний. Ебать колотить, мне же пердуина не дает этого сделать. Как же так.. Мой манямирок рухнул.
>Ебать колотить, мне же пердуина не дает этого сделать.
Что ты несешь?
>Можно до 8ми МГц раскочегарить внутренний
Можно лягушке вспороть брюхо и она поскачет дальше.
>Что за хуйню ты блядь несёшь?
>При чем тут блядь вообще ардуина?
Это я и несу. Ардуина не при чем.
>Ардуина это просто стартер кит с готовой платой и готовым софтом.
По идеи да, но у нас и пластиковые полтарашки изготовлялись для хранения и транспортировки жидкостей, и посмотри к чему это все привело.
>но у нас и пластиковые полтарашки изготовлялись для хранения и транспортировки жидкостей, и посмотри к чему это все привело.
Аналогия предельно ясна
Ну так а хули ты написал тогда подумой. Никто не говорил что с AVR-ом хоть что-то не так, но ты срёшь в тред доказывая, что кто-то обижает ардуино. Охуеть просто.
>Никто не говорил что с AVR-ом хоть что-то не так
>Точно ардуино головного мозга
>ARDUINO - прямой путь на дно
Ну а я то здесь при чем? Я этой хуйни не нёс, я просто пилил атмегу и не внимательно читал даташит.
>что-то не то, работает также как и моя программа
Это значит только то, что я опять неправильно понял твой пересказ условия задачи.
В протеусе смоделировал - работает как нужно. Но на железе нихуя. Понял ты меня правильно, в плане задания
Тогда это означает что ты неправильно выдаешь на вход логические уровни или еще что-то в том же роде. Не забыл, что там открытый сток? Также есть такое явление как дребезг контактов, не оно ли у тебя? Еще я забыл на всякий случай на P3.2 выдать лог. 1, но поскольку у тебя как-то работает, значит причина не в этом.
Между RC генератором и генератором на кварце разница того же порядка, как между простым кварцевым генератором и атомным стандартом частоты. Еще бы тут не доебаться до такого ардуинского высказывания.
А этот доёб имел какое-то отношение к делу? Мы тут говорили за точность работы от встроенного источника vs работы от внешнего? Да вроде нет.
Так нахуя разводить мусор в треде? Чтоб ЧСВ потешить? Ну в таком случае, у меня плохие новости. Если тебе не хватает самоутверждения ИРЛ и ты приходишь искать его на двач - тебя можно только пожалеть.
>Так нахуя разводить мусор в треде?
Вот именно. Зачем разводить дезинформацию? А может ты действительно думал что там кварцевый генератор?
Так ты действительно считал, что внутри этих микроконтроллеров кварцевый генератор? Потому что путать RC генераторы и кварцевые это примерно так же, как путать полевые транзисторы с биполярными.
Ты всех людей, указывающих на твои ошибки, которые ты совершил просто по незнанию, называешь мудаками с повышенным ЧСВ, которых остается только жалеть?
Я мимокрок. Просто твоя манера общения и реакция на вопросы новичков такая, словно ты магистр mit со своей лабораторией и штатом подчинённых. Зачем ты тут всех отчитываешь и поучаешь, душный мудак?
По моему ты явно что-то путаешь. Я всего лишь указал на ошибку, а в ответ стали называть мудаком. Нет, как мудак ведешь себя тут ты, а не я.
Мне что, не нужно было указывать на ошибку вообще?
> Так ты действительно считал, что внутри этих микроконтроллеров кварцевый генератор?
Я так считал. И искренне не понимал, нахуя все ставят внешний кварц, когда в МК уже есть внутренний. Ну думал, может, частота там не так точно на заводе настраивается. Хотя в таком случае, почему бы просто один раз не откалибровать, это же дешевле. А тут оказывается вообще тупо на rc цепочке сделано
мимо
>А тут оказывается вообще тупо на rc цепочке сделано
А, что плохого в rc генераторах?
тоже_мимо_из_общества_прав_и_защит_rc_цепочек
>Почему-то не думал что у них встроенный кварц настраивается.
>них встроенный кварц настраивается.
>кварц настраивается.
>настраивается
>настраивается
Ебать колотить. Для тебя наверное будет новостью дня, если не года - сама мега программируемая. Я даже не думал что ее можно программировать (задавать ее реакцию на внешние раздражители), думал она как тупой мини нагреватель на 5х0.010 = 0.05 ватта с отводом тепла через ножки и не мог уловить разницу от других нагревателей в черных кусках пластмассы с непонятными буквами и цифрами, у которых торчит 40 непонятных штырьков не штырьков с двух широких сторон. Где и зачем могут применяться такие слабенькие нагреватели в такой странной форме и практически никакой мощности?
Как истинный пердуинщик веруешь в религию Пердуино, которая не признает скорости юарта более 115200 - это все ересь, не признает и сжигает таких еретиков?
Так же как и скорость twi - только 100 килогерц. Остальное - происки Сатаны и его сподвижников, за 400 кгц изгнание из секты пердуинщиков (в лучшем случае) или отправят на 7 круг Ада Данте?
А уж за выдачу сразу нескольких бит в порт за раз наверняка будешь проклят до 7-го колена на веки вечные?
Пиздец, ну что за хуйню ты несёшь, сумасшедший? Сам придумал проблему, сам за неё сагрился на анона, ещё и тред засирать продолжает.
>А, что плохого в rc генераторах?
Большой разброс частоты и нестабильность(зависимость) от внешних условий. У обычных говнокварцев около 50ppm (миллионная доля). У кварца на 1Мгц расхождение частоты будет в 50Гц - от 999 950 до 1 000 050 Гц.
Если брать RC цепочку на 1 МГц с разбросом 1% - это 10 000Гц, или же от 990 000 до 1 010 000 Гц. Надеюсь не налажал в расчетах.
Для мигалок светодиодом похуй, а если есть задача точного замера интервалов, высокоскоростной обмен по UART, создание часов и прочее, очень критичное по времени - без кварца может и добьешься точности более-менее, но она уплывет при малейшем нагреве RC цепочки из-за изменения параметров R и C.
И как же?
Уважаемый Антон, а не опечатался ли ты случайно? А в ответ - пошел нахуй, это отношения к делу не имеет. Так что ли?
Я и раньше замечал, что в этом треде наиболее нетерпимо реагируют, когда им указывают на ошибки.
Ну давай, сейчас я покажу тебе, как происходит нормальное социальное взаимодействие между взрослыми людьми.
Возможно, ты достаточно не туп, чтобы впитать модель поведения из примера но, честно говоря, тут на успех у меня надежды нет.
Пример:
>встроенный кварц
Только ты оговорился или не отличаешь - там не кварц, а встроенный генератор на RC-цепочке. И да, он настраиваемый.
Вот такой ответ, никого бы не возмутил. Хочешь поправить кого-то - сделай это нормально, с уважением к собеседнику. Он тебе ничего не должен, равно как и ты ему.
Вот сейчас ты явно искажаешь события. Да, в начале я может что-то обидное написал. Но тот анон обозлился уже после моих совсем нейтральных высказываний.
Я не то чтобы виню, но как-то ненормально обзываться обзываться мудаком в ответ на объяснения, почему путать типы генераторов - это грубейшая ошибка. Ладно бы еще мудаком обозвал в ответ на первое замечание, это можно было бы понять.
>Ну а сам как думаешь, можно ли было вас различить?
Да, довольно несложно. У него весьма характерный стиль речи. Это тот же анон, который недавно помогал делать дурацкие задания студенту (на AVR, на 8051 уже нет). И он же обзывал школьником анона с вопросами по I2C.
>Да, довольно несложно.
Да не сказал бы, в данной ситуации довольно легко вас перепутать.
>в ответ на объяснения, почему путать типы генераторов - это грубейшая ошибка.
Да их объясниений вроде как и не было.
Всё, заебало, давайте не срать в тематическом треде, окда?
>>Ну а сам как думаешь, можно ли было вас различить?
>Да, довольно несложно. У него весьма характерный стиль речи. Это тот же анон, который недавно помогал делать дурацкие задания студенту (на AVR, на 8051 уже нет). И он же обзывал школьником анона с вопросами по I2C.
Таки верно меня спалили. А то тут тонко обосрали, но сверху пруф что написавший текст ниже - сам оказался бесполезным хуйлом.
>>68096
>По 8051, тебе главардуинщик (который постоянно называет школьником анона с I2C-проблемами) вроде как почти ничем не помогал.
У меня не очень выходит в сарказм над неумеющими читать даташиты, которым место в туалете по мнению пердуинщиков?
Бамплимит. Кто перекат будет пилить? Второй пик >>68141 будет в шапке треда?
Перечитал пару раз - ну да, по 8051 толку не было, была пара наводящих вопросов. Один раз как-то программный SPI делал и забил проектик на w7100 скончался от долбоебизма руководства.
Почему сразу?
> главардуинщик
Ну есть пара мелких пердуин >>66576 (одна из них тут >>65364), на мега2560 по центру которую отличает шнурок с jtag на avr dragon и обиженная due левая.
Due не тыкал палочкой, с 2560 пришлось повозиться чтобы jtag включить и через него начать дебажить тестовый говнокод.
ПердуиноИДЕ не запускал, это >>66535 ручками писалось.
Может есть вариант запустить пердуиноиде и не зашквариться этим говном?
Есть же православная AVR Studio 4 и древний как говно мамонта gcc под нее.
>Почему сразу?
>> главардуинщик
Не обижайся, но ты возможно действительно лучше всех из присутствующих тут анонов разбираешься в атмегах. Я то для AVR вообще ничего ни разу не писал, только прошивал пару раз при повторении готовых конструкций.
>ну да, по 8051 толку не было
Так и от меня тоже. В первый раз он не понимал что там открытый сток, притянутый резистором к плюсу питания. А во второй раз у него похоже проявился дребезг контактов. Да и не факт что он смог бы сдать преподу исходники на ассемблере.
Ну Си в этом плане приятнее будет, слишком далек от ассемблера
Мудаком назвал тебя не анон которого ты поучал и отчитывал, а я, полностью мимокрок. Тебе же, деревянному, уже несколько антонов объяснили, что проблема не в том, что ты кого-то поправил или указал в неточности, а КАК именно ты это делал. Если ты такой взбалмошный и истеричный спец, зачем сидишь в конфе вкатывальщиков? Уверен, тебя во всех коллективах, где ты существовал, недолюбливали. душный ты мудак
интересно
Я так думаю, что они ещё и плавают от температуры нехило. Но то не точно
Уно номрально взлетает, приехала нано - stk500_recv(): programmer is not responding
Провода и гнезда менял, если чтоу, макопидор.
Ты уверен, что программатор правильно стоит? Что-то мне подсказывает, что нет.
Бамплимит достигнут, пора этой куче говна сдохнуть и начать все снова в новой нитке.
Итак, настройки фьюзов пикрил.
Результат получаю такой же, как и на предыдущем сэтапе - зависон при подаче "начального мультистарта" (подтяжка атмегой SCL к нулю).
Добавил вывод инфы в УАРТ по твоему образу и подобию, за исключением того что в случае TW_BUS_ERROR вывожу TWSR.
Как можешь видеть на диаграмме https://yadi.sk/d/VIND9Z3qAT5d_Q, получилось малоинформативно.
Мне показалось странным, что у тебя никак не обрабатываются остальные состояния в свитч-кейсе (коих, надо сказать, может возникать не мало, судя по тому что я прочел в мануале).
Поэтому я добавил дефолт:брейк, и в результате код перестал валиться. https://yadi.sk/d/RzlLJB6Kb5Neyw
Так и не понял, от чего он валится при поднятии частоты.
Даже не знаю что и сказать. Для начала мелочь - у меня анализатор ничего не показывал из-за русских букв в имени файла.
> (подтяжка атмегой SCL к нулю).
???? Давай-ка по подробнее про эту фигню. Где, когда, почему только сейчас узнаю?
>получилось малоинформативно.
Не спеши с выводами. Есть очень тонкая разница между дампами:
Когда валится - состояние 00 ПОСЛЕ сигнала стоп и их 4,
Когда нормально работает - состояние 00 ДО сигнала стоп и их 5.
Надо понять почему так и это будет ответом.. Почему он проебал один старт и только после трех начал выдавать ошибку автобуса.
>никак не обрабатываются остальные состояния в свитч-кейсе
Местами дельное замечание, для этого и добавлен вывод состояний для наглядности - про происходит, что проебано и на что надо реагировать.
>добавил дефолт:брейк, и в результате код перестал валиться.
Смутные сомнения что в нем дело. Надо проверять. Неужели десяток-другой тактов дает такой эффект? Слабо верю.
докинь еще говнокода снизу для полного воссоздания ситуации - как что инициализируешь.
Давай еще более полную трассировку. Может проеб прерываний? Левое состояние?
Ставь предделитель юарта в 1 0 совсем наглость (максимальная скорость), из обработчика прерывания выкидываешь все строчки, связанные с юартом и дописываешь только одну под
tmp = TWSR;
UDR = tmp; // именно tmp, а не явно TWSR.
и скидываешь что происходит при изначальном коде без defaut и что с default.
>>спасибо братишка, добра тебе, ты прав.
>???? Давай-ка по подробнее про эту фигню. Где, когда, почему только сейчас узнаю?
Я тебе об этом сразу написал, лол. Атмега в которой твой код, роняет SCL в 0 и на этом зависает.
>Давай еще более полную трассировку.
>Ставь предделитель юарта в 1
Чот как-то поставил я, да видимо неправильно. Потому что частота UARTа всё равно маленькая.
https://godbolt.org/z/weY9cV
https://yadi.sk/d/YmhjT7LHSAQFAQ
>Смутные сомнения что в нем дело.
А вот я потыкался, и скажу что в нём. Когда я отключаю чтение внутри дефолта, получаю этот самый эффект.
Добавил туда пустой for{} на десять итераций - код ожил.
Запись когда все хорошо - это замечательно, но где запись когда ничего не работает?
Желательно не один запуск.
>>Смутные сомнения что в нем дело.
>А вот я потыкался, и скажу что в нём.
Ты же понимаешь что это очень стремный, мутный и нестабильный костыль?
Запись без дефаут давай на анализ.
+ почитай стандарт - он нахуй не всрался так-то. В прошлом дампе увидел повторение состояний что уже само по себе интересно. Вангую это в оптимизации кода и можно попереставлять case местами.
Переставляние кейсов местами - точно такой же костыль.
>но где запись когда ничего не работает?
Ну ок, сделаю я тебе такую запись. И даже не один запуск. Хз когда правда. Перенесу на 8535 сначала.
Для него я беру https://prom.ua/p646422428-displej-tft-320x240.html и https://arduino.ua/prod2800-arduino-uno-rev3-official-chinese-version
где я обосрался и обосрался ли?
На втором пике драйверы моторов, а не шаговых двигателей. Я с такого начал, типа там клеммы и не надо с пайкой ебаться, но это пиздец — придется выполнять работу драйвера с помощью самого микроконтроллера т.е. попеременно подавать импульс на разные обмотки.
На первом пике чуть лучше, но тоже ебля есть.
>Во-первых
нихуя не понятно. Что за шакальство? надписей не видно.
>Во-вторых
Я вообще не понимаю нахуя ты этот модуль туда всунул. Что это за модуль и какова его функция?
>в-третьих
Можно, но если ты хочешь таким образом избежать сложностей, то это не самый лучший выход. Лучше поменять на любой свободный D, если в скетче используется D.
>т.е. попеременно подавать импульс на разные обмотки.
И еще там были проблемы с контролем малых оборотов. Так и не удалось вращать шаговиком медленно. Не знаю с чем это связано.
А ты разве заходишь через основной раздел? У меня в избранных стоит. Хотя да, другие не найдут.
Вкладка в браузере просто открыта постоянно, нахуя выходить откуда-то и заходить потом через основной раздел? Может вы еще браузер закрываете и комп выключаете?
Когда открыто много вкладок сложно по ним бегать туда-сюда, а за день вкладка вообще может убежать в ебеня — ищи-свищи. Легче из одной переходить куда нужно.
>Может вы еще браузер закрываете и комп выключаете?
Да, для обновлений. И вообще накапливаются ошибки без перезагрузок регулярных.
Вот поэтому и умирают люди.
Это копия, сохраненная 22 августа 2020 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.