roboforum.ru

Технический форум по робототехнике.

Python на STM32

ARM7, ARM9, ARM11 etc.

Re: Python на STM32

Сообщение svp » 08 ноя 2011, 15:45

dccharacter писал(а):Тут еще один моментик есть.

Да моментиков куча. Прививки, лицензии, разрешения, кормёжка=)
Надо разбираться.

Добавлено спустя 12 минут 29 секунд:
Grem писал(а):
Благодаря ей в современных языках программирования гораздо ниже порог входимости

Это и не есть хорошо.

Ради бога, объясниите почему!=) не понимаю. Это комплекс элитарности?
Grem писал(а):Товарищ svp не просто теоретик, он идеалист-теоретик и я не удивлюсь если он свой ИИ пишет :)

Мой личный ЕИ(!) (Естественный Интеллект) породила эволюция=).
А если серьёзно, то я не настолько наивен, чтобы пытаться написать сильный интеллект.=) А вот аниматами я увлекаюсь. Тоже теоретически, покачто=)
Мне неинтересна иммитация интеллекта или поведения. Мне важна функциональная целостность и эффективность. Но это оффтопик. Ни к чему было про интеллект начианть=).

Скажите, уважаемый Grem, видите ли вы разницу между ассемблером и Си? Видите ли некое удобство в переходе от первого ко второму?
Я ни в коем случае не предлагаю забыть о целесообразности. Просто надо быть открытым к новому и не прятаться за старые догматы. Будущее всё равно придёт. Вопрос принесёт ли оно нам какое-то счастье или нет своими благами.
Аватара пользователя
svp
 
Сообщения: 42
Зарегистрирован: 13 дек 2005, 16:01
Откуда: Белгород
прог. языки: object pascal, c++, Lisp, Prolog

Re: Python на STM32

Сообщение dccharacter » 08 ноя 2011, 15:50

Полез на Хабр посмотреть, что за зверь такой - питон этот.

Вот ИМХО идеально иллюстрирующий картину топик с камментами:
http://habrahabr.ru/blogs/python/127806/

Камменты рулят:
-Это php-код на Питоне, простите.
-Вы обижаете питон.
-В этой статье, традиционно для Хабра, плохо ВСЁ.
-Код плох тем, что в нём практически каждая строка написана не так, как надо писать на питоне.
-лютый бешеный 3.14***ц
-Ваш код оценили на говнокод.ру :)
-Ну вот, дождались популяризации python. Теперь наслаждайтесь :)

и т.д. и т.п.
Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.
Аватара пользователя
dccharacter
 
Сообщения: 4995
Зарегистрирован: 10 дек 2010, 13:16
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей

Re: Python на STM32

Сообщение svp » 08 ноя 2011, 16:00

Так с Си в своё время было, наврено, то же самое. Повысился порог вхождения и народ начал писать на нём как на ассемблере=)
Аватара пользователя
svp
 
Сообщения: 42
Зарегистрирован: 13 дек 2005, 16:01
Откуда: Белгород
прог. языки: object pascal, c++, Lisp, Prolog

Re: Python на STM32

Сообщение Grem » 08 ноя 2011, 16:01

Скажите, уважаемый Grem, видите ли вы разницу между ассемблером и Си? Видите ли некое удобство в переходе от первого ко второму?

Не холивара ради - я пишу на том, что нужно для данной задачи, а не на том, что мне нравится. Удобство? Нет, не вижу.
"There is nothing better than sliding down snow and flying through the air" (с) Shane McConkey.
Lieber ein Brett am Fuß als eins vorm Kopf, aber lieber ein Brett vorm Kopf als zwei am Fuß.
Аватара пользователя
Grem
 
Сообщения: 1530
Зарегистрирован: 16 май 2009, 12:50
Откуда: Россия
прог. языки: Java, C

Re: Python на STM32

Сообщение svp » 08 ноя 2011, 16:15

