Перейти к содержанию

Вопрос

Всем привет! Я новичок в CC, прошу помочь мне с кодом для дистанционного управления черепашкой. 

Суть нужной программы такова: 

Компьютер с беспроводным модулем связан с беспроводной копающей черепашкой. Когда в компьютер вводится команда (допустим tunnel) , то она отсылается на черепашку, и черепашка выполняет заданную на компьютере команду. 

Пример: вводим в компьютер команду excavate 10 

и черепашка начинает копать карьер 10х10.

Заранее благодарю.

Изменено пользователем cyber01
уменьшил шрифт, а то слишком крупно

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Рекомендуемые сообщения

  • 0

В программу для черепахи добавил вывод id

Спасибо огромное! Программа работает, черепашка принимает команды с компьютера! Очень выручил. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

Есть пара вопросов.

1. Тебе нужно готовое решение или ты хочешь сам написать такую программу с нашей помощью, разумеется? 

2. Удаленно необходимо выполнять любую доступную черепахе команду в плоть до программирования самой черепахи (т.е. удаленный терминал) или строго ограниченный набор команд?

 

И не надо так кричать

Изменено пользователем Zer0Galaxy

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

Есть пара вопросов.

1. Тебе нужно готовое решение или ты хочешь сам написать такую программу с нашей помощью, разумеется? 

2. Удаленно необходимо выполнять любую доступную черепахе команду в плоть до программирования самой черепахи (т.е. удаленный терминал) или строго ограниченный набор команд?

1.Желательно готовое решение.

2. Строго ограниченный набор команд, то есть список программ, которые изначально имеются в памяти черепашки.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

На черепахе сохраняешь под именем startup программу

 

 

function open()
  local bOpen, sFreeSide = false, nil
  for n,sSide in pairs(rs.getSides()) do
    if peripheral.getType( sSide ) == "modem" then
      sFreeSide = sSide
      if rednet.isOpen( sSide ) then
        bOpen = true
        break
      end
    end
  end
  if not bOpen then
    if sFreeSide then
      print( "No modem active. Opening "..sFreeSide.." modem" )
      rednet.open( sFreeSide )
      return true
    else
      print( "No modem attached" )
      return false
    end
  end
  return true
end

if not open() then return end
print("ID of this turtle is ",os.getComputerID())
while true do
  id,comm=rednet.receive()
  print(comm)
  pcall(shell.run,comm)
end

 

 

Перегружаешь черепаху

 

На компьютере сохраняешь под именем tclient программу

 

 

function open()
  local bOpen, sFreeSide = false, nil
  for n,sSide in pairs(rs.getSides()) do
    if peripheral.getType( sSide ) == "modem" then
      sFreeSide = sSide
      if rednet.isOpen( sSide ) then
        bOpen = true
        break
      end
    end
  end
  if not bOpen then
    if sFreeSide then
      print( "No modem active. Opening "..sFreeSide.." modem" )
      rednet.open( sFreeSide )
      return true
    else
      print( "No modem attached" )
      return false
    end
  end
  return true
end

if not open() then return end
Arg={...}
if #Arg~=1 then print("Usage: tclient <turtleID>") return end
tID=tonumber(Arg[1])
if not tID then print("Usage: tclient <turtleID>") return end
print("Type 'exit' to terminate programm")
while true do
  write("command:")
  comm=read()
  if comm=="exit" then return end
  rednet.send(tID,comm)
end

 

 

Запуск: tclient <ID черепахи>

Проверишь, отпиши результат

Изменено пользователем Zer0Galaxy

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

На черепахе сохраняешь под именем startup программу

 

 

function open()
  local bOpen, sFreeSide = false, nil
  for n,sSide in pairs(rs.getSides()) do
    if peripheral.getType( sSide ) == "modem" then
      sFreeSide = sSide
      if rednet.isOpen( sSide ) then
        bOpen = true
        break
      end
    end
  end
  if not bOpen then
    if sFreeSide then
      print( "No modem active. Opening "..sFreeSide.." modem" )
      rednet.open( sFreeSide )
      return true
    else
      print( "No modem attached" )
      return false
    end
  end
  return true
end

if not open() then return end

while true do
  id,comm=rednet.receive()
  print(comm)
  pcall(shell.run,comm)
end

 

 

Перегружаешь черепаху

 

На компьютере сохраняешь под именем tclient программу

 

 

function open()
  local bOpen, sFreeSide = false, nil
  for n,sSide in pairs(rs.getSides()) do
    if peripheral.getType( sSide ) == "modem" then
      sFreeSide = sSide
      if rednet.isOpen( sSide ) then
        bOpen = true
        break
      end
    end
  end
  if not bOpen then
    if sFreeSide then
      print( "No modem active. Opening "..sFreeSide.." modem" )
      rednet.open( sFreeSide )
      return true
    else
      print( "No modem attached" )
      return false
    end
  end
  return true
end

if not open() then return end
Arg={...}
if #Arg~=1 then print("Usage: tclient <turtleID>") return end
tID=tonumber(Arg[1])
if not tID then print("Usage: tclient <turtleID>") return end
print("Type 'exit' to terminate programm")
while true do
  write("command:")
  comm=read()
  if comm=="exit" then return end
  rednet.send(tID,comm)
end

 

 

Запуск: tclient <ID черепахи>

Проверишь, отпиши результат

А id черепахи это id предмета, или лейбл ,или что-то вообще другое?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

Открываешь интерфейс черепахи и вводишь туда "id" и нажимаешь Enter,в ответ ты получишь ее ID. Если я не ошибаюсь, то он будет меняться при каждой установке черепахи, если ей не дать имя ( "label set имя" )

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

А id черепахи это id предмета, или лейбл ,или что-то вообще другое?

В программу для черепахи добавил вывод id

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить на вопрос...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Авторизация  

×
×
  • Создать...