Задание№1-1 — различия между версиями

Материал из roboforum.ru Wiki
Перейти к: навигация, поиск
м
 
(не показано 14 промежуточных версий 4 участников)
Строка 1: Строка 1:
 
[[Категория:МиниБот]]
 
[[Категория:МиниБот]]
'''Задание №1''' ''-=Учим МиниБот ехать прямо на заданной скорости=-''<br />
+
 
 +
== Учим МиниБот ехать прямо на заданной скорости ==
  
 
Указываем васику с каким крутым камнем ему прийдется иметь дело
 
Указываем васику с каким крутым камнем ему прийдется иметь дело
<blockquote>
+
<source lang="vb">
$prog &HFF , &HE4 , &HD9 , &H00      'указываем какие фусибиты надо прошить<br />
+
 
$regfile = "m32def.dat"      ' файл спецификации Меги32<br />
+
$prog &HFF , &HE4 , &HD9 , &H00      'указываем какие фусибиты надо прошить
$crystal = 8000000      ' указываем на какой частоте будем работать<br />
+
$regfile = "m32def.dat"      ' файл спецификации Меги32
</blockquote>
+
$crystal = 8000000      ' указываем на какой частоте будем работать
 +
</source>
 
конфигурируем необходимые ноги
 
конфигурируем необходимые ноги
<blockquote>
+
<source lang="vb">
Config Timer1 = Pwm , Pwm = 8 , Prescale = 1 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down<br />
+
Config Timer1 = Pwm , Pwm = 8 , Prescale = 1 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down
Config Pinc.2 = Output : Drl Alias Portc.2      'ногу сконфигурировали как выход и обозвали Drl<br />
+
Config Pinc.2 = Output : Drl Alias Portc.2      'ногу сконфигурировали как выход и обозвали Drl
Config Pinc.3 = Output : Drr Alias Portc.3      'ногу сконфигурировали как выход и обозвали Drr<br />
+
Config Pinc.3 = Output : Drr Alias Portc.3      'ногу сконфигурировали как выход и обозвали Drr
Config Pind.4 = Output      'ногу ШИМа левого движка сконфигурировали как выход<br />
+
Config Pind.4 = Output      'ногу ШИМа левого движка сконфигурировали как выход
Config Pind.5 = Output      'ногу ШИМа правого движка сконфигурировали как выход<br />
+
Config Pind.5 = Output      'ногу ШИМа правого движка сконфигурировали как выход
</blockquote>
+
</source>
 +
 
 
Объявляем переменную в которой будем держать текущую скорость
 
Объявляем переменную в которой будем держать текущую скорость
<blockquote>
+
<source lang="vb">
Dim Speed As Byte<br />
+
Dim Speed As Byte
Speed = 70<br />
+
Speed = 70
</blockquote>
+
</source>
 +
 
 
Так как мы используем аппаратный ШИМ то должны учитывать, что 100% скорости это 255 попугаев ШИМа.<br />
 
Так как мы используем аппаратный ШИМ то должны учитывать, что 100% скорости это 255 попугаев ШИМа.<br />
0% это соответсвенно 0 попугаев ШИМа. Но фактически движки не будут крутиться при ШИМе менее 50-70 попугаев.<br />
+
0% это соответственно 0 попугаев ШИМа. Но фактически движки не будут крутиться при ШИМе менее 50-70 попугаев.<br />
  
 
Теперь собственно основной код программы
 
Теперь собственно основной код программы
<blockquote>
+
<source lang="vb">
Do<br />
+
Do
   Drl = 0  'направление движения левого движка, в нашем с<code></code>лучае это прямо<br />
+
   Drl = 0  'направление движения левого движка, в нашем случае это прямо
   Drr = 0  'направление движения правого движка, в нашем случае это прямо<br />
+
   Drr = 0  'направление движения правого движка, в нашем случае это прямо
   Pwm1b = Speed : Pwm1a = Speed<br />
+
   Pwm1b = Speed : Pwm1a = Speed
Loop<br />
+
Loop
</blockquote>
+
</source>
  
 
----
 
----
  
 
Итого код должен выглядеть вот так
 
Итого код должен выглядеть вот так
 +
<source lang="vb">
 +
$prog &HFF , &HE4 , &HD9 , &H00      'указываем какие фусибиты надо прошить
 +
$regfile = "m32def.dat"      ' файл спецификации Меги32
 +
$crystal = 8000000      ' указываем на какой частоте будем работать
  
 +
'----------------------------------------------------------------------------
 +
Config Timer1 = Pwm , Pwm = 8 , Prescale = 1 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down
 +
Config Pinc.2 = Output : Drl Alias Portc.2      'ногу сконфигурировали как выход и обозвали Drl
 +
Config Pinc.3 = Output : Drr Alias Portc.3      'ногу сконфигурировали как выход и обозвали Drr
 +
Config Pind.4 = Output      'ногу ШИМа левого  движка сконфигурировали как выход
 +
