Время от времени я пишу свой велосипедный форум на джанге.
Для него и написал это приложение, но вышло имхо довольно неплохо, поэтому решил вынести его отдельным приложением.
Возможности
Автоматические создание миниатюр во время запроса (набор бэкендов: PIL, GraphicsMagick);
Проверка на вирусы (бэкэнды только для ClamAV (libclam, clamd));
Контрольные суммы файлов (SHA1);
Пути к файлам как в MediaWiki (трехуровневое дерево из каталогов);
Для работы над своим манипулятором потребовался удобный интерфейс.
То что я находил мне не нравилось, вот и написал свою версию.
Главный класс ведет себя как список или словарь для доступа к конкретной серве.
При таком подходе не нужно каждый раз по индексу вытаскивать серву, достаточно присвоить какой-нибудь переменной.
Каждой серве можно установить минимальное и максимальное положение (диапазон по умолчанию 500..2500 мкс), чему эти положения соответствуют в градусах и имя сервы.
После установки соответствия с градусами можно пользоваться свойствами Servo.degrees и Servo.radians вместо Servo.position.
Чтобы каждый раз не забивать параметры серв их можно сохранить в файл и из него же загрузить,
для этого служат методы SSC32.load_config(config_path) и SSC32.save_config(config_path),
а у конструктора есть необязательный аргумент config='config_path' из которого будут загружены параметры.
Важно заметить что сохранены будут только сервы имеющие имя.
В прошлую пятницу ко мне наконец-то пришла первая версия контроллера OR-duino.
И я собрал своего первого робота для следования по линии.
Состоит из:
OR-duino w/ LiPo battery ………………………… ~1200 p.
OR-LINESENS-KTIRx10 ………………………… ~360 р.
Tamiya twin-motor gearbox (item 70097) ………. ~550 р.
Tamiya off-road tires (item 70096) ……………….. ~210 р.
Старый железный конструктор ………………… бесценно :)
И того: ~2400 р.
После первых тестов назад добавил противовес.
Для поддержки контроллера написал библиотеки для Arduino IDE.
Также собрал свой дистрибутив Adruino IDE for Windows, в котором уже добавлена поддержка OR-duino: or-duino-ide-0018.win.zip (88 MiB, MD5: a4aba75634d858adc4987acf22b2ecc7).
Достаточно много изменений, важнейшее из которых — выделение низкоуровневой части в HAL и возможность его использовать отдельно.
Пример можно найти в doc/examples/hal-servo/.
Добавлена поддержка OR-AVR-M128-DS.
Правда реализовал далеко не все, что хотел выпустить в этой версии. Например пока так и не сделал мультимастер.
Брат купил себе это «чудо» китайской мысли, надеясь что там конексантовские чипы (о чем написано в описании), которые под линуксом работают без проблем. Еще и на коробке Тукс нарисован.
Но на самом деле чипы там филипсовские, а плата от Hawell. Китайцы еще и на копеечной эпромке сэкономили и из-за этого использовать автодетект нельзя.
Долго пытался заставить работать пример работы с бутом от STMicroelectronics.
Идет он в бинарном виде, под вистой я так и не увидел работы, плюнул и написал по спекам свой программатор на питоне.
Спасибо Александру Соловьеву за библиотеку opster, без нее еще бы долго сидел воевал с optparse :)
Стандартный для питона setup.py.
А еще зарегистрировал на PyPi, так что будет достаточно:
easy_install stboot
Использование
Вообще думаю, что достаточно хелпа :)
Единственная неприятность — -a не принимает шестнадцатеричную запись, приходится шелл просить (-a $((0x20001000))).
И думаю нужно немного пояснить ключ -s. Он сделан специально для отладочной платы SK-MSTM32F107, у нее сигнал RTS управляет состоянием BOOT0, а DTR — RESET. Так вот ключ -s заставляет сначала подрыгать этими ногами, чтобы оказаться в загрузчике не переключая ни каких переключателей.
$ st-boot.py
usage: st-boot.py <command> [options]
commands:
erase Flash global erase
help Show help for a given help topic or a help overview
info Show device information
program Program memory
read Read memory
verify Verify memory
version Show st-boot version
В репозитории убунты к сожалению нет пакетов gcc для кортексов, пришлось собирать самому.
В сети нашел хорошее руководство и собрал пакеты для Ubuntu/Debian amd64 (x86_64).