Он имел ввиду A7/A9
Ваш Кэп
Технический форум по робототехнике.
EdGull писал(а):кстати, т.к. я питона в глаза не видел, то можете показать как на нем будет выглядеть поморгать светодиодом?
EdGull писал(а):есть предположение что писать код на питоне будет простой и быстрый
EdGull писал(а):как на нем будет выглядеть поморгать светодиодом?
import stm32, time
while True:
stm32.pin3.set(1)
time.sleep(0.2)
stm32.pin3.set(0)
time.sleep(0.2)
import time, stm32, robots, leds, motors, servo
# модуль для работы с параллельными потоками
import thread
# Описание нашего особенного робота. Он потомок обычного гусеничного.
class MyPrettyRobot(robots.TrackedBot):
def __init__(self):
# инициализация атрибутов предка
super(robots.TrackedBot, self).__init__()
# назначение моторам управляющих пинов на ШИМ и реверс
self.left_motor.pwm_channel = stm32.pin1
self.right_motor.pwm_channel = stm32.pin3
self.left_motor.reverse_channel = stm32.pin2
self.right_motor.reverse_channel = stm32.pin4
self.power_led.channel = stm32.pin5
# добавление нового шагового двигателя для поворота башни
self.head_motor = motors.StepMotor(
# сигналы на шаг против и по ч.с.
lr_channel=(stm32.pin6, stm32.pin7),
step_angle=360.0/100)
# добавление какого-нибудь серво-мотора
self.tail = servo.SimpleAB(
angles=(-30, 30), # предельные углы
pwm_channel=stm32.pin8, # канал управления
pwm_delta=30, # период ШИМ, например в мс
pwm_levels=(10, 90)) # скважности крайних положений
# Цветные фары
self.headlight = leds.RGB(
channel=(stm32.pin9, stm32.pin10, stm32.pin11),
pwm_delta=30)
self.tail_swing_interval = 2.0 # интервал мотыляния хвостом 2с
# поток для мотыляния хвостом
self.swinging = thread.start_new(self.doSwing, (self,))
def doSwing(self):
while True:
# назначаем хвосту угол в процентах, вычесленных от времени
self.tail.asPercent = (
(stm32.timer.s % self.tail_swing_interval) /
self.tail_swing_interval * 2 - 1) * 50 + 50
# если хвост в верхней своей точке +-5 градусов
if -5 < self.tail.angle < 5:
# плавно зажигаем фары пурпурным цветом
self.headlight.color = leds.PURPLE
self.headlight.brightness = (5-abs(self.tail.angle))*20
else: # иначе гасим их
self.headlight.brightness = 0
# спим немножко
time.sleep(self.tail_swing_interval/64)
while(1)
{
GPIO_SetBits(GPIOA,GPIO_Pin_9);
delayms(300000);
GPIO_ResetBits(GPIOA,GPIO_Pin_9);
delayms(300000);
}
dccharacter писал(а):А это на си
Strijar писал(а):Он и проще намного и мощней.
dccharacter писал(а):Ну на си же можно все то же самое сделать
dccharacter писал(а):Пока не понимаю прикола. Может быть от того, что в принципе не знаю и не понимаю разные парадигмы программирования (о как сказал).
dccharacter писал(а):Но имхо _меньше_ изучить - не получится
_проще_ не выйдет
dccharacter писал(а):Ты вот там объектики всякие и т.д. делаешь. Но что мешает на си в функцию передать указатель на структуру? Все то же самое получится...
dccharacter писал(а):Пока не понимаю прикола.
Но имхо _меньше_ изучить - не получится
_проще_ не выйдет
Благодаря ей в современных языках программирования гораздо ниже порог входимости