|
Виж темите без отговор | Виж активните теми
Дата и час: Пон Юли 27, 2026 11:02 am
PY2ME - Python 2 Micro Edition
| Автор |
Съобщение |
|
TheWizard
Ранг: Форумен бог
Регистриран на: Сря Апр 27, 2005 12:48 pm Мнения: 6094
|
 Re: PY2ME - Python 2 Micro Edition
Н'бабане Гт'муан'га аз не съм обяснявал - причини, цели, далавери ... със змията Аз експериментирам идея ... къв е УЯ, мангалски, негарски ( лъвов или мухарски ) аз не знам - докато не пробвам...
и боли ви УЯ дали аз ще си изгубя времето или не - ако имате идеи -> давайте .... или ми лапайте УЯ
Анадънмо?
Тони - изтрии темата.... Моля !
_________________ main[-1u]={1};
|
| Сря Апр 09, 2025 10:52 pm |
|
 |
|
Bai Ui
Ранг: Форумен бог
Регистриран на: Вто Ное 06, 2018 5:18 pm Мнения: 1750
|
 Re: PY2ME - Python 2 Micro Edition
За тия, дето могат да пишат само на питон, но имат амбицията да станат ембедед специалисти Най-ефективните езици са тия, на най-ниско ниво - асемблер и машинен език, но там се иска добро познаване на архитектурата и мноооого време. Ползите от езиците на високо ниво са 2 - първо универсалност - един и същи код работи на много архитектури и второ - удобство при писане - с няколко реда описваш структура, която при асемблер може да ти коства 100 реда и нагоре. Но там пък зависиш изцяло от милостта на компилатора - как ще ти изгради програмата на ниско ниво. Допреди 5-6 години имаше даже мода за моделно "програмиране", примерно в матлаб - навързваш едни кубчета с алгоритми и матлаба ти пише кода. Пълен с талаш но работещ. Та в тоя ред на мисли скоро няма да има нужда и от езици на високо ниво, само драсваш схемата на салфетка, подаваш я на чата и му казваш - напиши ми код за ей тая схема да ми светва диода еди как си и да свири Шопен, ако и липсва нещо, на схемата, го добави. Та мисълта ми е че езиците от високо ниво дават предимство на хората, които не отбират много от електроника, или пък гонят време за сметка на качеството. Идеята на Питона според мен е да се опрости синтаксиса на езика, там няма отварящи и затварящи скоби, начало и край на цикъла, добавяш библиотеки без да се налага да ги свързваш вътре в програмата, в началото е бил ОК но сега е кошмар, особенно с тая несъвместимост между версиите - Питон 2 и Питон 3, а сега даже различните версии на Питон 3 са несъвместими. Та така, програмите ще стават все по-големи, съответно нуждата от хардуер ще расте право пропорционално на некадърността на новите инженери.
_________________ “Intelligence is the ability to adapt to change.” Stephen Hawking
|
| Чет Апр 10, 2025 8:20 am |
|
 |
|
Н'бабане Гт'муан'га
Ранг: Форумен бог
Регистриран на: Сря Яну 25, 2012 9:14 am Мнения: 5298
|
 Re: PY2ME - Python 2 Micro Edition
Е аз точно това казах в предния ми пост. Обаче език от високо ниво, който разчита на интервал като езиков елемент е просто несериозно. Виждал съм подобна идиотщина преди много години - mumps се казваше. Там един интервал на грешното място ти прецакваше цялата програма понеже интервалите също така можеха да бъдат и параметри. Тук не е чак толкова зле но дори фактът че е в същия банд не ми вдъхва никакво доверие PS. Ето тоя пич работи във вярната посока: https://github.com/mathialo/bython
_________________ 'просто' е технически синоним на 'красиво'
|
| Чет Апр 10, 2025 8:31 am |
|
 |
|
miro_atc
Ранг: Форумен бог
Регистриран на: Нед Фев 26, 2006 6:52 pm Мнения: 11265 Местоположение: Добрич
|
 Re: PY2ME - Python 2 Micro Edition