Кстати, а представляете вся эта когорта Труъ кодеров, что хаяла того незадачливого новичка, кинется со своими знаниями качественного питона писать апплеты для роботов на языке высокого уровня? Эдак азимовские фантазии станут реальностью=)

Grem писал(а):я пишу на том, что нужно для данной задачи, а не на том, что мне нравится.

Правильный подход. Целесообразность - это наше всё. Кодить тривиальный автомат управления светом на питоне -- бред. Но мы-то тут мечтаем о роботах... А что интересного в тупых машинках, катающихся по черной полоске? Что интересного в бесполезной игрушке, тыкающейся в стены. Что интересного в имитации поведения какого-нибудь животного? Имитация -- это мёртвые манекены. Даже если к руке манекена примотать штопор, сам он пиво из холодильника не принесёт. Мы же хотим сделать какую-то жизнь? Нет? Да я идеалист, но черт подери мне надоели тупые манекены, просто имитирующие что-то.
А чтобы писать более сложную логику, надо абстрагирвоваться от таких мелочей, как пины, такты, таймеры и счетчики. Абстрагироваться от напряжений и токов, от структур и парерываний, от ячеек памяти и фьюзов.
И двигаться в сторону абстракций и функциональности. Иначе мы не уйдём от имитации.
Аватара пользователя
svp
 
Сообщения: 42
Зарегистрирован: 13 дек 2005, 16:01
Откуда: Белгород
прог. языки: object pascal, c++, Lisp, Prolog

Re: Python на STM32

Сообщение dccharacter » 08 ноя 2011, 16:20

Б-ть, правда ИИ :-)
Грем, как ты это делаешь?
свп, не обижайся, шучу.
Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.
Аватара пользователя
dccharacter
 
Сообщения: 4995
Зарегистрирован: 10 дек 2010, 13:16
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей

Re: Python на STM32

Сообщение svp » 08 ноя 2011, 16:32

Я прекрасно представляю себе зачем понижать порог входимости в код (а более высокого уровня язык его понижает -- это бесспорно). Куча народу сможет писать код для роботов так же легко, как сейчас пишут для телефонов и компов. Даже если код зачастую плох и некачественен -- это лучше, чем его нет вовсе. Всегда есть из чего черпать идеи. И всегда можно что-то удучшить.

[offtop]Пусть админы потрут этот гнусный оффтоп, но пришла в голову идея. Берём два одинаковых робо-пылесоса и прошиваем их разными конкуретными прошивками. Каждой прошивке даётся, скажем, пару дней и тот пылесос, который соберёт больше пыли победил. Автор победившей прошивки получает пылесос и дарствует прошивку организаторам конкурса безвозмездно=)[/offtop]

Так вот, та идея возможна и эффективна только если писать код для пылесоса будет легко.

dccharacter писал(а):Б-ть, правда ИИ :-)

Не ИИ, а функциональный подход. Отказ от позорного имитирования. Стремление к подлинному и эффективному поведению=)

dccharacter писал(а):Грем, как ты это делаешь?

Он просто очень суровый, но здравомыслящий тип. Хорошо, когда люди уравновешивают друг друга.

dccharacter писал(а):свп, не обижайся, шучу.

С чего бы?=) Я тоже занимаюсь тем, что люблю и умею: теоретизирую, абстрагирую, идеализирую. Реальная жизнь в лице Грема и просто суровой действительности, меня конечно спустят малостьс небес на землю, но без стремления к идеалам мы иначе не сдвинулись бы с места.

Хватит философствовать. Надо бенчмарки делать и смотреть разрушит ли питон посудную лавку stm32.

Добавлено спустя 2 минуты 9 секунд:
Честно сказать, если разрушит, буду смотреть на что-нибудь помощнее.
Аватара пользователя
svp
 
Сообщения: 42
Зарегистрирован: 13 дек 2005, 16:01
Откуда: Белгород
прог. языки: object pascal, c++, Lisp, Prolog

Re: Python на STM32

Сообщение ALS » 08 ноя 2011, 16:38

