Färdig! 
Sådärja, då kan detta projekt betecknas som klart! Det blev ju inte så mycket en havsspindel över den som jag först inspirerades av men slutresultat blev jag ändå nöjd med. Som vanligt när det gäller mina projekt blir det egentligen aldrig klart utan snarare att jag kommit till en punkt då jag känner att jag är tillräckligt klar. Till exempel så fick den aldrig någon färg på sig. Likaså är benen väldigt glatta så den får inget större fäste (lite halkskydd av gummi hade antagligen gjort susen). Det är därför jag låter den gå omkring på ett uppochner-vänt elementskydd i videon:





[ kommentera ] ( 9 views )   |  permalink
Äntligen en uppdatering! 
Det var ett tag sedan sist men nu har jag äntligen fått tummen ur och fortsatt med Microhexapoden. Jag har skrivit om stora delar av koden för att få den lättare att förstå och underhålla men jag är inte riktigt klar ännu så ni får vänta lite till innan jag släpper källkoden.

Det blev betydligt mer kod än den tidigare varianten så den fick tyvärr inte plats i BabyOrangutan mega48. Det blev att byta till en BabyOrangutan mega168 istället. Koden är nu 4698 bytes och kommer att växa ytterligare. En stor anledning till att koden växte är att jag bytt från hårdkodade rörelser till mer sekvensliknande. Varje sekvens tar förstås upp en hel del plats: med 12 servon där varje servo tar 2 bytes blir det 24 bytes per steg. Å andra sidan blir detta betydligt mer flexibelt och lätt att underhålla om man t.ex. vill lägga in andra sekvenser.

Så här ser sekvensen ut för att få roboten att gå framåt:
// Forward
{ FRONT, LOW, REAR, LOW, FRONT, LOW, REAR, LOW, FRONT, LOW, REAR, LOW },
{ FRONT, LOW, REAR, HIGH, FRONT, LOW, REAR, HIGH, FRONT, LOW, REAR, HIGH },
{ REAR, LOW, FRONT, HIGH, REAR, LOW, FRONT, HIGH, REAR, LOW, FRONT, HIGH },
{ REAR, LOW, FRONT, LOW, REAR, LOW, FRONT, LOW, REAR, LOW, FRONT, LOW },
{ REAR, HIGH, FRONT, LOW, REAR, HIGH, FRONT, LOW, REAR, HIGH, FRONT, LOW },
{ FRONT, HIGH, REAR, LOW, REAR, HIGH, REAR, LOW, FRONT, HIGH, REAR, LOW },
{ SEQCMD_GOTO, 2, 0,0,0,0,0,0,0,0,0,0}


Det sista steget (SEQCMD_GOTO) är ett speciellt kommando som gör att sekvensen hoppar tillbaka till rad 2 och fortsätter sekvens därifrån.

Det hela går att optimera, t.ex. kan man nöja sig att använda 1 byte för att beskriva positionen men eftersom jag nu har 16 kB så känner jag inte att det är något jag behöver prioritera. Dessutom finns ju även BabyOrangutan B-328 med 32 kB men det blir lite knivigare att byta till då den inte är helt pinkompatibel med mega168.

Jag har även införskaffat mig ett 900 mAh LiPo batteri med laddare och en speciell skyddspåse som förhoppningvis skyddar åtminstone lite om batteriet av någon anledning skulle börja brinna:


Batteriet sitter fast på undersidan av hexapoden med två gummiband:


Som ni kanske minns hade jag problem med att antennerna fastnade i varandra. Jag har därför sågat till en liten bit vinklad aluminiumlist som hindrar antennerna att komma för nära varandra:


Tidigare satt det bara en rak bit och den hindrade inte antennerna från att trassla in sig i varandra:


Nu blir det ytterligare lite kodande, finputsning på aluminiumbiten och ev. målning. Nästa uppdatering kommer inte att ta lika lång tid på sig!



[ kommentera ] ( 11 views )   |  permalink
Fram och tillbaka, fram och tillbaka... 
Nu har den tagit sina första steg framåt. Den går och går tills antennerna krockar med något. Först då börjar den backa och gör så i 2 sekunder. Därefter går den framåt som en envis tjur eftersom den inte lärt sig att svänga ännu. Inte riktigt smartast i gänget med andra ord...



Själva sekvensen för att gå är mer eller mindre kopierat från SSC-32 användarmanual. Koden är skriven i C och kommer finnas tillgänglig när jag är klar med den.

Det är i princip två saker som ska göras innan detta "mini"-projekt (konstigt vad tid allt ska ta) kan anses vara klart, nämligen

1) se till att den kan svänga
2) se till att antennerna inte fastnar i varandra (vilket syns tydligt i slutet av videon)

En mindre detalj som jag hoppar över denna gång är batteriet. Den får helt enkelt leva med en spänningskabel. De NiMh batterier jag har är för stora och några LiPo har jag inte vågat mig på att köpa (pga. explosionsrisk).

[ kommentera ] ( 12 views )   |  permalink
Första rörelserna! 
Nu har jag bytt ut mitt gamla STK500 kort till en AVR USB programmerare istället. Mer plats på skrivbordet som i och för sig säkert snabbt kommer fyllas av annat bråte.

Före:


Efter:


Det var lite struligt att få ordning på drivrutinen men efter ett par försök så gick det vägen. Den är grymt mycket snabbare på att skicka data än STK500. Programmeringstiden är säkert halverad i jämförelse med STK500:an.

Hur som helst, det viktiga med detta inlägget är att berätta att jag har fått liv i hexapoden! Jag har bråkat med bugg nu i ett par dagar men inte lyckats lösa den. Istället skrev jag om delar programmet och buggen är borta men det är förstås irriterande att inte hittat orsaken till buggen.

Jag filmade när hexapoden rör sina ben för första gången:


Nästa steg är att försöka hitta ett lämpligt rörelsemönster så att den kan börja gå på riktigt.

[ kommentera ] ( 11 views )   |  permalink
Hårdvara och mekanik nästan klart 
Nu börjar mikrohexapoden ta sin slutgiltiga form. Inte blev den så lik en havsspindel direkt. Den liknar mest en smal insekt med långa ben och antenner.

Jaja, det funkar det med:


Det var det övre högra benet som gick av men jag har lagat det med lim och skruvar. Kanske gör jag en helt ny kropp så småningom men denna duger som den är för att kunna skriva mjukvaran.


Närmare titt på elektroniken och monteringen av antennerna. Antenner ligger an mot mikrobrytarna. När man rör en antenn trycks mikrobrytaren in och fjädern i brytaren gör att antennen trycks tillbaka. Det fungerar dock bara på den ena antennen. Den andra mikrobrytaren verkar ha en svagare fjäder så där kan brytaren ibland fastna i nedtryckt läge. Det går nog att ordna med ett gummiband eller en extra fjäder på lämpligt ställe.


[ kommentera ] ( 11 views )   |  permalink

| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | Nästa> Sista>>