Скриптовете си имат своето място, когато е необходима гъвкавост. Примерно устройство, което на теория може да има десетки функции, но на практика един клиент има нужда само от няколко. Да се поддържат отделни фърмуери за всяка възможна комбинация е кошмар. Един общ фърмуер също може да е мисия невъзможна, още повече ако функциите се добавят или премахват често. Има такива проекти и аз съм имал, проблемът е че като цяло това са доста малък процент от ембедед. А пък ембедеда е малък процент от програмирането изобщо. Затова поддръжката или по-точно разработката на инструменти, библиотеки на тема скриптове е бизнес с изключително малък пазар. Съответно предлагането е малко и обикновено на недоклатени неща...
|
| Чет Апр 10, 2025 10:17 am |
|
 |
|
Desert Leo
Ранг: Форумен бог
Регистриран на: Чет Фев 10, 2005 3:25 pm Мнения: 5677 Местоположение: София
|
 Re: PY2ME - Python 2 Micro Edition
Много си е добър питоня. Е, синтаксиса му е малко различен от С, но се свиква. Повече от 15г. го ползвам паралелно със С-то. Е, понякота се случва в питонския скрипт да напиша //... или в с файл #... Не е ли красиво?  |  |  |  | Код: rmc = '$GPRMC,160001.929,A,4242.0621,N,02319.2417,E,0.12,30.77,170310,,,A*XX' # rmc е стринг
rmc = rmc.split(',') # rmc е вече списък/list от стрингове
date = rmc[9] # date е датата, която е деветия елемент от списъка (170310) във формат ddmmyy
date = date[4:] + date[2:4] + date[0:2] # датата е във формат yymmdd
|  |  |  |  |
Не виждам, обаче как това ще се имплементира за микроконтролер...
|
| Чет Апр 10, 2025 2:03 pm |
|
 |
|
TheWizard
Ранг: Форумен бог
Регистриран на: Сря Апр 27, 2005 12:48 pm Мнения: 6094
|
 Re: PY2ME - Python 2 Micro Edition
аз пиша ама кой да чете... се компилира до ( PYC ) байткод ( питон Virtual Machine език ) python -m py_compile main.py -> __pycache__ / main.cpython-38. pyc ... подобно на C object файл избягва се интерпретацията от MCU на питон кода ... MCU "изпълнява" байткод( питон VM машинен език ) JAVA2ME работеше така ... Линукс / Java ( android ) е "емулация" на байткод ... без интрепетация на скриптове rmc = rmc.split(',') е същото Методите на str са хардкоднати във VM и се изпълняват почти колкото директно на C.
_________________ main[-1u]={1};
|
| Чет Апр 10, 2025 6:36 pm |
|
 |
|
TheWizard
Ранг: Форумен бог
Регистриран на: Сря Апр 27, 2005 12:48 pm Мнения: 6094
|
 Re: PY2ME - Python 2 Micro Edition
microPython  |  |  |  | Цитат: 1. ESP серията (Espressif) ESP8266 (напр. NodeMCU, Wemos D1 Mini)
ESP32 (вкл. ESP32-S2, ESP32-S3, ESP32-C3)
ESP32-C6 (поддръжка в по-нови версии)
2. STM32 (STMicroelectronics) STM32F4 (напр. STM32F405, STM32F407 – Pyboard официално работи на тях)
STM32F7 (напр. STM32F767)
STM32H7 (H743)
STM32L4 (L476 – добър за ниско енергийно потребление)
3. Raspberry Pi Pico (RP2040) Raspberry Pi Pico (официално поддържан)
Pico W (с WiFi)
Други платки с RP2040 (напр. Adafruit Feather RP2040, Seeed XIAO RP2040)
4. NXP (Kinetis, LPC, i.MX RT) Kinetis K серия (K64F – използва се в Pyboard D)
LPC серия (LPC1768 – поддържа се от някои портове)
i.MX RT (RT1011, RT1062 – мощни MCU за MicroPython)
5. Nordic (nRF серия) nRF52832 (напр. Adafruit Feather nRF52840 Express)
nRF52840 (поддържа BLE 5.0 и е популярен за IoT)
6. Silicon Labs (EFM32) EFM32 серия (напр. EFM32GG – рядко срещан, но има портове)
7. Microchip (SAM серия) SAMD21 (напр. Arduino Zero, Adafruit Feather M0)
SAMD51 (по-мощен вариант)
PIC32 (по-стари портове)
8. Други поддържани MCU CC3200 (TI – WiFi микроконтролер)
Xtensa (използва се в ESP32)
RISC-V базирани чипове (напр. ESP32-C3, GD32VF103)
|  |  |  |  |
 |  |  |  | Код: # Начален RMC низ от GPS модул rmc = '$GPRMC,160001.929,A,4242.0621,N,02319.2417,E,0.12,30.77,170310,,,A*XX'