Помощнее в плане железа ?
Или все-таки отказаться от интерпретаторов и "легкого программинга" и более грамотно/ответственно подходить в написанию кода ?
Аватара пользователя
ALS
 
Сообщения: 803
Зарегистрирован: 24 окт 2011, 23:32
Откуда: Севастополь
прог. языки: асм

Re: Python на STM32

Сообщение svp » 08 ноя 2011, 16:48

ALS писал(а):Помощнее в плане железа ?
Или все-таки отказаться от интерпретаторов и "легкого программинга" и более грамотно/ответственно подходить в написанию кода ?

Железа. Лёгкий програминг в наш век цифровых технологий более приоритетен. Мозг дороже железа. Было бы у нас 100500 китайцев на зарплате, то мы бы и на асме Азимо написали. Спорим все эти роботы типа Азимо и иже с ними кодятся на яве?

Добавлено спустя 3 минуты 40 секунд:
О, кстати. Если у вас есть смарт-карта, например Viza или MasterCard, то, возможно, вы удивитесь, но на чипе, что зашит внутрь крутится виртуальная ява-машина, внутри которой крутится апплет, реализующий криптографию и логику. Ява -- это тоже интерпретируемый язык. И на эдакой пендюрке с ноготок. Почему бы?
Кстати,я осознаю, что Ява, пока что, быстрее питона.
Аватара пользователя
svp
 
Сообщения: 42
Зарегистрирован: 13 дек 2005, 16:01
Откуда: Белгород
прог. языки: object pascal, c++, Lisp, Prolog

Re: Python на STM32

Сообщение ALS » 08 ноя 2011, 16:58

...Почему бы?
Думаю, потому, что там на первом месте - сохранность данных. А быстродействие - на последнем.
Согласитесь, 2-3 секунды ожидания для счастливого карто-юзера - не время.
Свое мнение не навязываю, ведь можно и на яве писать шедевры, а на Си - говнокод. Зависит не от языка, а от программера.
Впрочем, это уже прописные истины.
"Ваш кэп" (с)

PS
И по поводу ASIMO. Его начали делать в 86-м. Сомневаюсь, что тогда использовали какие-либо языки высокого уровня. По той простой причине, что и в нативном виде тогдашние железяки не блистали быстродействием. Со временем, возможно, они добавили и скрипты на основе того же Lua. Но, что-то мне подсказывает, что это касается только "свистоперделок". Т.е элементы танца - скрипт, но отслеживание датчиков, управление сервами и т.д. - не, никакого питона ))))
Последний раз редактировалось ALS 08 ноя 2011, 17:16, всего редактировалось 1 раз.
Аватара пользователя
ALS
 
Сообщения: 803
Зарегистрирован: 24 окт 2011, 23:32
Откуда: Севастополь
прог. языки: асм

Re: Python на STM32

Сообщение Grem » 08 ноя 2011, 17:07

svp писал(а): А что интересного в тупых машинках, катающихся по черной полоске? Что интересного в бесполезной игрушке, тыкающейся в стены. Что интересного в имитации поведения какого-нибудь животного?

Вы теоретик, значит не понять вам. Люди увлечены идеей и ЭТО здорово, а не тележки, ИИ и пр.
Грем, как ты это делаешь?

Что делаю? :)
"There is nothing better than sliding down snow and flying through the air" (с) Shane McConkey.
Lieber ein Brett am Fuß als eins vorm Kopf, aber lieber ein Brett vorm Kopf als zwei am Fuß.
Аватара пользователя
Grem
 
Сообщения: 1530
Зарегистрирован: 16 май 2009, 12:50
Откуда: Россия
прог. языки: Java, C

Re: Python на STM32

Сообщение svp » 08 ноя 2011, 18:21

ALS писал(а):Но, что-то мне подсказывает, что это касается только "свистоперделок". Т.е элементы танца - скрипт, но отслеживание датчиков, управление сервами и т.д. - не, никакого питона ))))

