Coder Social home page Coder Social logo

boatartist / robo-spy-pigeon-phone Goto Github PK

View Code? Open in Web Editor NEW
1.0 1.0 0.0 882 KB

I'm way too addicted to my phone, so I'm replacing it with a robot bird, come along for the ride as I document the entire project in one badly formatted page ;)

License: Creative Commons Zero v1.0 Universal

python robotics birdsarentreeal raspberry-pi

robo-spy-pigeon-phone's Introduction

Robo-spy-pigeon-phone

May 16, 2024

Hello, welcome to my Robot-spy-pigeon-phone-assistant-project! (I'm bad at names I'll fix it later) This is an idea I've had in my head for ages, and I really want to document one of my procrastination projects properly, so I'm just going to put everything I do onto this github, then procrastinate on my procrastination by fixing it later.

So, robot phones. I think I was unreasonably influenced by Amy McCulloch's Jinxed series, which is a pretty good YA series in its own right. Basically the premise is that everyone has an animal-looking robot that does everything their phone used to do, and also is like a pet and friend and assistant, and idk I just think that's pretty cool. I would just make that but it'd kinda feel like plagiarism or something, which brings me to my second influence: Birds aren't real. I assume everyone has heard of this pseudo conspiracy, which is just hilarious and very much something my generation would make up in response to actual conspiracy theorists. Essentially, all birds were hunted down and killed by the US government/CIA in the 50s and 60s and replaced with spy drones that are tracking us, ooh scary. Finally: ornithopters. You know drones? They're like that but cooler, because they flap their wings. I'm not an aeronautical engineer (I'm just a highschooler actually), but I do have a very hyper plane loving little brother, so there's that

With these ideas in mind I have a bunch of features I want to implement at some point but may never, best explained through a series of tiny sketches:

WIN_20240516_12_24_25_Scan WIN_20240516_12_25_56_Scan

Look at the little cyborg pigeon!!!❤️❤️❤️❤️ I'm so proud of my non-existent drawing skills. If you can't read my handwriting (valid, I can't either), here's some of the highlights:

  • cute little perch
  • holds a little pencil
  • camera (or is it a death laser?)
  • touchscreen
  • eyes follow you around
  • full 360° vision, head rotates
  • foot clamps/jointed toes (taking inspiration from nerdforge's prosthetic finger but it defaults to contracted so it doesn't fall off the perch)
  • Bits that move (perched edition): feet lift and flap, head rotates = 3 servos, optional bonus: balance body by tilting
  • also some sound effects/comments ie. eeeee, creeeeak, ring ring..., unknown phone number...

May 28, 2024

I made a super cute lil cardboard/electrical tape model, feeling very professional WIN_20240528_18_45_05_Pro And if the ultra-high quality school laptop night photo didn't sell it to you, then I used an AAA battery as a stylus to sketch over it 🙃 image

I also found some old(er) sketches and plans from when I wanted to make a cockatoo, so might as well put those in, there's no one reading this anyway lol image WIN_20240528_20_20_27_Scan I probably shouldn't include that last one actually, it's kinda ruining the sci-fi super villain aesthetic I keep imagining. I don't wanna be strutting around with my cool pirate parrot pigeon phone on my shoulder acting all fancy and then get jump-scared by my 16y/o late night ramblings, but whatever.

June 02, 2024 (I think, this is a retrospective post)

I tried to make a bird shape in solidworks and it went disastrously wrong. Luckily my dad is a literal designer so he showed me how to do it and mine are still terrible but i got some ideas about how to do it, later. This was the dumpy model my dad whipped up in like 10 minutes, I think mine are right at the bottom of the windows rubbish bin. image image

June 09, 2024

Feet! (No not like that stop being dirty minded). (This joke has been redacted because everyone keeps judging me (valid ig)). I figured this was as good a place as any to start my project, so I've spent this weekend wasting filament and masking tape on prototypes, until I got to a design that I think will do for now. My original concept was inspired by prosthetic finger designs (Shout out to Nerdforge on Youtube for the inspiration), which have contract when a string is yanked and then have a bit of elastic which defaults them to open again. Obviously a bird clinging to a perch for dear life has quite the opposite motivations, so my design had a bit of string on the outside which gets pulled by a servo to open the claws and then a piece of elastic pulling them closed again, as can be seen in this low-res night photo. WIN_20240609_19_17_24_Pro This design seemed great on paper but left more than a little to be desired in real life, so I created a new design featuring the coolest thing I know nothing about: gears. After a loooong time in solidworks I finally got something that kind of works, so my current foot design looks like this: WIN_20240609_19_19_10_Pro WIN_20240609_19_18_48_Pro I'll put the current cad files up if there's anyone interested (that's a little inside joke because there's noone here at all lol)

June 16, 2024

I figured out how to get blender on my school laptop and I've finally got a terrible low-poly model which I'm going to polish up in Solidworks (stl file up now)

image

This is a photo of a tiny 3D print I did of it, just for fun, I think it looks pretty good. WIN_20240616_14_55_46_Pro I also realised that I haven't put up the fancy drawings I did, oops, here they are now. WIN_20240616_11_46_52_Pro Umm, what else? Oh yes, I bought a usb modem to use instead of the raspberry pi hat I had for my phone project, which unfortunately broke. Hoping that having an actual professional thing will make this a bit less dodgy. I'm also going to buy a little round touchscreen, which I'm really excited about, hopefully we start getting some actual progress soon!

June 18, 2024

Welcome to the total of 2 people I shared the link to this with, here's the things I did today and at the end of the weekend.

  1. I chopped the blender model in half and hollowed out the head so I could put a raspberry pi camera in there, the stl can be found on this github but it's not a final product by any means. image image

  2. I bought a cheap usb cable and a usb socket which I soldered together so that the modem doesn't have to stick straight out of the side of the raspberry pi, instead I can attach it via the dodgy cable and position it around the side. I would advise anyone thinking of copying this project to invest in an official cable (like this one maybe), I melted quite a lot of plastic and had to restart several times from fragile cables breaking. WIN_20240618_19_49_22_Pro WIN_20240618_19_50_09_Pro

June 25, 2024

I'm away from the Raspberry Pi rn so I can't test this code, but I've been researching text-to-speech (tts) modules that I can use, because a big feature of the bird is that it's going to give audio notifications and users will be able to converse with the robot instead of just using the screen. !Todo, upload brainstorming of keyboard functionality After much consideration, I've decided to use the Google tts API (gTTS), following this Geeks for Geeks article because I'm lazy and it looks easy, but also it's really well documented and I can also use the google speech-to-text API so it will look symmetrical in my brain. According to the tutorial, this is the python code I'm going to need:

from gtts import gTTS
import os
tts = gTTS(text='Hello World', lang='en', slow=False)
tts.save('audio_file.mp3')
os.system('start audio_file.mp3')

June 27, 2024

I got the gTTS module working, and I'm using the pygame mixer to play audio through the audio jack. I found an old pair of headphones and a speaker from a singing birthday card which I brutally massacred to make this speaker setup I can plug into the audio jack. I might replace the speaker because it's still a little too quiet, but it works for now.

image

In the past I've tried to find a ready-made speaker which would do this for me, but most speakers seem to be the massive round bluetooth speakers, so anyone copying this project I would advise to find a cheap headphone jack part and a small speaker component, that seems like the best option. I also improved the head cad file so that the camera fits better and there's also a hole in the other eye for a 5mm led, which I think is pretty cool. I'll upload the new stl alongside the old one, they're pretty similar at this stage. I think the next step is going to be getting my hands on that round display, and also looking at how I'm going to get the microphone working, stay tuned!

June 30, 2024

Oops, turns out I did not the gTTS working, it steals its tts from the interwebs, and mine is a bit sketchy rn, so I'm settling for a worse module that's fully offline, pyttsx3 (I did try to install it's updated sibling pyttsx4 but I'm not bothered to install the module on a computer with internet and then manually install it on the raspberry pi, so we're settling for the one I managed to get). The voices are terrible, but at least it talks and I haven't had any major issues. I also don't need to use the pygame mixer to play my sounds, so that's nice. This is my current code:

engine = pyttsx3.init()
# reducing the speed of the voice from 200 to 100
engine.setProperty('rate', 100)
# I think the english voice is the best, but there's code in the documentation to loop through every voice and test it if you want to find a better one
engine.setProperty('voice', 'english')
#say the thing
engine.say('Hello World, I am pigeon')
#I think the say() method preloads the audio to the engine, and then this method actually runs it 
engine.runAndWait()

Oh and here's a photo of the new head, it's still goofy, but I kinda love it. image

July 2, 2024

A quick moment of silent for my realisation that the raspberry pi audio jack does not support the microphone, so I apparently wasted my money and time buying a new 4-poled plug, soldering 4 wires to it and trying to connect the speaker and the microphone to it, ouch. At least I did realise how I could amplify the volume of the speaker using a transistor so now we have this snazzy and compact little set-up on the back of the speaker:

image

And since I'm overcompensating for my laziness and refusal to make wiring diagrams for my actual school software projects, here's one I whipped up in two minutes:

image

So it's a bit sad that I did all that for nothing, but at least I have a good result. For now, I'm using a big flat usb mic I bought for a past project that didn't work out, but it's better than nothing until I figure out how to make my own, more compact version with the tiny microphone I bought. Oh and if anyone ever copies this project, you can get audio output from the gpio pins, which I've been searching for for ages and only discovered after hacking together my solution :( Anyway we live and we learn ig.

June 3, 2024

❤️

robo-spy-pigeon-phone's People

Contributors

boatartist avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.