Форма для тротуарной плитки своими руками

Форма для тротуарной плитки своими руками

Shihad 24.04.2011 07:23

Эй, моделисты, роботехи и сочувствующие! Хотите попробовать что-нибудь по-настоящему большое? Сегодня в домашних условиях из подручных материалов мы построим дирижабль!

Для постройки дирижабля Sverdlov Airship v 0.5 нам потребуется:

1.Ардуино-совместимый контроллер. Мы изготовили MRC28 по материалам сайта robozone.su.

2.Радиомодем с интерфейсом UART. Впрочем, можно летать на проводе RS-232 или USB. Мы купили Aurel-wiz-434. Две штуки - как приемник и передатчик.

3.Оболочка и гелий. В качестве оболочки возьмите радиозонды метеорологические. Поищите в своем городе - в Екб их продает ОАО "Метео" на Студенческой. Если нет - купите на Ебае. Нужны радиозондовые оболочки на 650 грамм - раздуются и поднимут больше. Гелий нужен марки "Б", у нас он продается на техгазе, баллон за 2000 + аренда\покупка баллона.

4.Винты, движки и драйверы к ним. От старых коллекторных помощнее - потянут в тихом помещении без сквозняков. До бесколлекторных, тянущих по 500 грамм.

В нашей альфа-версии стояли движки от советского магнитофона и драйвер к ним с того же робозона. В нынешней - бесколлекторные движки на 7А каждый и соответствующие драйверы к ним, купленные в магазине Пилотаж-RC. Как мы намаялись с подключением драйверов!

5.Сервомотор. Нужен для изменения вектора тяги. Наш выбор Hitec HS-49B, но можете взять любой подходящий.

6.Аккумулятор\батарея. Определитесь по движку. Можно использовать новый литий-полимерный аккум из магазина моделей, можно - 8-16 штук "Крон". Мы брали и то, и другое.

7.Рама. Алюминиевый уголок, полосу и трубу поищите в магазине стройматеиалов. Если кто умеет - может выклеить гондолу из углепластика.

8. Джойстик. Рулить будем именно им.

Изготовьте раму - нарежьте алюминиевый уголок ножовкой и склепайте каркас. Можете свинтить, но пользуйтесь гроверами - двигатели при нашей точности могут дать вибрацию, которая развинтит все крепления. Предусмотрите крепления для серводвигателя, место под вал, опору для электронных компонентов. Не забывайте, что драйверы двигателей нужно охлаждать. Разместите все на отведенных местах.

При достаточной аккуратности, в итоге получится нечто вроде этого:

В верхней половине укреплены батареи и драйвер двигателей (прикручен к раме, как к радиатору). Усилие с сервопривода шестерни передают на вал с закрепленными двигателями. Снизу - контроллер и отдельно лежит радиомодем.

Драйверы двигателей, радиомодем и сервомашинку подключите в соответствующие выходы ардуино.

Залейте прошивку.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68 #include <servo.h> // Серва для управления вертикального направления дирижабля
// ServoDirigable
Servo serDir; // Номер устройства num = 0
int pinSerDir = 2;
struct Motor {
int dir; // Направление
int enable; // Скорость
};
Motor motorLeft = {7, 6}; // Номер устройства num = 1
Motor motorRight = {4, 5}; // Номер устройства num = 2
void setup()
{
//Servo
serDir.attach(pinSerDir);
//MotorLeft
pinMode(motorLeft.dir, OUTPUT);
pinMode(motorLeft.enable, OUTPUT);
//MotorRight
pinMode(motorRight.dir, OUTPUT);
pinMode(motorRight.enable, OUTPUT);
//Serial
Serial.begin(9600);
// Выставляем все устройства на исходную позицию
serDir.write(90);
}
void loop()
{
int num;
int pos;
if (Serial.available() > 1) {
// Считываем номер устройства
num = Serial.read();
// Считываем позицию для движения устройства
pos = Serial.read();
if(num==0){writeServo(serDir, pos);}
if(num==1){writeMotor(motorLeft, pos);}
if(num==2){writeMotor(motorRight, pos);}
}
}
void writeServo(Servo ser, int pos) {
if(pos>180) {pos = 180;}
if(pos<0) {pos=0;}
ser.write(pos);
}
void writeMotor(struct Motor mot, int pos) {
if(pos<0){pos=0;}
if(pos>255){pos=255;}
digitalWrite(mot.dir, HIGH);
analogWrite(mot.enable, pos);
}
int SWread()
{
byte val = 0;
while (digitalRead(rx));
//wait for start bit
if (digitalRead(rx) == LOW) {
delayMicroseconds(halfBit9600Delay);
for (int offset = 0; offset < 8; offset++) {
delayMicroseconds(bit9600Delay);
val |= digitalRead(rx) << offset;
}
//wait for stop bit + extra
delayMicroseconds(bit9600Delay);
delayMicroseconds(bit9600Delay);
return val;
}
}
</servo.h>

