
<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://wiki.robotika.sk/robowiki/index.php?action=history&amp;feed=atom&amp;title=Safe_-_Code</id>
		<title>Safe - Code - Revision history</title>
		<link rel="self" type="application/atom+xml" href="https://wiki.robotika.sk/robowiki/index.php?action=history&amp;feed=atom&amp;title=Safe_-_Code"/>
		<link rel="alternate" type="text/html" href="https://wiki.robotika.sk/robowiki/index.php?title=Safe_-_Code&amp;action=history"/>
		<updated>2026-05-05T18:49:08Z</updated>
		<subtitle>Revision history for this page on the wiki</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>https://wiki.robotika.sk/robowiki/index.php?title=Safe_-_Code&amp;diff=10859&amp;oldid=prev</id>
		<title>Robot: Created page with &quot;Return back to project page: Safe - Fedor Agarshev  Python code for the Safe project:  &lt;syntaxhighlight lang=python&gt;  from spike import...&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.robotika.sk/robowiki/index.php?title=Safe_-_Code&amp;diff=10859&amp;oldid=prev"/>
				<updated>2023-05-30T14:11:52Z</updated>
		
		<summary type="html">&lt;p&gt;Created page with &amp;quot;Return back to project page: &lt;a href=&quot;/robowiki/index.php?title=Spike_Prime_-_Safe_-_Fedor_Agarshev&quot; title=&quot;Spike Prime - Safe - Fedor Agarshev&quot;&gt;Safe - Fedor Agarshev&lt;/a&gt;  Python code for the Safe project:  &amp;lt;syntaxhighlight lang=python&amp;gt;  from spike import...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Return back to project page: [[Spike Prime - Safe - Fedor Agarshev|Safe - Fedor Agarshev]]&lt;br /&gt;