Config Pind.5 = Output      'ногу ШИМа правого движка сконфигурировали как выход
 +
'----------------------------------------------------------------------------
 +
Dim Speed As Byte
 +
Speed = 70
  
<code>
+
Do
$prog &HFF , &HE4 , &HD9 , &H00      'указываем какие фусибиты надо прошить<br />
+
  Drl = 0  'направление движения левого движка, в нашем случае это прямо
$regfile = "m32def.dat"      ' файл спецификации Меги32<br />
+
  Drr = 'направление движения правого движка, в нашем случае это прямо
$crystal = 8000000      ' указываем на какой частоте будем работать<br />
+
  Pwm1b = Speed : Pwm1a = Speed
 +
Loop
 +
</source>
  
'----------------------------------------------------------------------------<br />
+
Теперь после компиляции и прошивки этого кода, МиниБот должен поехать очень медленно прямо.<br />
Config Timer1 = Pwm , Pwm = 8 , Prescale = 1 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down<br />
 
Config Pinc.2 = Output : Drl Alias Portc.2      'ногу сконфигурировали как выход и обозвали Drl<br />
 
Config Pinc.3 = Output : Drr Alias Portc.3      'ногу сконфигурировали как выход и обозвали Drr<br />
 
Config Pind.4 = Output      'ногу ШИМа левого движка сконфигурировали как выход<br />
 
Config Pind.5 = Output      'ногу ШИМа правого движка  сконфигурировали как выход<br />
 
'----------------------------------------------------------------------------<br />
 
Dim Speed As Byte<br />
 
Speed = 70<br />
 
  
Do<br />
+
{{МиниБот Уроки и Задания}}
Drl = 0  'направление движения левого движка, в нашем случае это прямо<br />
+
[[Категория:Basic]]
Drr = 0  'направление движения правого движка, в нашем случае это прямо<br />
 
Pwm1b = Speed : Pwm1a = Speed<br />
 
Loop<br />
 
</code>
 
 
 
Теперь после компиляции и прошивки этого кода, МиниБот должен поехать очень медленно прямо.<br />
 

Текущая версия на 13:16, 11 июля 2008


Учим МиниБот ехать прямо на заданной скорости

Указываем васику с каким крутым камнем ему прийдется иметь дело <source lang="vb">

$prog &HFF , &HE4 , &HD9 , &H00 'указываем какие фусибиты надо прошить $regfile = "m32def.dat" ' файл спецификации Меги32 $crystal = 8000000 ' указываем на какой частоте будем работать </source> конфигурируем необходимые ноги <source lang="vb"> Config Timer1 = Pwm , Pwm = 8 , Prescale = 1 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down Config Pinc.2 = Output : Drl Alias Portc.2 'ногу сконфигурировали как выход и обозвали Drl Config Pinc.3 = Output : Drr Alias Portc.3 'ногу сконфигурировали как выход и обозвали Drr Config Pind.4 = Output 'ногу ШИМа левого движка сконфигурировали как выход Config Pind.5 = Output 'ногу ШИМа правого движка сконфигурировали как выход </source>

Объявляем переменную в которой будем держать текущую скорость <source lang="vb"> Dim Speed As Byte Speed = 70 </source>

Так как мы используем аппаратный ШИМ то должны учитывать, что 100% скорости это 255 попугаев ШИМа.
0% это соответственно 0 попугаев ШИМа. Но фактически движки не будут крутиться при ШИМе менее 50-70 попугаев.

Теперь собственно основной код программы <source lang="vb"> Do

  Drl = 0  'направление движения левого движка, в нашем случае это прямо
  Drr = 0  'направление движения правого движка, в нашем случае это прямо
  Pwm1b = Speed : Pwm1a = Speed

Loop </source>


Итого код должен выглядеть вот так <source lang="vb"> $prog &HFF , &HE4 , &HD9 , &H00 'указываем какие фусибиты надо прошить $regfile = "m32def.dat" ' файл спецификации Меги32 $crystal = 8000000 ' указываем на какой частоте будем работать

'---------------------------------------------------------------------------- Config Timer1 = Pwm , Pwm = 8 , Prescale = 1 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down Config Pinc.2 = Output : Drl Alias Portc.2 'ногу сконфигурировали как выход и обозвали Drl Config Pinc.3 = Output : Drr Alias Portc.3 'ногу сконфигурировали как выход и обозвали Drr Config Pind.4 = Output 'ногу ШИМа левого движка сконфигурировали как выход Config Pind.5 = Output 'ногу ШИМа правого движка сконфигурировали как выход '---------------------------------------------------------------------------- Dim Speed As Byte Speed = 70

Do

 Drl = 0  'направление движения левого движка, в нашем случае это прямо
 Drr = 0  'направление движения правого движка, в нашем случае это прямо
 Pwm1b = Speed : Pwm1a = Speed

Loop </source>

Теперь после компиляции и прошивки этого кода, МиниБот должен поехать очень медленно прямо.