Skip to content

Instantly share code, notes, and snippets.

View aemarkov's full-sized avatar

Markov Alex aemarkov

View GitHub Profile
@aemarkov
aemarkov / PID_controller.cs
Created July 28, 2019 16:07
Simple implementation of the PID-controller on C#
class PID <T>
{
private float _kGain; // P (пропорциональный) коэффициент
private float _iGain; // I (интегральный) коэффициент
private float _dGain; // D (дифференциальный) коэффициент
private T _dState; // Значение с предыдущего шага, используется для вычисления D-составляющей
private T _iSTate; // Накопленная ошибка, используется для вычисления I-составляющей
private T _iMax; // Минимальное и максимальное значение накопленной ошибки, чтобы
private T _iMin; // она не улетела куда-то очень далеко
@aemarkov
aemarkov / LoRa.md
Created September 5, 2017 06:08
Описание протокола LoRa вместе с библиотекой для модулей SX1278

Модуляция и кодирование

LoRa имеет линейную частотную модуляцию. Это означает, что частота сигнала линейно возрастает от начальной частоты f0 до конечной f1. Разность частот - bandwidth. Отдельный сигнал называется chirp (чирп).

Установка bandwidth:

void LoRa_SetSignalBandwidth(enum LoRa_Bandwidth sbw);
@aemarkov
aemarkov / wpf.md
Last active September 21, 2020 20:09

Введение

Спизжено с хабра по причине того, что автор не смог в форматирование (прим. копипастера)

Статья посвящена работе с MVVM и WPF. В ней описывается процесс разработки twitter client. Процесс разработки разбит на шаги. В конце каждого шага читатель параллельно пишущий приложение должен иметь работающее приложение. Каждый последующий шаг добавляет какую-то функциональность к написанному на предыдущем шаге. Используется thirdparty библиотека TweetSharp. Ссылку на исходный код, а так же оригинал статьи, написанный мной на английском, можно найти тут. Статья рассчитана на новичков в WPF разработке. Но предполагается, что читатель имеет некоторый начальный опыт работы с WPF, в частности освоил data binding. Я не буду писать зачем нужно использовать MVVM – считаю, что об этом хорошо написано в статье “Приложения WPF с шаблоном проектирования модель-представление-модель представления” от Джоша Смита. Если вы не хотите читать эту статью – просто поверьте мне – неверное с

@aemarkov
aemarkov / adder-subtractor.ipynb
Last active April 5, 2020 15:16
Adder-subtractor circuit model with carry/borrow in and condition flags
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
@aemarkov
aemarkov / velodyne_zed_record.launch
Created January 30, 2020 13:17
ROS .launch-file to record bag with pointcloud from Velodyne LiDAR with SLAM using ZED-camera
<?xml version="1.0"?>
<launch>
<arg name="is_record_odom" default="true"/>
<arg name="is_record_velodyne" default="true"/>
<arg name="bags_directory" value="/home/nvidia/bags"/>
<!-- ZED-camera SLAM -->
<include file="$(find zed_wrapper)/launch/zed.launch" if="$(eval is_record_odom)"/>
<!-- LiDAR -->
@aemarkov
aemarkov / texture-generator.ipynb
Created November 5, 2019 17:00
texture-generator.ipynb
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1. Хранить статьи
1.1. Хранить все поля библиографического описания, которые только есть
1.2. Хранить ссылки на цитируемые статьи
1.3. Хранить теги
1.4. Как хранить?
a. Plain text BiBTeX
b. JSON
c. SQL
2. Добавлять статьи
2.1. Вставлять BiBTeX, если он доступен
@aemarkov
aemarkov / killer_bath.txt
Created June 16, 2019 22:33
E2 script for Garry's Mod killer bath
# This is an advanced KILLER BATH
# Features:
# - precise player targeting with PID-controller
# - rotation control
# - OPTIONAL: teleport though obstacles (using ranger)
# - OPTIONAL: explode when close to the player
# (to kill players with no-clip)
@name killer_bath
@inputs
@outputs Detonate Arm TeleportPos:vector Jump Freeze
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.