&lt;br /&gt;
Python code for the Safe project:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=python&amp;gt; &lt;br /&gt;
from spike import PrimeHub, LightMatrix, Button, StatusLight, ForceSensor, MotionSensor, Speaker, ColorSensor, App, DistanceSensor, Motor, MotorPair&lt;br /&gt;
from spike.control import wait_for_seconds, wait_until, Timer&lt;br /&gt;
from math import *&lt;br /&gt;
import random&lt;br /&gt;
&lt;br /&gt;
hub = PrimeHub()&lt;br /&gt;
motor1 = Motor('E')&lt;br /&gt;
motor2 = Motor('D')&lt;br /&gt;
motorLock = Motor('F')&lt;br /&gt;
timer = Timer()&lt;br /&gt;
&lt;br /&gt;
motorLock.set_default_speed(10)&lt;br /&gt;
motorLock.run_to_position(0)&lt;br /&gt;
matrix = [[0,0,0,0,0],[0,0,0,0,0],[0,0,0,0,0],[0,0,0,0,0],[0,0,0,0,0]]&lt;br /&gt;
&lt;br /&gt;
def show_matrix(matrix):&lt;br /&gt;
    for i in range(len(matrix)):&lt;br /&gt;
        for j in range(len(matrix[0])):&lt;br /&gt;
            if matrix[i][j] == 1:&lt;br /&gt;
                hub.light_matrix.set_pixel(j, i, 100)&lt;br /&gt;
            else:&lt;br /&gt;
                hub.light_matrix.set_pixel(j, i, 0)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def motor1_position():&lt;br /&gt;
    position = motor1.get_position()&lt;br /&gt;
    if 12 &amp;gt; position or position &amp;gt; 349:&lt;br /&gt;
        matrix[0][2] = 1&lt;br /&gt;
    else:&lt;br /&gt;
        matrix[0][2] = 0&lt;br /&gt;
    if 33 &amp;gt; position and position &amp;gt; 11:&lt;br /&gt;
        matrix[0][3] = 1&lt;br /&gt;
    else:&lt;br /&gt;
        matrix[0][3] = 0&lt;br /&gt;
    if 56 &amp;gt; position and position &amp;gt; 32:&lt;br /&gt;
        matrix[0][4] = 1&lt;br /&gt;
    else:&lt;br /&gt;
        matrix[0][4] = 0&lt;br /&gt;
    if 77 &amp;gt; position and position &amp;gt; 55:&lt;br /&gt;
        matrix[1][4] = 1&lt;br /&gt;
    else:&lt;br /&gt;
        matrix[1][4] = 0&lt;br /&gt;
    if 101 &amp;gt; position and position &amp;gt; 76:&lt;br /&gt;
        matrix[2][4] = 1&lt;br /&gt;
    else:&lt;br /&gt;
        matrix[2][4] = 0&lt;br /&gt;
    if 123 &amp;gt; position and position &amp;gt; 100:&lt;br /&gt;
        matrix[3][4] = 1&lt;br /&gt;
    else:&lt;br /&gt;
        matrix[3][4] = 0&lt;br /&gt;
    if 144 &amp;gt; position and position &amp;gt; 122:&lt;br /&gt;
        matrix[4][4] = 1&lt;br /&gt;
    else:&lt;br /&gt;
        matrix[4][4] = 0&lt;br /&gt;
    if 168 &amp;gt; position and position &amp;gt; 143:&lt;br /&gt;
        matrix[4][3] = 1&lt;br /&gt;
    else:&lt;br /&gt;
        matrix[4][3] = 0&lt;br /&gt;
    if 192 &amp;gt; position and position &amp;gt; 167:&lt;br /&gt;
        matrix[4][2] = 1&lt;br /&gt;
    else:&lt;br /&gt;
        matrix[4][2] = 0&lt;br /&gt;
    if 213 &amp;gt; position and position &amp;gt; 191:&lt;br /&gt;
        matrix[4][1] = 1&lt;br /&gt;
    else:&lt;br /&gt;
        matrix[4][1] = 0&lt;br /&gt;
    if 236 &amp;gt; position and position &amp;gt; 212:&lt;br /&gt;
        matrix[4][0] = 1&lt;br /&gt;
    else:&lt;br /&gt;
        matrix[4][0] = 0&lt;br /&gt;
    if 259 &amp;gt; position and position &amp;gt; 235:&lt;br /&gt;
        matrix[3][0] = 1&lt;br /&gt;
    else:&lt;br /&gt;
        matrix[3][0] = 0&lt;br /&gt;
    if 282 &amp;gt; position and position &amp;gt; 258:&lt;br /&gt;
        matrix[2][0] = 1&lt;br /&gt;
    else:&lt;br /&gt;
        matrix[2][0] = 0&lt;br /&gt;
    if 303 &amp;gt; position and position &amp;gt; 281:&lt;br /&gt;
        matrix[1][0] = 1&lt;br /&gt;
    else:&lt;br /&gt;
        matrix[1][0] = 0&lt;br /&gt;
    if 325 &amp;gt; position and position &amp;gt; 302:&lt;br /&gt;
        matrix[0][0] = 1&lt;br /&gt;
    else:&lt;br /&gt;
        matrix[0][0] = 0&lt;br /&gt;
    if 350 &amp;gt; position and position &amp;gt; 325:&lt;br /&gt;
        matrix[0][1] = 1&lt;br /&gt;
    else:&lt;br /&gt;
        matrix[0][1] = 0&lt;br /&gt;
&lt;br /&gt;
def motor2_position():&lt;br /&gt;
    position = motor2.get_position()&lt;br /&gt;
    if 23 &amp;gt; position or position &amp;gt; 338:&lt;br /&gt;
        matrix[1][2] = 1&lt;br /&gt;
    else:&lt;br /&gt;
        matrix[1][2] = 0&lt;br /&gt;
    if 48 &amp;gt; position and position &amp;gt; 23:&lt;br /&gt;
        matrix[1][3] = 1&lt;br /&gt;
    else:&lt;br /&gt;
        matrix[1][3] = 0&lt;br /&gt;
    if 113 &amp;gt; position and position &amp;gt; 47:&lt;br /&gt;
        matrix[2][3] = 1&lt;br /&gt;
    else:&lt;br /&gt;
        matrix[2][3] = 0&lt;br /&gt;
    if 158 &amp;gt; position and position &amp;gt; 112:&lt;br /&gt;
        matrix[3][3] = 1&lt;br /&gt;
    else:&lt;br /&gt;
        matrix[3][3] = 0&lt;br /&gt;
    if 203 &amp;gt; position and position &amp;gt; 157:&lt;br /&gt;
        matrix[3][2] = 1&lt;br /&gt;
    else:&lt;br /&gt;
        matrix[3][2] = 0&lt;br /&gt;
    if 248 &amp;gt; position and position &amp;gt; 203:&lt;br /&gt;
        matrix[3][1] = 1&lt;br /&gt;
    else:&lt;br /&gt;
        matrix[3][1] = 0&lt;br /&gt;
    if 293 &amp;gt; position and position &amp;gt; 247:&lt;br /&gt;
        matrix[2][1] = 1&lt;br /&gt;
    else:&lt;br /&gt;
        matrix[2][1] = 0&lt;br /&gt;
    if 339 &amp;gt; position and position &amp;gt; 292:&lt;br /&gt;
        matrix[1][1] = 1&lt;br /&gt;
    else:&lt;br /&gt;
        matrix[1][1] = 0&lt;br /&gt;