Так о том и речь же! Цикл обработки прерываний, механизмы подписки на события, та же ШИМ -- всё это пишется н а Си и асме. Питон -- это лишь обёртка для написания пользовательски свистоперделок. Какой-то абстрактной логики. Все низкоуровневые инфраструктурные процессы пишутся один раз, а всякое поведение -- множество. Это совершенно разные слои. Можно всё смешать в одном слое и получим огромную запутанную программу с кучей Goto и ветвлений. Но тогда внести какие-то изменения в базовое поведение становится затруднительно. И чем больше нюансов, тем сложнее что-то менять.
Я не предлагаю реализовывать программный ПИД-регулятор балансирующего робота на питоне. Эта задача требует высокой производительности и есть смысл погрузить её на уровень ядра, там где происходит низкоуровневая работа с прерываниями. А на высокий уровень вынести только флажки и ярлычки: "балансировать", "свалиться", "ехать вперёд", "увеличить скорость". С этим справится любой скриптовый язык.
В том моём гипотетическом примере, что выше, на высоком уровне поворот башни на 180 градусов выглядел бы как-то так:
Код: Выделить всёРазвернуть
self.head_motor.angle.add(180)

А внутри незаметно закипела работа:
  • Экземпляр класса "Шаговый двигатель" в своём обработчике изменения угла проверил допустимость указанного поворота.
  • Вычислил частоту импульсов, которые нужно подать на определённую ногу и время, когда нужно остановиться
  • Запустил ШИМ с нужными параметрами
  • Подписался на событие по таймеру для отключения поворачивания
  • Внутренний метод Шаговика подписывается на событие от таймера с некоторым условием
  • Низкоуровневый код на Си в цикле обработки прерываний каждый раз смотрит не пора ли вызвать тот или иной высокоуровневый обработчик. Когда пора -- отдаёт управление.
  • и т.д.
Это всё в едином потоке программы будет выглядеть громоздко, а когда надо держать равновесие и жонглировать ещё кучей процессов, то совсем запутаться можно. надо разносить на слои.

Я про Азимо заговорил, но на самом-то деле не знаю как там всё внутри. Может это просто набор жестких скриптов.
Аватара пользователя
svp
 
Сообщения: 42
Зарегистрирован: 13 дек 2005, 16:01
Откуда: Белгород
прог. языки: object pascal, c++, Lisp, Prolog

Re: Python на STM32

Сообщение dccharacter » 08 ноя 2011, 20:17

Чувак, ты изобрел arduino :-)

Код: Выделить всёРазвернуть
// Controlling a servo position using a potentiometer (variable resistor) 
// by Michal Rinott <http://people.interaction-ivrea.it/m.rinott>

#include <Servo.h>

Servo head_motor;  // create servo object to control a servo

int potpin = 0;  // analog pin used to connect the potentiometer
int val;    // variable to read the value from the analog pin

void setup()
{
  head_motor.attach(9);  // attaches the servo on pin 9 to the servo object
}

void loop()
{
  val = analogRead(potpin);            // reads the value of the potentiometer (value between 0 and 1023)
  val = map(val, 0, 1023, 0, 179);     // scale it to use it with the servo (value between 0 and 180)
  head_motor.write(val);                  // sets the servo position according to the scaled value
  delay(15);                           // waits for the servo to get there
}


Добавлено спустя 3 минуты 30 секунд:
Я сейчас так трансформаторы мотал для часов. Есть шаговик, на него прилепил поликапролактоном катушку, в ардуино сделал my_stepper.step(6000); и сиди вкуривай - он сам остановится, когда нужное количество витков намотает.

Но все это имеет определенный порог, дальше которого генерализировать не имеет смысле. Дальше начинаются приложения, и у всех они разные. Понимаешь, можно фильм заархивировать в один байт. И даже в один бит. Знаешь в чем подвох?
Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.
Аватара пользователя
dccharacter
 
Сообщения: 4995
Зарегистрирован: 10 дек 2010, 13:16
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей

Re: Python на STM32

Сообщение svp » 08 ноя 2011, 20:50

