Compare commits

...

18 Commits

Author SHA1 Message Date
Kenwood 5c945e43b5 Add some notes 2021-12-14 01:35:30 -05:00
Kenwood dc3bc85607 I forgot where these came from 2021-08-19 10:00:13 -04:00
Kenwood 0d06a71fca Merge branch 'develop' of https://kitsunehosting.net/gitea/Kenwood/lewis-crawler into develop 2021-07-16 12:29:26 -04:00
Kenwood 5f9ea8867c Update frame model 2021-07-16 12:29:18 -04:00
Kenwood b42055bd4b increase otp time duration 2021-07-15 11:38:21 -04:00
Kenwood 7ea7f13e9b regen bits 2021-07-15 11:29:50 -04:00
Kenwood 9bb1cf2055 Conduct OTP tests 2021-07-15 11:29:44 -04:00
Kenwood 151853b1d3 Tested a85 encoding 2021-07-15 10:47:57 -04:00
Kenwood 6106c46bd8 Merge branch 'develop' of https://kitsunehosting.net/gitea/Kenwood/lewis-crawler into develop 2021-07-15 10:36:04 -04:00
Kenwood 5062ada35a Do some image compression tests~ 2021-07-15 10:35:33 -04:00
Kenwood c2d9fb20d7 Detach servo resource when done 2021-07-14 20:49:47 -04:00
Kenwood cadc2b0c6a Add updating notes 2021-07-14 20:11:46 -04:00
Kenwood a234275422 Create makefile for moving and setting up service file 2021-07-14 20:11:02 -04:00
Kenwood c67bcdc484 Complete arduino makefile 2021-07-14 20:04:20 -04:00
Kenwood 61d77870a0 Fix merge 2021-07-14 19:45:58 -04:00
Kenwood 598e84603f Update requirements and makefile to build crawler companion software 2021-07-14 12:20:35 -04:00
Kenwood 3c0ecdd98c Create makefile though still with bugs 2021-06-30 12:13:33 -04:00
Kenwood 041bde458c Merge in crawler software into develop, re-structruing some of the git layout. 2021-06-30 11:59:41 -04:00
19 changed files with 5150 additions and 67 deletions

2
.gitignore vendored
View File

@ -1,5 +1,7 @@
# Python
__pycache__
Pipfile
Pipfile.lock
# CAD
*.stl

View File