Подключите к компу джойстик и второй радиомодем. Запустите управляющую программу на питоне.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101 '''
Created on 24.02.2011
@author: pankratov.vs
'''
import pygame
import serial
ser = serial.Serial(port = '/dev/ttyUSB0', baudrate = 9600)
motor = 0
turn = 0
def handleJoyEvent(e):
global motor
global turn
if e.type == pygame.JOYAXISMOTION:
#X
if (e.dict['axis'] == 0):
turn = e.dict['value']
motorSpeed = chr(calcSpeed())
if(turn<0):
ser.write(chr(1))
ser.write(motorSpeed)
ser.write(chr(255))
else:
ser.write(chr(2))
ser.write(motorSpeed)
ser.write(chr(255))
#Y
if (e.dict['axis'] == 1):
pos = e.dict['value']
move = round(pos 90, 0)
if (move < 0):
servo = int(90 - abs(move))
else:
servo = int(move + 90)
servoPosition = chr(servo)
ser.write(chr(0))
ser.write(servoPosition)
ser.write(chr(255))
#uncomment to debug
#print servo, servoPosition
#Z
if (e.dict['axis'] == 2):
pos = e.dict['value']
motor = int(round((1-pos)90))
motorSpeed = chr(calcSpeed())
if(turn==0):
lmotor = chr(motor)
rmotor = chr(motor)
else:
if(turn<0):
lmotor = chr(calcSpeed())
rmotor = chr(motor)
else:
lmotor = chr(motor)
rmotor = chr(calcSpeed())
ser.write(chr(1))
ser.write(lmotor)
ser.write(chr(255))
ser.write(chr(2))
ser.write(rmotor)
ser.write(chr(255))
#uncomment to debug
#print motorSpeed
#Throttle
if (e.dict['axis'] == 3):
pass
elif e.type == pygame.JOYBUTTONDOWN:
# uncomment to debug
#str = "Button: %d" % (e.dict['button'])
#output(str, e.dict['joy'])
if (e.dict['button'] == 0):
print "Bye!\n"
ser.close()
quit()
def output(line, stick):
print "Joystick: %d; %s" % (stick, line)
def calcSpeed ():
global motor
global turn
curTurn = int(round(motor abs(turn)))
curSpeed = motor - curTurn
return curSpeed
def joystickControl():
while True:
e = pygame.event.wait()
if (e.type == pygame.JOYAXISMOTION or e.type == pygame.JOYBUTTONDOWN):
handleJoyEvent(e)
def main():
ser.open()
ser.isOpen()
pygame.joystick.init()
pygame.display.init()
if not pygame.joystick.get_count():
print "\nPlease connect a joystick and run again.\n"
quit()
print "\n%d joystick(s) detected." % pygame.joystick.get_count()
print chr(1)
myjoy = pygame.joystick.Joystick(0)
myjoy.init()
joystickControl()
if __name__ == "__main__":
main()

Наполните баллоны гелием - они надуваются в точности, как воздушные шарики в человеческий рост. Двух зондов хватит, чтоб поднять около одного килограмма.

Прикрепите зонды к раме. Ваша цель - добиться минимальной плавучести аппарата. Тогла его можно будет посадить на землю тягой двигателей.

Теперь выведите ваш дирижабль в открытое безветренное пространство - от школьного спортзала до тихого пустыря. А теперь - кораблю - взлет! От винта!

В чем отличия от предыдущей версии?
1.Поставлены бесколлекторные движки с тягой до 600 грамм и драйверы к ним. Теперь он летает быстро.
2.Установлен мощный аккумулятор. Теперь он летает долго.
3.Шары прикреплены к дирижаблю достаточно жестко - с помощью опорной рамы и тесьмы.
4.Управление выведено на джойстик.
5.Наконец, подключен радиомодем.

Над чем работать? Стабилизация движения, повороты, понизить чувствительность управления, научить избегать препятствия.

Опубликовано в журнале сообщества uralrobot.ru

Форма для тротуарной плитки своими руками » Как сделать красивые черно-белые Форма для тротуарной плитки своими руками Цветы из ткани своими руками Cоветы женщинам Форма для тротуарной плитки своими руками Грузовые прицепы Форма для тротуарной плитки своими руками Как сделать стеллаж? Несколько вариантов изготовления Форма для тротуарной плитки своими руками КРАСИВЫРИКОЛЬНЫЕ ПОЗДРАВЛЕНИЯ НА СВАДЬБУ Форма для тротуарной плитки своими руками Игра GTA San Andreas - ГТА Сан Андреас Скачать
Форма для тротуарной плитки своими руками Форма для тротуарной плитки своими руками Форма для тротуарной плитки своими руками Форма для тротуарной плитки своими руками Форма для тротуарной плитки своими руками Форма для тротуарной плитки своими руками Форма для тротуарной плитки своими руками Форма для тротуарной плитки своими руками Форма для тротуарной плитки своими руками Форма для тротуарной плитки своими руками