Вовтужуся зараз з опитуванням заліза. Опитує Arduino Pro Mini. Це ота маленька плата з червоним вогником і купою проводів.

На зараз опитується кілька входів. Опитування дуже просте, які саме контакти увімкнено. На стендові видно, що дві нажаті кнопки відповідають двом одиничкам. Решта — нулі. Це — відображення у двійковій системі числення. Нижній рядок — теж саме, але у десятковій. Всі принципові моменти вирішено, залишилося тільки зчитати аналоговий сигнал та відправити це все на більш потужне залізо для обробки.

Тепер по Ардуїнці. Скажу наперед, мені сподобалось попри бридкий С++ на якому там все пишеться. Ця крихітка, що менша за половину сірникової коробки, дозволяє зробити чимало корисного: нескладне управляння верстатом, умнодім і т.і. Апаратна платформа там продумана і вдала. І коштує копійки. Що не сподобалось. Як це часто буває, гарні залізячники є поганими програмістами. Програмувати фірмовими засобами — це біль. На щастя, існує така штука, як PlatformIO. Це набір утиліт командного рядка, які беруть на себе всю основну роботу по прошивці Ардуїнки. І вони прикручуються куди хочеш. У правій частині редактора коду видно, як я прикрутив їх. Це, власне, і всі налаштування редактору, які я робив.

На зараз опитується кілька входів. Опитування дуже просте, які саме контакти увімкнено. На стендові видно, що дві нажаті кнопки відповідають двом одиничкам. Решта — нулі. Це — відображення у двійковій системі числення. Нижній рядок — теж саме, але у десятковій. Всі принципові моменти вирішено, залишилося тільки зчитати аналоговий сигнал та відправити це все на більш потужне залізо для обробки.
Тепер по Ардуїнці. Скажу наперед, мені сподобалось попри бридкий С++ на якому там все пишеться. Ця крихітка, що менша за половину сірникової коробки, дозволяє зробити чимало корисного: нескладне управляння верстатом, умнодім і т.і. Апаратна платформа там продумана і вдала. І коштує копійки. Що не сподобалось. Як це часто буває, гарні залізячники є поганими програмістами. Програмувати фірмовими засобами — це біль. На щастя, існує така штука, як PlatformIO. Це набір утиліт командного рядка, які беруть на себе всю основну роботу по прошивці Ардуїнки. І вони прикручуються куди хочеш. У правій частині редактора коду видно, як я прикрутив їх. Це, власне, і всі налаштування редактору, які я робив.
Нема проблем прикрутити їх і до іншого редактора. До речі, автори PlatformIO зробили годну IDE на базі Visual Studio Code.
Наразі ідеальне поєднання Ардуїнки і якогось мікрокомп’ютера на кшталт Raspberry PI. Ардуїнка взаємодіє з датчиками чи виконавчими механізмами, а Raspberry бере на себе складні обчислення, інтерфейс і т.і.
no subject
Date: 2021-04-20 07:13 pm (UTC)В даній ситуації, щоб залишити вікно з самим лише кодом, потрібно 2 хоткея :)
no subject
Date: 2021-04-20 07:16 pm (UTC)Гаразд, я інсталював ecb. А як далі його активувати і користуватись?Всьо, вже знайшов!no subject
Date: 2021-04-20 07:27 pm (UTC)Лови мій конфіг:
;;; emacs-rc-ecb.el --- Emacs Code Browser settings
(add-to-list 'load-path
"~/elisp/mode/ecb")
(require 'ecb)
;
(defun display-buffer-at-bottom--display-buffer-at-bottom-around (orig-fun &rest args)
"Bugfix for ECB: cannot use display-buffer-at-bottom', call display-buffer-use-some-window' instead in ECB frame."
(if (and ecb-minor-mode (equal (selected-frame) ecb-frame))
(apply 'display-buffer-use-some-window args)
(apply orig-fun args)))
(advice-add 'display-buffer-at-bottom
:around #'display-buffer-at-bottom--display-buffer-at-bottom-around)
;
(setq stack-trace-on-error t)
;(require 'ecb-autoloads)
(global-set-key (kbd "\e\el") 'ecb-toggle-ecb-windows)
(global-set-key (kbd "\e\eea") 'ecb-activate)
(global-set-key (kbd "\e\eed") 'ecb-deactivate)
(custom-set-variables
'(ecb-auto-activate nil)
'(ecb-auto-compatibility-check nil)
'(ecb-cache-directory-contents (quote ((".*" . 50))))
'(ecb-compilation-buffer-names (quote (("*Calculator*") ("*vc*") ("*vc-diff*")
("*Apropos*") ("*Occur*") ("*shell*")
("\\*[cC]ompilation.*\\*" . t)
("\\*i?grep.*\\*". t) ("*JDEE Compile Server*")
("*Help*") ("*Completions*") ("*Backtrace*")
("*Compile-log*") ("*bsh*") ("*slime-events*")
("*slime-repl sbcl*") ("*slime-description*")
("*Messages*") ("*java doc*")
("*PYDOCS*") ("*Python*") ("*Python Output*"))))
'(ecb-compile-window-height 12)
'(ecb-compile-window-temporally-enlarge (quote after-selection))
'(ecb-compile-window-width (quote edit-window))
'(ecb-directories-menu-user-extension-function nil)
'(ecb-gzip-setup (quote cons))
'(ecb-history-menu-user-extension-function nil)
'(ecb-layout-name "left15")
'(ecb-methods-menu-user-extension-function nil)
'(ecb-options-version "2.4")
'(ecb-prescan-directories-for-emptyness nil)
'(ecb-sources-menu-user-extension-function nil)
'(ecb-tar-setup (quote cons))
'(ecb-tip-of-the-day nil)
'(ecb-version-check nil)
'(ecb-windows-height 0.2)
'(ecb-windows-width 0.2))
;;; emacs-rc-ecb.el ends here