@ -1,7 +1,19 @@
# To install on robot
```
git clone <url>
cd lewis-crawler/crawler_software/raspberry_pi
make install?
git clone https://kitsunehosting.net/gitea/Kenwood/lewis-crawler /srv/crawler
cd /srv/crawler/crawler_software/raspberry_pi
make install
```
# Updating
```
cd /srv/crawler
git pull
```
# Notes
[Uart Stuff](https://www.reddit.com/r/raspberry_pi/comments/833qux/binary_file_tranfer_via_uart/)

5031
crawler_cad/External/Bed_moto.obj vendored Normal file

File diff suppressed because it is too large Load Diff

BIN
crawler_cad/External/bed_Moto.FCStd vendored Normal file

Binary file not shown.

Binary file not shown.

View File

@ -1,70 +1,38 @@
### DISCLAIMER
### This is an example Makefile and it MUST be configured to suit your needs.
### For detailed explanations about all the available options,
### please refer to https://github.com/sudar/Arduino-Makefile/blob/master/arduino-mk-vars.md
# A makefile for building the robot's slave software
# Uses arduino-cli
#
# Kitsune Scientific 2021
### PROJECT_DIR
### This is the path to where you have created/cloned your project
PROJECT_DIR = $(shell dirname $(shell pwd))
# What board to build for and its core
CORE ?= arduino:avr
FQBN ?= arduino:avr:nano:cpu=atmega328old
### ARDMK_DIR
### Path to the Arduino-Makefile directory.
ARDMK_DIR = $(PROJECT_DIR)/Arduino-Makefile
# What port to build on
ifndef SERIAL_DEV
ifneq (,$(wildcard /dev/ttyUSB0))
SERIAL_DEV = /dev/ttyUSB0
else ifneq (,$(wildcard /dev/ttyACM0))
SERIAL_DEV = /dev/ttyACM0
else
SERIAL_DEV = unknown
endif
endif
### ARDUINO_DIR
### Path to the Arduino application and resources directory.
ARDUINO_DIR = /usr/share/arduino
all: requirements build upload
### USER_LIB_PATH
### Path to where the your project's libraries are stored.
USER_LIB_PATH := $(realpath $(PROJECT_DIR)/lib)
build: requirements crawler_slave.ino
arduino-cli core install $(CORE)
### BOARD_TAG & BOARD_SUB
### For Arduino IDE 1.0.x
### Only BOARD_TAG is needed. It must be set to the board you are currently using. (i.e uno, mega2560, etc.)
# BOARD_TAG = mega2560
### For Arduino IDE 1.6.x
### Both BOARD_TAG and BOARD_SUB are needed. They must be set to the board you are currently using. (i.e BOARD_TAG = uno, mega, etc. & BOARD_SUB = atmega2560, etc.)
### Note: for the Arduino Uno, only BOARD_TAG is mandatory and BOARD_SUB can be equal to anything
BOARD_TAG = mega
BOARD_SUB = atmega2560
arduino-cli compile -b $(FQBN) crawler_slave
### MONITOR_PORT
### The port your board is connected to. Using an '*' tries all the ports and finds the right one. Choose one of the two.
MONITOR_PORT = /dev/ttyUSB*
# MONITOR_PORT = /dev/ttyACM*
upload: requirements crawler_slave.ino
arduino-cli upload -b $(FQBN) crawler_slave -p $(SERIAL_DEV)
### MONITOR_BAUDRATE
### It must be set to Serial baudrate value you are using.
MONITOR_BAUDRATE = 115200
### AVR_TOOLS_DIR
### Path to the AVR tools directory such as avr-gcc, avr-g++, etc.
AVR_TOOLS_DIR = /usr
### AVRDUDE
### Path to avrdude directory.
AVRDUDE = /usr/bin/avrdude
### CFLAGS_STD
CFLAGS_STD = -std=gnu11
### CXXFLAGS_STD
### You can choose wich ever you like
# CXXFLAGS_STD = -std=gnu++11
CXXFLAGS_STD = -std=gnu++17
### CPPFLAGS
### Flags you might want to set for debugging purpose. Comment to stop.
CXXFLAGS += -pedantic -Wall -Wextra
LDFLAGS += -fdiagnostics-color
### OBJDIR
### Don't touch this!
### This is were you put the binaries you just compile using 'make'
CURRENT_DIR = $(shell basename $(CURDIR))
OBJDIR = $(PROJECT_DIR)/build/$(CURRENT_DIR)/$(BOARD_TAG)
### path to Arduino.mk, inside the ARDMK_DIR, don't touch.
include $(ARDMK_DIR)/Arduino.mk
requirements:
@if [ -e requirements.txt ]; \
then while read -r i ; do echo ; \
echo "---> Installing " '"'$$i'"' ; \
arduino-cli lib install "$$i" ; \
done < requirements.txt ; \
else echo "---> MISSING requirements.txt file"; \
fi

View File

@ -51,7 +51,9 @@ void receiveEvent(int n) {
switch(id) {
case 1:
windowWiperServo.write(val);
windowWiperServo.write(val); // Set a val
delay(5); // pause for a moment
windowWiperServo.detach(); // Detach (stop moving) the servo
break;
}
}

View File

@ -0,0 +1 @@
Servo

View File

@ -0,0 +1,18 @@
# A makefile for installing the robot's python
# software and setting it up.
#
# Requires sudo
#
# Kitsune Scientific 2021
all: install
upload: crawler.service
sudo cp crawler.service /etc/systemd/system/crawler.service
sudo systemctl daemon-reload
sudo systemctl enable crawler.service
sudo systemctl start crawler.service
sudo systemctl status crawler

View File

@ -0,0 +1,16 @@
from PIL import Image
import base64
im = Image.open('still.jpg')
# using Image.ADAPTIVE to avoid dithering
for i in range(8, 0, -1):
out = im.convert('P', palette=Image.ADAPTIVE, colors=i)
out.save(f'out_{i}_bits.png')
with open(f'out_{i}_bits.png', 'rb') as image_file:
encoded_string = base64.a85encode(image_file.read())
with open(f'out_{i}_bits.txt', 'w') as f:
f.write(encoded_string.decode('UTF-8'))

View File

@ -0,0 +1 @@
M,6r;%14!\!!!!.8Ou6I!!!)I!!!&X#Qk&,!4s2MScA`m!)Q?g7AGd(zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!.5pZZiC(+%V8a6Akbu".KBGK#QOi)zdSl>0!!-\'6pXdsSF+-I!<<*"_P$QtD$r"izzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz!!!"D(e?.W!V_LqE<#t=!(fUS7'8jaJc

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,25 @@
from random import randrange
import time, pyotp, datetime
hotp = pyotp.HOTP(pyotp.random_base32())
success = 0
num_tries = 20
for i in range(0,num_tries):
epoch = int(time.time())
code = hotp.at(epoch)
print('------------------------')
print(f'Made a code {code} at {epoch}, sending a simualted instruction')
waittime = randrange(5)
print(f'Instuction will take {waittime} seconds to receive or be recieved')
time.sleep(waittime)
if hotp.verify(code, epoch):
print(f'code:{code} verified')
success += 1
else:
print(f'code:{code} expired')
print(f'Succeded {success} out of {num_tries} tries')