# Разделяме низа по запетаи, за да получим списък rmc = rmc.split(',')
# Взимаме датата (тя е на 9-та позиция в списъка) data = rmc[9] # '170310' (във формат ден-месец-година)
# Превръщаме я във формат година-месец-ден data_convertirana = data[4:] + data[2:4] + data[0:2] # '100317'
# Извеждаме резултата print("Оригинална дата:", data) print("Преобразувана дата:", data_convertirana)
|  |  |  |  |
_________________ main[-1u]={1};
|
| Чет Апр 10, 2025 10:10 pm |
|
 |
|
Н'бабане Гт'муан'га
Ранг: Форумен бог
Регистриран на: Сря Яну 25, 2012 9:14 am Мнения: 5298
|
 Re: PY2ME - Python 2 Micro Edition
Е какво се възхищавате толкова?? Всички езици имат функции за разделяне на токени и за преобразуване на стрингове в главни букви. Гледайте недостатъците, другото всички го имат
_________________ 'просто' е технически синоним на 'красиво'
|
| Пет Апр 11, 2025 10:05 am |
|
 |
|
ToHu
Ранг: Форумен бог
Регистриран на: Нед Сеп 26, 2004 9:21 pm Мнения: 30684 Местоположение: София
|
 Re: PY2ME - Python 2 Micro Edition
Без да съм чел всичко в детайли, идеята е за истински скрипт или за прекомпилиран такъв, демек мое ли да изпълниш команс през конзолата е реално време, или просто пишеш на змийски то го компилира и изпълнява ...
|
| Пет Апр 11, 2025 3:47 pm |
|
 |
|
Desert Leo
Ранг: Форумен бог
Регистриран на: Чет Фев 10, 2005 3:25 pm Мнения: 5677 Местоположение: София
|
 Re: PY2ME - Python 2 Micro Edition
Ами препиши сорса от горния пример на С за микроконтролер по твой избор и дай да видим какво се получава. Магьоснико, не давай микропитона за пример, защото той е лош такъв. Как да бръкна в регистрите на ESP32-S3 от микропитона, например? В телитските модули с най-висок приоритет е GSM/GPRS стека. Питонските скриптове са с най-нисък приоритет, няма бъркане по регистрите, няма прекъсвания, SPI и I2C интерфейсите са софтуерни, но двата UARTa и двата командни дешифратора са с по 4кВ TX и RX буфери всеки. Много трудно ще се препълни такъв буфер, преди да бъде прочетен. При по-новите модули с USB интерфейс, буферите на този интерфейс са по 32кВ. Променлива тип стринг е до 16КВ, списък до 4000 елемента. Около 1МВ памет за скриптове и толкова RAM, която обаче е споделена и свободната RAM е неизвестна, но тестовете показват около 200кВ RAM в най-лошия случай. Няма за къде да се бърза поради таймингите на командите и спецификите на GSM/GPRS стека. Затова питона е идеален в такава среда.
|
| Пет Апр 11, 2025 5:12 pm |
|
 |
|
TheWizard
Ранг: Форумен бог
Регистриран на: Сря Апр 27, 2005 12:48 pm Мнения: 6094
|
 Re: PY2ME - Python 2 Micro Edition