&lt;br /&gt;
def check_for_unlock():&lt;br /&gt;
    if matrix[4][1] == 1 and matrix[3][2] == 1:&lt;br /&gt;
        if timer.now() &amp;gt; 2:&lt;br /&gt;
            return True&lt;br /&gt;
    else:&lt;br /&gt;
        timer.reset()&lt;br /&gt;
        return False&lt;br /&gt;
&lt;br /&gt;
def light_matrix_open_lock():&lt;br /&gt;
    matrix =    [[0,1,1,1,0],&lt;br /&gt;
                [0,1,0,1,0],&lt;br /&gt;
                [0,0,0,1,0],&lt;br /&gt;
                [1,1,1,1,1],&lt;br /&gt;
                [1,1,1,1,1]]&lt;br /&gt;
    show_matrix(matrix)&lt;br /&gt;
    wait_for_seconds(3)&lt;br /&gt;
&lt;br /&gt;
def light_matrix_closed_lock():&lt;br /&gt;
    matrix =    [[0,1,1,1,0],&lt;br /&gt;
                [0,1,0,1,0],&lt;br /&gt;
                [0,1,0,1,0],&lt;br /&gt;
                [1,1,1,1,1],&lt;br /&gt;
                [1,1,1,1,1]]&lt;br /&gt;
    show_matrix(matrix)&lt;br /&gt;
    wait_for_seconds(3)&lt;br /&gt;
&lt;br /&gt;
def open_chest():&lt;br /&gt;
    motorLock.run_to_position(0)&lt;br /&gt;
    light_matrix_open_lock()&lt;br /&gt;
&lt;br /&gt;
def close_motors():&lt;br /&gt;
    motor1.set_default_speed(80)&lt;br /&gt;
    motor2.set_default_speed(80)&lt;br /&gt;
    motor1.run_to_position(random.randint(0, 359))&lt;br /&gt;
    motor2.run_to_position(random.randint(0, 359))&lt;br /&gt;
    motor1.set_default_speed(-80)&lt;br /&gt;
    motor2.set_default_speed(-80)&lt;br /&gt;
    motor1.run_to_position(random.randint(0, 359))&lt;br /&gt;
    motor2.run_to_position(random.randint(0, 359))&lt;br /&gt;
    motor1.set_default_speed(80)&lt;br /&gt;
    motor2.set_default_speed(80)&lt;br /&gt;
    motor1.run_to_position(random.randint(0, 359))&lt;br /&gt;
    motor2.run_to_position(random.randint(0, 359))&lt;br /&gt;
&lt;br /&gt;
def close_chest():&lt;br /&gt;
    light_matrix_closed_lock()&lt;br /&gt;
    show_matrix(matrix)&lt;br /&gt;
    motorLock.run_to_position(270)&lt;br /&gt;
    close_motors()&lt;br /&gt;
    while True:&lt;br /&gt;
        motor1_position()&lt;br /&gt;
        motor2_position()&lt;br /&gt;
        show_matrix(matrix)&lt;br /&gt;
        if check_for_unlock():&lt;br /&gt;
            break&lt;br /&gt;
    open_chest() &lt;br /&gt;
&lt;br /&gt;
while True:&lt;br /&gt;
    close_chest()&lt;br /&gt;
    hub.left_button.wait_until_pressed()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Robot</name></author>	</entry>

	</feed>