;;; ev3-control -- ev3 LEGO droid control -*- lexical-binding: t -*- ;; ;; this file: ;; https://dataswamp.org/~incal/terror-3/ev3-control.el ;; ;; eval after edit: (check-style) ;; https://dataswamp.org/~incal/emacs-init/ide/elisp.el ;; ;;; Commentary: ;; ;; Control the ev3dev LEGO mindstorm ev3 droid from Emacs. ;; ;; See this file: ;; https://dataswamp.org/~incal/conf/.zsh/terror ;; ;;; Code: (require 'ev3-color-stop-on-color) (require 'ev3-demo) (require 'ev3-ir-prox-stop) (require 'ev3-monitor) (require 'ev3-motor-rotate) (require 'ev3-motor-speed) (require 'ev3-motor-stop) (require 'ev3-motor-straight) (require 'ev3-motor-turn) (require 'ev3-touch) (defvar ev3-control-mode-map (let ((kmap (make-keymap))) ;; ev3-demo.el (define-key kmap "D" #'ev3-demo) ;; ev3-motor-stop.el (define-key kmap "p" #'ev3-stop) ;; ev3-motor-straight.el (define-key kmap "w" #'ev3-forward-dwim) (define-key kmap "s" #'ev3-reverse-dwim) (define-key kmap "W" #'ev3-forward-inc) (define-key kmap "S" #'ev3-reverse-inc) ;; ev3-motor-rotate.el (define-key kmap "j" #'ev3-rotate-left-dwim) ; DNC (why?) (define-key kmap "l" #'ev3-rotate-right-dwim) ; DNC (define-key kmap "J" #'ev3-rotate-left) (define-key kmap "L" #'ev3-rotate-right) ;; ev3-motor-turn.el (define-key kmap "Q" #'ev3-turn-forward-sharp-left) (define-key kmap "E" #'ev3-turn-forward-sharp-right) (define-key kmap "q" #'ev3-turn-forward-left) (define-key kmap "e" #'ev3-turn-forward-right) (define-key kmap "a" #'ev3-turn-reverse-left) (define-key kmap "d" #'ev3-turn-reverse-right) ;; ev3-motor-speed.el (define-key kmap "+" #'ev3-speed-up) (define-key kmap "=" #'ev3-speed-up) (define-key kmap "_" #'ev3-speed-down) (define-key kmap "-" #'ev3-speed-down) ;; ev3-leds.el (define-key kmap "r" #'ev3-led-random) ;; ev3-monitor.el (define-key kmap "m" #'ev3-monitor) kmap)) (define-minor-mode ev3-control-mode "Control the ev3 LEGO droid." :keymap ev3-control-mode-map (when ev3-control-mode (let ((ev3-buffer (get-buffer-create "*ev3-droid*"))) (with-current-buffer ev3-buffer (insert "ev3 good-to-go, sir!\n") ) (pop-to-buffer ev3-buffer) (delete-other-windows) ))) (defalias 'e3m #'ev3-control-mode) (provide 'ev3-control) ;;; ev3-control.el ends here