в момента си експериментирам с Python 3 цяло и нагоре ( има разлика само е байткод номерации ) Идеята е .... си пишеш на компа програма/скриптове - Python 3 - само базови класове ( да кажем на ниво microPython ) ... че става цял питон Докато си пишеш на компа - почти виждаш какво се случва ( може да има и симулация на периферии ) Като надраскаш нещо - COMPILE-> PYC -> BIN ( bin е имитация на ELF - да подреди линейно кое къде е ) UPLOAD BIN в MCU няма питон терминал щото няма интерпретатор има само байткод емулатор ... питон машинен код .... Зора е че трябва C API за обработка на базовите питон функции - това реално го прави Питон екзето питон print(...) тряя го принтне кернела rmc = rmc.split(',') ..... split-а го прави кернела за променливата rmc Байткода просто илиминира интерпретатора - грижи се основно да "декодира" аргументи, call func, return result ... и разни шифтове и ротации не е много "асемблер"( в кавички ) но за сега няма идея - просто експерименти да видя с какво разполагам ... не го знам питона на интерпретаторно ниво
_________________ main[-1u]={1};
|
| Пет Апр 11, 2025 6:24 pm |
|
 |
|
miro_atc
Ранг: Форумен бог
Регистриран на: Нед Фев 26, 2006 6:52 pm Мнения: 11265 Местоположение: Добрич
|
 Re: PY2ME - Python 2 Micro Edition
 |  |  |  | Код: void foo() { coma_cstr_t input = "$GPRMC,160001.929,A,4242.0621,N,02319.2417,E,0.12,30.77,170310,,,A*XX"; CSTRING str; time t; if(input.get_element(9, str)) { if(time.sscanf(str.c_str(), "%y%M%D") == 3) { printf("Оригинална дата:%s", str.c_str()); printf("Преобразувана дата:%s", time.sprintf("%y%M%D").c_str()); } } }
|  |  |  |  |
Въпрос на библиотеки... Не се заяждам, просто примерът е неподходящ. В случая имам класове за кома сепаратед, стринг и time, затова и няма проблем. Ако беше нещо друго можеше и да има.
|
| Пет Апр 11, 2025 6:32 pm |
|
 |
|
Desert Leo
Ранг: Форумен бог
Регистриран на: Чет Фев 10, 2005 3:25 pm Мнения: 5677 Местоположение: София
|
 Re: PY2ME - Python 2 Micro Edition
Заяждай се колкото искаш.  Не ми пречи... Ми ... грозно изглежда. Кви са тия декларации на променливи, кви са тия if-ове, бре!!! 
|
| Пет Апр 11, 2025 6:57 pm |
|
 |
|
miro_atc
Ранг: Форумен бог
Регистриран на: Нед Фев 26, 2006 6:52 pm Мнения: 11265 Местоположение: Добрич
|
 Re: PY2ME - Python 2 Micro Edition
Как какви? Сбъркани  Ако бях пуснал компилация щях да разбера, че вместо вечеря съм изял други неща...
|
| Пет Апр 11, 2025 8:00 pm |
|
 |
|
TheWizard
Ранг: Форумен бог
Регистриран на: Сря Апр 27, 2005 12:48 pm Мнения: 6094
|
 Re: PY2ME - Python 2 Micro Edition
string.split(",") реално е : микроЗмияв CPython API ( 3.хх ) е още по сложно... в J2ME ... е нещо подобно - мързи ме да търся пример BTW: заглавиeтo на топика не значи Питон версия 2 а - PY2ME - Python TO Micro Edition
_________________ main[-1u]={1};
|
| Пет Апр 11, 2025 9:37 pm |
|
|
Кой е на линия |
Потребители разглеждащи този форум: 0 регистрирани и 5 госта |
|
Вие не можете да пускате нови теми Вие не можете да отговаряте на теми Вие не можете да променяте собственото си мнение Вие не можете да изтривате собствените си мнения Вие не можете да прикачвате файл
|
|