dccharacter писал(а):Но все это имеет определенный порог, дальше которого генерализировать не имеет смысле. Дальше начинаются приложения, и у всех они разные. Понимаешь, можно фильм заархивировать в один байт. И даже в один бит. Знаешь в чем подвох?

Не совсем корректная аналогия. А про фильм в одном байте вообще неинтересно. Архивирование по определению происходит бах потери качества. Сжатие с потерями -- да. И Jpeg тому пример. Ещё можно уменьшать картинку до размера пиксель на пиксель, но здесь всё не о том.

Речь здесь идёт. повторюсь, не об архивации, а о расслоении. Конечно до абсурда можно довести любую мысль и идею. И абсурд начинается, когда мы создаём новый абстрактный уровень чисто формально. И он нам не упрощает жизнь, а только усложняет. И тут уже всё зависит от качества абстракции и её имплементации.

Для твоей задачи с катушкой совершенно не стоит городить какой-то универсальную мотатель. Ради нескольких трансформаторов не требуется городить чего-то абстрактного, потому что пара строчек и так решает всё проблему. Надо уметь остановиться. Но, согласись, задача твоя проста. Если речь бы шла о более сложной задаче, то пришлось бы и уровней абстракции делать больше.
Например мы делаем унивеерсальный токарный станок. Тут тебе и куча режимов вращения и согоасование этих режимов с перемещением резца. А ещё станок можно приспособить катушки мотать (резец направляет, а вал крутит). Вот тут мы и переходим на новый уровень абстракции. Вводим понятие режима, вводим события отконцевиков, вводим понятие программы, если речь о ЧПУ.
Как-то в древней прачечной я встерчал стиральную машину, которая по перфокарте могла отрабатывать режимы стирки белья, подачу воды, порошка и т.д. Сама логика машины была на каких-то транзисторах, и аппаратно был реализован интерпретатор программ на перфокартах. А на первокартах понятные каждой домохозяйке дрки в нужных столбцах. Весь прикол в том, что на транзисторах домохозяйки не смогли бы перепаять логику работы машины, а вот дырки пробить дыроколом в нужных местах распечатанной таблицы мога каждая тётя Глаша. Вот это реальный и утрированный п ример использования интерпретаторов и расслоения задачи на уровни. Строго говоря на перфокартах можно было заставить отмечать не только понятные домохозяйкам процессы, но и низкоуровневые, до которых им дела нет.

Давай обсудим конкретный пример. Робот-пылесос. Как ты думаешь, тот уровень абстракции, что я предложил в том большом примере, облегчит написание кода для пылесоса? Снизит порог вхождения в программирование оного? Если это нафиг не надо и наш пылесос проприетарен, то можно найти человека, который накодит качественно и на Си. Может быть даже ему это не составит особого труда, атк как есть опыт и умение так организовать работчее пространство в коде и контроллере, что всё будет прозрачно, понятно и пригодно к отладке. Но к содалению мало таких специалистов.

Добавлено спустя 6 минут 40 секунд:
Чорт. Многабуквав.
Основная идея в том, что степень генерализации и полезность её в итоге зависят от профессионализма програмиста. Хорошие мощные идеи тоже надо уметь использовать, а неумеючи можно любым, даже самым дорогим и интеллектуальным инструментом можно навредить.
Аватара пользователя
svp
 
Сообщения: 42
Зарегистрирован: 13 дек 2005, 16:01
Откуда: Белгород
прог. языки: object pascal, c++, Lisp, Prolog

Re: Python на STM32

Сообщение dccharacter » 08 ноя 2011, 21:30

svp писал(а):Архивирование по определению происходит бах потери качества.

Дык и я про "без потери качества".

Добавлено спустя 2 минуты 18 секунд:
от регистров быстро уходишь. А новый уровень абстракции ты в своем примере не вводишь. Я не вижу разницы между
value.increment()
и increment(value)
Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.
Аватара пользователя
dccharacter
 
Сообщения: 4995
Зарегистрирован: 10 дек 2010, 13:16
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей

Пред.След.

Вернуться в ARM

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2