Поиск сообщества
Показаны результаты для тегов 'Python'.
Найдено: 5 результатов
-
Всем привет! Запилил тут калькулятор для Android, писал на Python (Kivy), делал под свои нужды, а именно по функционалу приближенный к режимам виндового калькулятора Стандартный и Программист. Перед калькулятором Windows есть плюс - 4 независимых окна для вычислений с возможностью переноса результатов между другими режимами и окнами, это вместо того чтобы открывать 4 калькулятора. Замечена пара багов и пока ещё недоделаны логические операции в режиме Программист. UPD. Обновил приложение, добавлен бинарный режим (побитовое редактирование слова до 8 байт). Просьба если есть проблемы со скачиванием или установкой отписаться сюда или в личку. Осталось добавить логические операции. Ссылка на .apk файл: https://drive.google.com/file/d/1LFKPU5FDIe3l1VWiBOBDc6tBVVUAEXT-/view?usp=sharing
-
import sys SUBJECT = b"Subject: " HEADER_END = b"\r\n\r\n" def find_pos(email): return map( lambda x: email.find(x) + len(x), (SUBJECT, HEADER_END) ) with open(sys.argv[1], "rb") as f: email = f.read() subject_pos, header_end_pos = find_pos(email) print(subject_pos, header_end_pos)
-
Основные обязанности: •проектирование, разработка и поддержка ПО для встраиваемых систем; •сопровождение кода и тестов; •документирование разрабатываемого ПО; Требования к кандидату: • опыт работы от 3 лет; • уверенное знание C; • опыт разработки встраиваемых приложений; • опыт работы с платформами на ARM-процессорах; • опыт работы с STM32; • опыт работы с ОСРВ (желательно FreeRTOS); • опыт работы с Keil, System Workbench; • опыт работы c ModBus, USB, CAN; Приветствуется: • опыт проектирования архитектур ПО; • знание Python; Условия: •трудоустройство по ТК РФ; •доход обсуждается с успешным кандидатом (от 60 тыс.руб.) •дистанционная работа, можно работать из дома; •выплаты заработной платы 2 раза в месяц Наш сайт: http://i-mt.net/ Моя почта: dezh@i-mt.net Мой мобильный: +7963 776 36 55 С уважением, Михаил.
-
- STM32
- ARM процессор
-
(и ещё 7 )
C тегом:
-
Приветствую. Схема простая: малина - pca9685 - оптрон - LDD-1000H - светодиоды. Все питания берётся от одного БП, причём на драйвер идёт минус 48 вольт. Отсюда и оптрон. Теперь о проблеме. Запускаю питоновый скрипт через cron. Каждый раз, будь то включение сд, выключение или изменение яркости - сначала происходит мгновенная вспышка на максимальной яркости, а затем уже то, что по плану. В общем-то оно и понятно - создаю новый объект класса при каждом запуске скрипта. Пример led_on: import Adafruit_PCA9685 pwm = Adafruit_PCA9685.PCA9685() pwm.set_pwm_freq(100) pwm.set_pwm(0, 0, 1000) Был на форуме Adafruit. Там мне "посоветовали", чтобы я не инициализировал контроллер каждый раз. Но как так-то? В общем, возможно ли софтварно решить эту задачу? Хардварно не придумал ничего лучше, чем повесить полевик на Output Enable и менять уровень на пине каждый раз перед работой с контроллером из нового скрипта. Это хоть и лучше, чем сейчас, но всё равно будет кратковременно моргать, только уже темнотой ) Здесь можно посмотреть библиотеку от Adafruit для работы с PCA9685. Прошу советов.
-
Нужно с помощью Raspberry выводить на текстовый дисплей список файлов из определенной директории. И листать этот список с помощью тактовых кнопок. Дисплей Winstar WH1602A-YGH-CTK на контроллере S6B0066U (аналог HD44780). Дисплей подключил по этой схеме (в 4-х битном режиме): Тактовые кнопки подключал так: Написал пробную версию программы: при нажатии на одну кнопку на дисплей выводятся первые два файла, при нажатии на вторую - следующие два. Это должно выглядеть так: Но правильный список выводится не всегда. Почему-то иногда экран выводит чушь, типа этой В коде поигрался со значениями sleep и добился того, чтобы глюк появлялся как можно реже - примерно на каждом втором-третьем нажатии это выскакивает. Подозреваю, что проблема в том, что S6B0066U все-таки не полный аналог HD44780 вопреки документации (в интернете видел упоминания этой проблемы при подключении S6B0066U в 4-битном режиме. Код программы: #!/usr/bin/python import RPi.GPIO as GPIO import os from time import sleep directory = '/media/TRANSCEND' files = os.listdir(directory) images = filter(lambda x: x.endswith('.jpg'), files) class HD44780: def __init__(self, pin_rs=7, pin_e=8, pins_db=[25, 24, 23, 18]): self.pin_rs=pin_rs self.pin_e=pin_e self.pins_db=pins_db GPIO.setmode(GPIO.BCM) GPIO.setup(self.pin_e, GPIO.OUT) GPIO.setup(self.pin_rs, GPIO.OUT) for pin in self.pins_db: GPIO.setup(pin, GPIO.OUT) self.clear() def clear(self): """ Blank / Reset LCD """ self.cmd(0x33) # $33 8-bit mode self.cmd(0x32) # $32 8-bit mode self.cmd(0x28) # $28 8-bit mode self.cmd(0x0C) # $0C 8-bit mode self.cmd(0x06) # $06 8-bit mode self.cmd(0x01) # $01 8-bit mode def cmd(self, bits, char_mode=False): """ Send command to LCD """ sleep(0.001) bits=bin(bits)[2:].zfill(8) GPIO.output(self.pin_rs, char_mode) for pin in self.pins_db: GPIO.output(pin, False) for i in range(4): if bits[i] == "1": GPIO.output(self.pins_db[::-1][i], True) GPIO.output(self.pin_e, True) GPIO.output(self.pin_e, False) for pin in self.pins_db: GPIO.output(pin, False) for i in range(4,8): if bits[i] == "1": GPIO.output(self.pins_db[::-1][i-4], True) GPIO.output(self.pin_e, True) GPIO.output(self.pin_e, False) def message(self, text): """ Send string to LCD. Newline wraps to second line""" for char in text: if char == ' ': self.cmd(0xC0) # next line else: self.cmd(ord(char),True) if __name__ == '__main__': GPIO.setmode(GPIO.BCM) GPIO.setup(21, GPIO.IN, pull_up_down=GPIO.PUD_UP) GPIO.setup(16, GPIO.IN, pull_up_down=GPIO.PUD_UP) while True: try: if GPIO.input(21) == False: lcd = HD44780() list=images[0] + " " + images[1] list=str(list) lcd.message(list) if GPIO.input(16) == False: lcd = HD44780() list=images[2] + " " + images[3] list=str(list) lcd.message(list) sleep(0.12) except KeyboardInterrupt: exit()
- 4 ответа
-
- raspberry pi
- h44780
-
(и ещё 1 )
C тегом: